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

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

コメント

コメントする

目次