Excel

【Excel】VBAマクロでファイル名を変更(フォルダ内で一括、変数、セルから取得する方法

当サイトでは記事内に広告を含みます

この記事では、【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

コードのAlt+F8を押し、マクロ選択画面でFileNameHenkou関数を実行します。

このコードでは、指定したフォルダ内の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関数を実行します。

このコードでは、別のxlsxのA列からファイル名を取得し、指定したフォルダ内のxlsxファイル名に反映します。

Cells関数でA列の最終行までのデータを取得し、ループ処理で名前を変更しています。

まとめ

以上、ExcelのVBAマクロを使用してファイル名を変更する方法について解説しました。

ポイントとしては、Dir関数、Cells関数、Workbooks.Openメソッドの活用が挙げられます。

初心者の方でも理解しやすいように変数名を工夫していますので、ぜひ参考にしてみてください。