フォルダを指定してファイル一覧を取得するVBA

本来、1つのブックにまとまっていなければいけない売上や出金のデータをバラバラのブックで1つ1つ作っていた場合、月末に集計する時にそれを1つ1つ開き、コピー、貼り付けをします。
それではあまりにも非効率なので、そのような作業はコーヒータイムの間に仕掛けて、コーヒーが飲み終わったらその作業が終わっている、というのが理想です。
そのためには、作業するフォルダを指定して、その中のファイルの名前一覧を作ることが必要です。
そこで、そのような動作をするVBAを作ってみました。
Moduleの中にコピペしてそのまま使えます。
呼び出す書式は
SetFolder(一覧データの先頭セル,探すファイル名)
で指定します。
Call SetFolder(Worksheets(“出金シート”).Range(“A1″),”出金伝票*.xlsx”)
これで、出勤シートのセルA1に指定フォルダ、セルA2から「出金伝票なんとか.xlsx」のファイル名のファイルがどんどん書き込まれます。
全ファイルを検索するのであれば、探すファイル名は「*.*」で指定してください。
Function SetFolder(OutputCell As Range, FindFile As String)
Dim DataFolder As String
Dim i As Integer
Dim FileName As String
Application.FileDialog(msoFileDialogFolderPicker).Show
DataFolder = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)
OutputCell.Value = DataFolder
FileName = Dir(DataFolder & FindFile)
Do While FileName <> “”
i = i + 1
OutputCell.Offset(i, 0).Value = FileName
FileName = Dir()
Loop
End Function
サトウヨシヒロ

Excelを中心としたMicrosoft Officeの魔法使い。
仙台市在住のフリーランスのパソコンインストラクターです。
1969年1月生まれ。
Excelを黎明期から30年近く使っています。Wordも使えます。
出版社様と一緒にExcelの情報発信もしています。
最近は羊に夢中です。
2019年はRPAと業務効率化を勉強しています。

Twitterでも業務で使える便利なOffice技をめっちゃつぶやくツイッタラーです。@yosatonet

1件のコメント

  1. […] ータを取りまとめするブックのA列に次のように記録されているものとします。 これは、この記事にあるFunctionで作ることができます。 データを取りまとめするブックでマクロを起動し […]

コメントを残す

メールアドレスが公開されることはありません。