VBAで指定フォルダのファイル一覧を取得

コマンドプロンプトで「dir /on /s > a.txt」と入力するとa.txtにそのフォルダ配下のサブフォルダも含めたファイルの一覧が取得できます。

これと同様にVBAでも指定フォルダ配下のサブフォルダに含まれるファイルの一覧を取得することができます。

処理概要

ここではFileSystemObjectを利用する方法になります。

  1. FileSystemObjectのGetFolderメソッドを使い、指定フォルダ配下のサブフォルダを取得します。
  2. 取得したサブフォルダの中にさらにサブフォルダがある場合を考慮して、関数を再帰呼び出しします。
  3. 引数のフォルダの中にあるファイルを取得します。ファイルは、FolderオブジェクトのFilesプロパティでファイルの一覧としてを取得します。

以下のソースコードではファイルの一覧を単純にDebug.Printでイミディエイトウインドウに出力していますが、実際にはファイル出力やセルへの貼り付けなどを行うことが多いと思いますので適宜変更してください。


ソースコード

テスト用ソースコード

こちらは上の関数をテストするためのソースコードです。

実行するとVBEのイミディエイトウインドウにファイルの一覧が出力されます。

ここではファイルパスをC:\test\としています。

サブフォルダ配下の取得は不要な場合

上のソースではサブフォルダ配下までファイルを探しに行っていますが、サブフォルダは見なくていい場合があります。

その場合は、17行目から20行目までをコメントにするなどで削除してください。

指定フォルダにあるファイルのみを取得するようになります。

是非活用してください。

関連記事

サブコンテンツ

このページの先頭へ