Excel VBAを利用したキーワードリストに基づく一括ファイル名変更法

Excel VBAを使用して、キーワードリストに基づいてファイル名を一括変更する方法について詳しく解説します。初心者から上級者まで、VBAの処理に関する具体的なコード例とその詳細な解説、さらに実践的な応用例を3つご紹介します。

目次

Excel VBAの基本

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

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

Excel VBAでの一括ファイル名変更の基本

Excel VBAを使用すると、特定のフォルダ内のすべてのファイル名を、キーワードリストに基づいて一括で変更することができます。以下がその基本的なコード例です。


Sub RenameFilesBasedOnKeywordList()
    Dim Path As String
    Dim FileName As String
    Dim NewFileName As String
    Dim KeywordList As Range
    Dim cell As Range
    Path = "C:\path\to\your\folder\"  'フォルダのパスを指定
    FileName = Dir(Path & "*.*")
    
    Set KeywordList = ThisWorkbook.Sheets("Sheet1").Range("A1:A10") 'キーワードリストの範囲を指定
    Do While FileName <> ""
        For Each cell In KeywordList
            If InStr(FileName, cell.Value) Then
                NewFileName = Replace(FileName, cell.Value, cell.Offset(0, 1).Value)
                Name Path & FileName As Path & NewFileName
                Exit For
            End If
        Next cell
        FileName = Dir
    Loop
End Sub

コードの詳細解説

– `Path`: 対象となるフォルダのパスを指定します。
– `FileName`: `Dir`関数を使用して、指定されたパスのファイル名を取得します。
– `KeywordList`: キーワードリストの範囲をExcelシートから指定します。この例では、Sheet1のA1:A10セルを指定しています。
– `InStr`関数: ファイル名にキーワードが含まれているかどうかをチェックします。
– `Replace`関数: 該当するキーワードをリストの隣のセルの内容に置き換えます。

補足事項

– このコードは、指定されたフォルダ内のすべてのファイル名を変更します。従って、変更前後のファイル名が重複しないように注意する必要があります。
– 実行前に必ずファイルのバックアップを取ることをおすすめします。

応用例

応用例1: 特定の拡張子だけを対象にする

特定のファイル形式、例えば`.jpg`のみのファイル名を変更する場合のコード例です。


FileName = Dir(Path & "*.jpg")

応用例2: ファイルの作成日をファイル名に追加する


NewFileName = NewFileName & Format(FileDateTime(Path & FileName), "YYYYMMDD")

応用例3: フォルダ内のサブフォルダも対象にする

再帰的にサブフォルダ内のファイルも処理対象とする場合のコード例です。


Sub RecursiveFolderRename(Path As String)
    '... 既存のコード ...
    Dim SubFolder As String
    SubFolder = Dir(Path & "*", vbDirectory)
    Do While SubFolder <> ""
        If GetAttr(Path & SubFolder) And vbDirectory Then
            RecursiveFolderRename Path & SubFolder & "\"
        End If
        SubFolder = Dir
    Loop
End Sub

まとめ

Excel VBAを利用することで、キーワードリストに基づいて大量のファイル名を効率よく変更することができます。このスキルは、特にデータの整理や管理を行う際に非常に役立ちます。今回紹介した基本的なコードや応用例を参考に、自身のニーズに合わせたカスタマイズを試してみてください。

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

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

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

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

コメント

コメントする

目次