Excelは、業務に欠かせないツールの1つとして広く使用されています。そのため、定期的なセキュリティアップデートは欠かせない作業となっています。しかし、アップデート後に予期せぬエラーや問題が発生することがあります。そのような場合、事前にバックアップをとっておくことでトラブルを未然に防ぐことができます。今回は、VBAを活用してセキュリティアップデート後の自動バックアップの方法を紹介します。
Excel VBAの基本
Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。
そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

セキュリティアップデート後の自動バックアップのメリット
セキュリティアップデート後の自動バックアップは、次のようなメリットがあります。
1. アップデートによる予期せぬエラーを防ぐ
2. トラブル発生時の迅速な対応が可能
3. 定期的なバックアップの手間を省くことができる
VBAでの自動バックアップコードの基本
以下に、セキュリティアップデート後に自動でバックアップを行う基本的なVBAコードを示します。
1 2 3 4 5 6 7 |
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. 保存先フォルダの存在確認と自動作成
バックアップを保存するフォルダが存在しない場合、自動で作成するコードを追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
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つのバックアップだけを残す方法です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
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を使用して、セキュリティアップデート後の自動バックアップを設定する方法について紹介しました。これにより、アップデート後のトラブルからデータを保護することが可能です。是非、この機会に設定してみてください。
コメント