VBATips

フォルダ内のファイル名を一括で変更処理するマクロ【ExcelVBA】

フォルダ内のファイル名を一括変更する

毎日成果物として提出をしないといけない場合に、ファイル名に日付を付けるなどをして、
ファイル名が被らないようにする事は多いです。

大量のファイルの場合作業時間が必要で、ファイル名を手動で変更するリネーム作業も手間がかかります。

面倒な処理をマクロで一括処理、ヒューマンエラーを起こさない為にもマクロ化します。

サンプルコード

’■フォルダ内のファイル名に日付(yymmdd形式)を付与する
Sub call_folder_all_file_rename()
    
    Dim Path As String
    Dim FName As String
    
    '■ファイル名取得するフォルダパス、該当拡張子を入れる
    Path = "C:\Sample\"
    
    FName = Dir(Path & "*.xls")  'ワイルドカード(*)を使用し、xlsx拡張子のファイルを全て
'    FName = Dir(Path & "*")  'ワイルドカード(*)を使用し、全てのファイルならこちらのコード
    
    
    '■Loopでファイルを取得→ファイル名変更
    Do While FName & <> ""
       
       '■sample.xlsx → sample200803.xlsx(2020/08/03に実行した場合)
       Name Path & FName As Path & call_BaseNameGet(FName) & Format(Now, "yymmdd") & call_ExtensionNameGet(FName)
              
       FName = Dir()
    Loop
End Sub
フォルダ内の全てのファイルに対して日付を追加しリネームします。
今回は、下記の記事の応用編です。
Dir関数についてはこちらを参照。
フォルダ内のファイル一覧を抜き出したい場合はこちらを参照。
フォルダ内のファイルに特定操作をする場合はこちらを参照。

注意点

  • 同一フォルダ内にリネームしたファイルを置いています。別フォルダにする場合は、
    Name AsのAs以降のパス部分(Path)を変更してください。
  • 今回記載したコードだけではマクロは動きません。
    下記のパーツを組み合わせる事でマクロが動きます。
    同一モジュール内に下記のパーツ化したコードを入れておいてください。

コメント

タイトルとURLをコピーしました