Excel VBAで複数のバックアップ先にデータを同時保存する方法

この記事では、Excel VBAを使用して、複数のバックアップ先にデータを同時保存する方法について詳しく説明します。初心者でも理解しやすいように具体的なコード例とその解説、応用例を含めています。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

Excel VBAとは

VBA (Visual Basic for Applications) は、Microsoft Office の各アプリケーションを自動化するためのプログラミング言語です。特にExcelでは、VBAを使用して様々な処理を自動化し、作業効率を大幅に向上させることが可能です。

複数のバックアップ先に同時保存する基本コード

以下は、指定した複数の場所にExcelファイルをバックアップとして保存するVBAコードです。

Sub BackupToMultipleLocations()
    Dim SavePath1 As String
    Dim SavePath2 As String
    Dim SavePath3 As String

    ' 保存先のパスを指定
    SavePath1 = "C:\Backup1\"
    SavePath2 = "D:\Backup2\"
    SavePath3 = "E:\Backup3\"

    ' 各保存先に同時保存
    ThisWorkbook.SaveCopyAs SavePath1 & ThisWorkbook.Name
    ThisWorkbook.SaveCopyAs SavePath2 & ThisWorkbook.Name
    ThisWorkbook.SaveCopyAs SavePath3 & ThisWorkbook.Name

    MsgBox "バックアップが完了しました", vbInformation
End Sub

コードの詳細解説

1. `Dim` を使用して、保存先のパスを格納する変数を宣言します。
2. `SavePath1`, `SavePath2`, `SavePath3` にそれぞれバックアップ先のパスを指定します。
3. `ThisWorkbook.SaveCopyAs` メソッドを使用して、現在のワークブックを指定した場所にコピーとして保存します。
4. 最後に、メッセージボックスを使用してバックアップ完了のメッセージを表示します。

応用例

1. 日付を含むファイル名で保存

特定のフォルダに日付を含むファイル名でバックアップを保存する場合のコードです。

Sub BackupWithDate()
    Dim SavePath As String
    Dim FileName As String

    ' 保存先のパスを指定
    SavePath = "C:\Backup\"

    ' 日付を含むファイル名を設定
    FileName = "Backup_" & Format(Now, "yyyyMMdd") & ".xlsm"

    ' 保存先に保存
    ThisWorkbook.SaveCopyAs SavePath & FileName

    MsgBox "バックアップが完了しました", vbInformation
End Sub

2. 特定のシートのみを新しいワークブックとして保存

指定したシートのみを新しいワークブックとして保存する場合のコードです。

Sub BackupSpecificSheet()
    Dim SavePath As String

    ' 保存先のパスを指定
    SavePath = "C:\Backup\"

    ' シートを新しいワークブックとしてコピー
    ThisWorkbook.Sheets("Sheet1").Copy

    ' 保存先に保存
    ActiveWorkbook.SaveAs SavePath & "Backup_Sheet1.xlsm"
    ActiveWorkbook.Close

    MsgBox "バックアップが完了しました", vbInformation
End Sub

3. バックアップ先の存在確認と作成

バックアップ先のフォルダが存在しない場合に、新しくフォルダを作成するコードです。

Sub BackupWithFolderCreation()
    Dim SavePath As String
    ' 保存先のパスを指定
    SavePath = "C:\Backup\"
    ' フォルダが存在しない場合は新規作成
    If Not Dir(SavePath, vbDirectory) <> "" Then
        MkDir SavePath
    End If
    ' 保存先に保存
    ThisWorkbook.SaveCopyAs SavePath & "Backup.xlsm"
    MsgBox "バックアップが完了しました", vbInformation
End Sub

まとめ

Excel VBAを使用することで、複数のバックアップ先への同時保存を簡単に実現することができます。上記のコードや応用例を参考に、日常業務の効率化やデータの安全性向上に役立ててください。

VBAも良いけどパワークエリも良い

VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。

クリックするとパワークエリの全11講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次