Excel VBAを活用した特定のファイル形式のバックアップ処理の実装方法

この記事では、Excel VBAを使用して特定のファイル形式だけを対象としたバックアップ処理の方法を紹介します。具体的なコードからその詳細な解説、さらには応用例までを掲載しています。この技術をマスターすることで、日常業務でのファイル管理が大きく効率化されることでしょう。

目次

Excel VBAの基本

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

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

基本的なバックアップ処理のコード

Sub BackupSpecificFiles()
    Dim SourceFolder As String
    Dim DestFolder As String
    Dim file As String
    Dim fileType As String
    SourceFolder = "C:\Source\"
    DestFolder = "C:\Backup\"
    fileType = "*.xlsx" ' 対象とするファイル形式
    file = Dir(SourceFolder & fileType)
    While file <> ""
        FileCopy SourceFolder & file, DestFolder & file
        file = Dir
    Wend
End Sub

コードの詳細解説

– **SourceFolder**: バックアップ元のフォルダを指定します。
– **DestFolder**: バックアップ先のフォルダを指定します。
– **fileType**: バックアップ対象となるファイル形式を指定します。この例では.xlsx形式のExcelファイルを指定しています。
– **Dir関数**: 指定されたファイル形式に一致するファイルを検索し、その名前を返します。
– **FileCopy関数**: ファイルをコピーするための関数です。

応用例

1. 複数のファイル形式をバックアップ対象にする

Sub BackupMultipleFileTypes()
    Dim SourceFolder As String
    Dim DestFolder As String
    Dim file As String
    Dim fileTypes As Variant
    Dim i As Integer
    SourceFolder = "C:\Source\"
    DestFolder = "C:\Backup\"
    fileTypes = Array("*.xlsx", "*.docx", "*.pptx")
    For i = LBound(fileTypes) To UBound(fileTypes)
        file = Dir(SourceFolder & fileTypes(i))
        While file <> ""
            FileCopy SourceFolder & file, DestFolder & file
            file = Dir
        Wend
    Next i
End Sub

2. バックアップ時に日付をファイル名に追加する

Sub BackupWithDate()
    Dim SourceFolder As String
    Dim DestFolder As String
    Dim file As String
    Dim fileType As String
    Dim currentDate As String
    SourceFolder = "C:\Source\"
    DestFolder = "C:\Backup\"
    fileType = "*.xlsx"
    currentDate = Format(Now, "yyyymmdd")
    file = Dir(SourceFolder & fileType)
    While file <> ""
        FileCopy SourceFolder & file, DestFolder & Left(file, Len(file) - 5) & "_" & currentDate & ".xlsx"
        file = Dir
    Wend
End Sub

3. バックアップのログを生成する

Sub BackupWithLog()
    Dim SourceFolder As String
    Dim DestFolder As String
    Dim file As String
    Dim fileType As String
    Dim logFile As String
    Dim f As Integer
    SourceFolder = "C:\Source\"
    DestFolder = "C:\Backup\"
    fileType = "*.xlsx"
    logFile = "C:\Backup\Log.txt"
    f = FreeFile
    Open logFile For Append As f
    Print #f, "Backup started at " & Now
    file = Dir(SourceFolder & fileType)
    While file <> ""
        FileCopy SourceFolder & file, DestFolder & file
        Print #f, "Copied: " & file
        file = Dir
    Wend
    Print #f, "Backup completed at " & Now
    Close f
End Sub

まとめ

VBAを利用したファイルのバックアップ方法について、基本から応用までを詳しく解説しました。これらの技術を駆使して、日常業務の効率化を図りましょう。

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

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

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

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

コメント

コメントする

目次