PR

VBA フォルダ内のファイル名を一括変換する方法

VBA

今回は、フォルダ内のファイル名を一括変換するVBAを作ったので紹介します!

VBA全文

Sub get_file_name()
    '変数の型を宣言
    Dim folder_path As String
    Dim file_name As String
    Dim i As Integer
    

'セルE1に記載してあるフォルダのフォルダのパスを取得
    folder_path = Cells(1, 5) & "\"
    file_name = Dir(folder_path, vbNormal)

    i = 1

    Do Until file_name = ""
        Cells(i + 3, 1) = file_name
        i = i + 1
        file_name = Dir()
    Loop

   'ファイル名変更
    Dim j As Integer

    j = 1
    
  'B4セルからファイル名を更新
   Do Until Cells(j + 3, 1) = ""

    'A列のファイル名をB列のファイル名に更新
    Name folder_path & Cells(j + 3, 1) As folder_path & Cells(j + 3, 2)

    j = j + 1
  
 Loop

End Sub

「file_name]にフォルダのパスを格納


変数の型を宣言

Dim folder_path As String
Dim file_name As String
Dim i As Integer

Stringは文字列
Integerは整数

folder_path = Cells(1, 2) & "\"
file_name = Dir(folder_path, vbNormal)

セルB1に記載してあるフォルダのフォルダのパスを取得して、変数「file_name」に格納します。

「Do Until ~ Loop」は条件を満たすまで処理を繰り返す

i = 1

Do Until file_name = ""
    Cells(i + 3, 1) = file_name
    i = i + 1
    file_name = Dir()
Loop

Cells(i + 3,1)は「i = 1」なのでCells(4 ,1)となり、セルA4を指します。

「file_name」で取得したファイル名をセルA4に入力した後、「i = i + 1」で i に1ずつプラスされます。

行列が「1」ずつ足されていくので、A4→A5→A6と順番に「file_name」で取得したファイル名が入力されます。

file_name が “” となったところ、つまり取得するファイル名がなくなったところで処理が終わります。

次に、取得したファイル名をB列に記載したファイル名に書き換えていきます。
ファイルの名前を変更するには、Nameステートメントを使います。

構文

Name oldpathname As newpathname

  • oldpathnameには、名前を変更するファイル名を指定します。
  • newpathnameには、新しい名前を指定します。
 'ファイル名変更
    Dim j As Integer

    j = 1
    
  'B4セルからファイル名を更新
   Do Until Cells(j + 3, 1) = ""

    'A列のファイル名をB列のファイル名に更新
    Name folder_path & Cells(j + 3, 1) As folder_path & Cells(j + 3, 2)

    j = j + 1
  
 Loop

A列から変更前のファイル名を取得し、B列から新しいファイル名を取得してファイル名を変更していきます。
ファイル名を取得したときと同じように、「Do Until ~ Loop」を使用して条件をみたすまで処理を繰り返します。

実際にマクロを実行した動画がこちらです。

まとめ

今回は6ヶのファイル名の変更でしたが、ファイル数が10、100となると手動で変更となるとかなりの時間となります。

このマクロを使えば、あっという間にファイル名が変更できますので本当におすすめです!

ぜひ、使ってみてくださいね!

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