【ExcelVBA・マクロ】エクセルにフォルダ内のファイル名を一括取得するマクロ

ExcelVBA

日々の業務で、フォルダ内のファイル名を手作業で書き写す作業は意外と多いですよね。
今回は、指定したフォルダ内にあるファイル名を一括でExcelシートに一覧表示するVBAコードをご紹介します。
業務効率化におすすめです!!


下記のような動作をするVBAコードを作成します。

Excelに指定したフォルダ内のファイル名を一括取得するマクロ

シートの準備

A列にファイル名が取得されますので、ファイル名に合わせてA列の幅を調整しておくと見やすくなります。

コマンドボタンの作成

「開発」タブから「挿入」をクリックしてActiveXコントロール内の「コマンドボタン」をクリック

適切な位置にボタンを配置

ボタンを右クリックして「プロパティ」をクリック

オブジェクト名を「inport」Captionを「ファイル名取得」に変更してプロパティを閉じる

これでコマンドボタンの作成は終了です。いよいよVBAコードを作成しましょう。

VBAコード

さきほど作成したコマンドボタンを右クリックして「コードの表示」をクリック

表示されているエディターの「Private Sub inport_Click()」内にコードを入力

Private Sub inport_Click()

    Dim path As String
    Dim fileName As String
    Dim i As Long

    ' フォルダ選択ダイアログを表示
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "フォルダを選択してください"
        If .Show <> -1 Then Exit Sub
        path = .SelectedItems(1) & "\"
    End With

    ' 最初のファイル名を取得
    fileName = Dir(path & "*.*")
    i = 1
    
    With ActiveSheet
    
        ' ワークシートを初期化
        .Range("A:A").ClearContents
        .Range("A1") = "ファイル名"
    
        ' ファイル名をA列に書き出す
        Do While fileName <> ""
            .Cells(i + 1, 1) = fileName
            fileName = Dir
            i = i + 1
        Loop
        
    End With

    MsgBox "完了しました!" & vbCrLf & "合計:" & i - 1 & " 件のファイルを取得しました。", vbInformation
End Sub

これでコードの入力を終了です。エディターを閉じて実際にマクロを実行してみましょう。

マクロ実行

「ファイル名取得」ボタンをクリックしてください

フォルダ選択画面が表示されますので、ファイル名を取得したフォルダを選択してOKをクリック

※下記画面は例となっています。実施にはファイル名を取得したいご自身のパソコンにあるフォルダを選択してください。

マクロが実行されてA列に自動でファイル名が取得できました!

まとめ

いかがでしたでしょうか。このマクロを使えば、毎回のファイル名チェックなどがグッと楽になります。

今後も業務が効率化、自動化ができる便利なVBAコードを紹介していきます。こんなコードを作ってほしいなどありましたら、コメントしてください。

コメント

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