こちらの記事で大量にあるファイル名を一括で変換できるバッチファイルを作成する方法を書きました。
しかし、どういうわけか会社のPCで実行するとファイル名が文字化けし、
エラーになって変換できません。
Excelのマクロで同じことができないか調べたら・・・
ありました!
Name というものを使えばバッチファイルの時と同じように変換できました。
Excel での準備
Excel に
・変換前のファイル名の列
・新ファイル名の列
・フォルダパスを入力するセル
を準備します。
コマンドプロンプトで変換前のファイル名を一括で取得できます。
該当のフォルダに移動してから、
>dir /b >list.txt
を実行すると list.txt というファイル名で、
そのフォルダに保存されているすべてのファイル名を取得したテキストが作成されます。
**********
マクロ
Sub ファイル名変換()
Dim r As Long
Dim OldNameC As Long '変換前ファイル名の列
Dim NewNameC As Long '新ファイル名の列
Dim LastR As Long '最終行
Dim Path As String 'ファイル名を変換するフォルダのパス
OldNameC = 1
NewNameC = 2
LastR = Cells(Rows.Count, OldNameC).End(xlUp).Row
Path = Cells(1, 5) & "¥" '※
For r = 2 To LastR
Name Path & Cells(r, OldNameC) As Path & Cells(r, NewNameC)
Next r
End Sub
※ 該当のフォルダパスを入力したセルの後に新/旧ファイル名を続けます。
Cells(1,5) には C:¥Sample までしか格納されないので、
最後尾に「¥」を追加します。
セルに「¥」を追記しても良いかもしれません。
Name の構文は
Name [該当フォルダのパスとファイル名] AS [該当フォルダのパスと新ファイル名]
です。
Name Path & Cells(r, OldNameC) As Path & Cells(r, NewNameC)
を変数なしで記述すると
Name "C:¥Sample¥Sample_001.txt" AS "C:¥Sample¥Sample_006.txt"
になります。
あとはシート上にボタンを作成してこのマクロを登録すれば完成です。
_/_/_/_/_/_/_/_/_/_/_/
個人用マクロブックについてはこちら
リボンに登録についてはこちら
_/_/_/_/_/_/_/_/_/_/_/_/_/_/