Excelは、業務に欠かせないツールの1つとして広く使用されています。そのため、定期的なセキュリティアップデートは欠かせない作業となっています。しかし、アップデート後に予期せぬエラーや問題が発生することがあります。そのような場合、事前にバックアップをとっておくことでトラブルを未然に防ぐことができます。今回は、VBAを活用してセキュリティアップデート後の自動バックアップの方法を紹介します。
Excel VBAの基本
Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。
そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。
セキュリティアップデート後の自動バックアップのメリット
セキュリティアップデート後の自動バックアップは、次のようなメリットがあります。
1. アップデートによる予期せぬエラーを防ぐ
2. トラブル発生時の迅速な対応が可能
3. 定期的なバックアップの手間を省くことができる
VBAでの自動バックアップコードの基本
以下に、セキュリティアップデート後に自動でバックアップを行う基本的なVBAコードを示します。
Sub AutoBackupAfterUpdate()
Dim BackupPath As String
BackupPath = "C:\Backup\" & ThisWorkbook.Name & "_" & Format(Now, "yyyymmdd_hhmmss") & ".xlsm"
ThisWorkbook.SaveCopyAs BackupPath
End Sub
コードの詳細解説
このコードの動作について詳細に説明します。
1. `Dim BackupPath As String`:
– バックアップの保存先を格納する文字列変数を宣言します。
2. `BackupPath = “C:\Backup\” & ThisWorkbook.Name & “_” & Format(Now, “yyyymmdd_hhmmss”) & “.xlsm”`:
– 保存先のフォルダ(この例ではCドライブのBackupフォルダ)と、現在のワークブック名、現在の日時を組み合わせてバックアップファイル名を生成します。
3. `ThisWorkbook.SaveCopyAs BackupPath`:
– 現在のワークブックを上で指定したファイル名で保存します。既存のワークブックはそのままで、新しいファイルとしてバックアップが保存されます。
応用例
1. 保存先フォルダの存在確認と自動作成
バックアップを保存するフォルダが存在しない場合、自動で作成するコードを追加します。
Sub AutoBackupWithFolderCheck()
Dim BackupPath As String
Dim BackupFolder As String
BackupFolder = "C:\Backup\"
BackupPath = BackupFolder & ThisWorkbook.Name & "_" & Format(Now, "yyyymmdd_hhmmss") & ".xlsm"
' フォルダの存在確認
If Dir(BackupFolder, vbDirectory) = "" Then
MkDir BackupFolder
End If
ThisWorkbook.SaveCopyAs BackupPath
End Sub
2. 最新の5つのバックアップのみを残す
古いバックアップを自動で削除し、最新の5つのバックアップだけを残す方法です。
Sub AutoBackupWithLimit()
Dim BackupPath As String
Dim BackupFolder As String
Dim file As String, allFiles() As String
Dim counter As Long
BackupFolder = "C:\Backup\"
BackupPath = BackupFolder & ThisWorkbook.Name & "_" & Format(Now, "yyyymmdd_hhmmss") & ".xlsm"
' Save the backup
ThisWorkbook.SaveCopyAs BackupPath
' Get all backup files
file = Dir(BackupFolder & ThisWorkbook.Name & "_*.xlsm")
Do While file <> ""
counter = counter + 1
ReDim Preserve allFiles(1 To counter)
allFiles(counter) = file
file = Dir()
Loop
' Delete older backups if more than 5 exist
If counter > 5 Then
For i = 1 To counter - 5
Kill BackupFolder & allFiles(i)
Next i
End If
End Sub
3. バックアップをクラウドストレージに自動アップロード
ローカルだけでなく、クラウドストレージにも自動でバックアップを保存する方法。具体的なコードは使用するクラウドサービスによって異なるため、サービスのAPIドキュメントを参照してください。
まとめ
Excel VBAを使用して、セキュリティアップデート後の自動バックアップを設定する方法について紹介しました。これにより、アップデート後のトラブルからデータを保護することが可能です。是非、この機会に設定してみてください。
コメント