サイトアイコン 効率化大全

【コピペでOK】VBAでフォルダ内のファイル名を一括変更!すぐに使えるVBA(マクロ)コード!

ファイル名を一つずつ手作業で変更するのは面倒…
大量のファイルをリネームする作業に時間を取られてしまう…

ファイル名変更の効率化にも、VBAを使ったファイル名の一括変更マクロはとても役に立ちます。エクセルの機能であるVBAですが、ファイル名の効率化も可能です。

今回紹介するVBAは、フォルダ内のファイル名を一括で取得し、Excel上で変更を行うものです。リストを編集するだけで簡単にリネームできるので、手作業の手間を大幅に削減できます。それぞれの環境で使用できるようにコードも作成しているので、コピペするだけで使うことができます。

また、このブログではVBAを活用した業務効率化の方法を多数紹介しています。AI活用や自動化に興味がある方も、ぜひ他の記事をチェックしてみてください!

コピペで使えるファイル名変更VBA

エクセルVBAを使って、フォルダ内のファイル名を一括変更する方法を紹介します。今回は2種類のマクロを使用します。

①指定フォルダにあるファイル名をエクセルに書き込む
②ファイル名をエクセルで書いた名称に変更

使い方については後ほど、詳しく説明します。

①フォルダ内のファイル名を取得するVBA

「指定フォルダにあるファイル名をエクセルに書き込む」動作を行うVBAになります。

Sub CopyFileNames()
    Dim folderPath As String, fileName As String
    Dim ws As Worksheet, fileCell As Range
    
    Set ws = ThisWorkbook.Sheets(ActiveSheet.Name)
    ws.Cells.ClearContents
    ws.Range("A1").Select
    
    ws.Range("A2") = "対象フォルダ"
    ws.Range("A3:B3") = Array("変更前ファイル名", "変更後ファイル名")
    
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = -1 Then
            folderPath = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With
    
    ws.Range("B2") = folderPath
    
    Set fileCell = ws.Range("A4")
    fileName = Dir(folderPath & "\*.*")
    
    Do While fileName <> ""
        fileCell.Value = fileName
        fileCell.Offset(0, 1).Value = fileName
        Set fileCell = fileCell.Offset(1, 0)
        fileName = Dir
    Loop
    
    MsgBox "変更したいファイル名をB列に記載してください。"
End Sub

Office付きで有料AIを月1800円以下で使う方法をコチラで紹介しています!

②ファイル名を一括変更するVBA

「ファイル名をエクセルで書いた名称に変更」するVBAです。

Sub Change_name()
    Dim Result As VbMsgBoxResult
    Dim folderPath As String
    Dim fileCell As Range
    Dim ws As Worksheet
    
    Result = MsgBox("実行しますか?※処理後は戻せません", vbQuestion + vbYesNo, "確認")
    If Result <> vbYes Then Exit Sub
    
    Set ws = ThisWorkbook.Sheets(ActiveSheet.Name)
    folderPath = ws.Range("B2").Value
    
    For Each fileCell In ws.Range("A4:A" & ws.Cells(Rows.Count, "A").End(xlUp).Row)
        If Len(Dir(folderPath & "\" & fileCell.Value)) > 0 Then
            Name folderPath & "\" & fileCell.Value As folderPath & "\" & fileCell.Offset(0, 1).Value
        End If
    Next fileCell
    
    MsgBox "完了しました"
End Sub

Office付きで有料AIを月1800円以下で使う方法をコチラで紹介しています!

エクセルファイルのダウンロード

VBAが分からないという方向けに、VBAが入ったエクセルファイルも用意しました。このエクセルを実行するだけで、ファイル名の一括変更ができます。

こちらはNoteにて販売しています。すぐに使いたい方はこちらを活用してください。

【Excelツール】ファイル名一覧取得&一括変更セット|すぐに使える完成版ダウンロード|犬井 | 効率化大全
フォルダ内のファイル名を一覧で取得したい… ファイル名を一つずつ手作業で変更するのは面倒… ファイル名を打ち直して、Enter… これを何十回、何百回と繰り返すような、無駄な作業をしていないでしょうか? この記事は、そんな「ファイル名変更」...
【さらにお得】効率化ツール全セット版も公開中!

Outlook操作やファイル整理など、今後追加されるツールもすべて使い放題になる「まとめ買いセット」も紹介しています。

複数使う予定の方は、こちらの方が圧倒的にお得です。

▼ 効率化ツール全セットはこちら

【DLで使える!】Excel・Outlookの「単純作業」自動化ツール|犬井 | 効率化大全
※2025/1/7にエクセルファイル/CSVの統合ツールを追加しました! 購入いただいた方は、追加ツールは追加費用なしでダウンロード可能です! Outlookで、宛先と添付ファイルだけを変えた似たようなメールの作成『202501_請求書』の...

マクロの使い方について

今回のマクロは、以下の手順で使用します。なお、それぞれの実行前に「実行しますか?」というメッセージと、「完了しました」というメッセージが表示されます。説明では省略していますが、「OK」を押してください。

①「①フォルダ内のファイル名を取得」VBAを実行

①のVBA(エクセルファイルでは「①ファイル取得」ボタン)を実行します。フォルダ選択画面が出てくるので、フォルダを選択してください。

※名前を変更したいファイルが入ったフォルダを選択してOKボタン

フォルダを選択するとファイル名がA列とB列に出力されます。

② B列に変更したいファイル名を入力

変更したいファイル名をB列に書き込みます。この時、拡張子(今回の場合「.pdf」)も忘れずにつけるようにしてください。

※右側の変更後ファイル名以外は変更しないように注意
③ 「ファイル名を変更」VBAを実行

②のVBA(エクセルファイルでは「①名称変更」ボタン)を実行し、ファイル名が変更となります。

Office付きで有料AIを月1800円以下で使う方法をコチラで紹介しています!

VBAの埋め込み、ボタンの挿入について

VBAの埋め込み

エクセルの「開発」タブから「Visual Basic」エディタを開きます。そしてVBAコードを「標準モジュール」に貼り付けます。

「開発」を出す設定コードの書き方は、VBAの基礎まとめのページで詳しく解説しています。こちらの記事もぜひ参考にしてみてください。

ボタンの挿入

ボタンをつけることで、クリックだけでマクロを実行できるようになります。

このブログでは、初期化ボタンの紹介として、ボタンについても解説しているので、参考にしてみてください。

さいごに

VBAはエクセルだけの機能と思われがちですが、ほかのサービスとの連携でも力を発揮します。今回紹介したファイル名の変更以外にも、CSVの取り込みOutlookとの連携など、大体のPC業務はVBAで効率化が可能です

このブログでは、このように日常業務が楽になるテクニックから、VBA等のスキルになる情報まで幅広く紹介しています。また現在、Office+生成AI2年間月1800円以下で使える、お得なキャンペーンをMicrosoftが実施しています。裏技的なやり方ですが大変お得なキャンペーンなので、興味がある方はぜひこの記事も参考にしてみてください!

MicrosoftのOffice+生成AIが月1800円以下で使えるお得な裏技はコチラ

モバイルバージョンを終了