この記事では、【Excel】VBAマクロでファイル名を変更(フォルダ内で一括、変数、セルから取得する)方法について解説していきます。
ポイントとしては、Dir関数、Cells関数、Workbooks.Openメソッドを使用することです。
なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。
そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。
それでは詳しく見ていきましょう!
VBAマクロでファイル名を変更(フォルダ内xlsxを一括変更【ワイルドカード、Dir関数】
それではまず、フォルダ内のxlsxファイルを一括で変更する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub FileNameHenkou()
Dim pasu As String
Dim hensuu As String
Dim kaisuu As Integer
pasu = "C:\フォルダのパス\" 'フォルダのパスを指定
hensuu = Dir(pasu & "*.xlsx")
Do While hensuu <> ""
kaisuu = kaisuu + 1
Name pasu & hensuu As pasu & "henkougo" & kaisuu & ".xlsx"
hensuu = Dir()
Loop
End Sub
今回はC直下のfilenameフォルダ内のxlsxファイルすべての名前を一括変更させてみます。
※上コードのパスの部分をC://filename//に変更し処理しております。
コードのAlt+F8を押し、マクロ選択画面でFileNameHenkou関数を実行します。
すべてのフォルダ内のファイル名がhenkougo+連番となりました!
コードの意味としては以下の通りですね。
このコードでは、指定したフォルダ内のxlsxファイルを一括で「henkougo+連番」の形式に変更します。
Dir関数を使用してフォルダ内のファイルを取得し、ループ処理で名前を変更しています。
VBAマクロでファイル名を変更(別のxlsxのA列にて最終行まで取得し、フォルダ内のファイルへ反映)【Cells関数】【Workbooks.Openメソッド】
続いては、別のxlsxのA列からファイル名を取得し、フォルダ内のファイル名に反映する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub FileNameHenshin()
Dim sakiPasu As String
Dim motoPasu As String
Dim saishuuGyou As Integer
Dim hensuuchi As Integer
Dim wb As Workbook
sakiPasu = "C:\フォルダのパス\" '変更するファイルがあるフォルダのパスを指定
motoPasu = "C:\元のファイルのパス.xlsx" '名前を取得する元のxlsxファイルのパスを指定
Set wb = Workbooks.Open(motoPasu)
saishuuGyou = Cells(Rows.Count, 1).End(xlUp).Row
For hensuuchi = 1 To saishuuGyou
Name sakiPasu & "ファイル名" & hensuuchi & ".xlsx" As sakiPasu & Cells(hensuuchi, 1).Value & ".xlsx"
Next hensuuchi
wb.Close SaveChanges:=False
End Sub
コードのAlt+F8を押し、マクロ選択画面でFileNameHenshin関数を実行します。
変更したい名前A列に入ったファイルがC;//namae//namae.xlsxとして格納されています。
このコードでは、別のxlsxのA列からファイル名を取得し、指定したフォルダ内のxlsxファイル名に反映します。
Cells関数でA列の最終行までのデータを取得し、ループ処理で名前を変更しています。
まとめ
以上、ExcelのVBAマクロを使用してファイル名を変更する方法について解説しました。
ポイントとしては、Dir関数、Cells関数、Workbooks.Openメソッドの活用が挙げられます。
初心者の方でも理解しやすいように変数名を工夫していますので、ぜひ参考にしてみてください。