Excel VBAで使えるDir関数の使い方と活用法

Excel VBAには、ファイル操作を行うための機能が備わっています。
その中でも、フォルダ内のファイルを一覧表示するためのDir関数は特に便利です。本記事では、Excel VBAのDir関数について詳しく解説します。

Dir関数の概要

Dir関数は、指定されたフォルダ内にあるファイル名を取得する関数です。次のような構文を持ちます。

引数pathNameは、検索対象とするフォルダのパスを指定します。引数attributesは、検索対象とするファイルの属性を指定します。この引数を省略すると、通常のファイルを検索します。

他にも、ディレクトリや読み取り専用のファイルなど、様々な属性を指定することができます。

Dir関数は、検索結果の最初のファイル名を返します。また、次回の呼び出し時には、次のファイル名を返すように挙動が変わります。このため、繰り返し処理を行う場合に非常に便利な関数です。

Dir関数の使用例

まずは、簡単な使用例を示します。次のコードは、指定されたフォルダ内のファイル名を全て取得し、メッセージボックスに表示するものです。

このコードでは、まずpath変数に検索対象のフォルダパスを指定しています。
次に、fileName変数にDir関数を呼び出し、検索結果の最初のファイル名を取得しています。その後、Do Whileループを使って、検索結果を全て取得するまで繰り返し処理を行います。

また、Dir関数は引数attributesを使って、検索対象とするファイルの属性を指定することができます。例えば、次のコードは、読み取り専用のファイルだけを検索するものです。

このコードでは、vbReadOnlyをattributesに指定することで、読み取り専用のファイルだけを検索しています。他にも、ディレクトリや隠しファイルなど、様々な属性を指定することができます。

Dir関数とFilesystemObjectの比較

Dir関数は、ファイル操作を行うためのVBAの標準機能の一つですが、FilesystemObjectというオブジェクトもあります。
FilesystemObjectは、ファイルやフォルダを操作するための高度な機能を提供しています。では、Dir関数とFilesystemObjectを比較して、それぞれの長所と短所を挙げてみましょう。

Dir関数の長所

  • 簡単にファイル名を取得できるため、繰り返し処理が容易に行える
  • VBAの標準機能であるため、導入の手間が少ない

Dir関数の短所

  • 検索対象のフォルダ内のファイル名しか取得できないため、ファイルの詳細情報を取得することはできない
  • 検索対象の属性を指定することはできるが、複数の属性を指定することはできない

FilesystemObjectの長所

  • ファイルの詳細情報を取得できるため、より高度なファイル操作が可能
  • 様々な属性を指定することができるため、より柔軟なファイル操作が可能

FilesystemObjectの短所

  • ファイル名の取得には、より多くのコードが必要となる
  • FilesystemObjectはVBAの標準機能ではないため、導入の手間がある

まとめ


では、vbReadOnlyをattributesに指定することで、読み取り専用のファイルだけを検索しています。他にも、ディレクトリや隠しファイルなど、様々な属性を指定することができます。

  1. Dir関数とFilesystemObjectの比較

Dir関数は、ファイル操作を行うためのVBAの標準機能の一つですが、FilesystemObjectというオブジェクトもあります。
FilesystemObjectは、ファイルやフォルダを操作するための高度な機能を提供しています。
では、Dir関数とFilesystemObjectを比較して、それぞれの長所と短所を挙げてみましょう。

Dir関数の長所

  • 簡単にファイル名を取得できるため、繰り返し処理が容易に行える
  • VBAの標準機能であるため、導入の手間が少ない

Dir関数の短所

  • 検索対象のフォルダ内のファイル名しか取得できないため、ファイルの詳細情報を取得することはできない
  • 検索対象の属性を指定することはできるが、複数の属性を指定することはできない

FilesystemObjectの長所

  • ファイルの詳細情報を取得できるため、より高度なファイル操作が可能
  • 様々な属性を指定することができるため、より柔軟なファイル操作が可能

FilesystemObjectの短所

  • ファイル名の取得には、より多くのコードが必要となる
  • FilesystemObjectはVBAの標準機能ではないため、導入の手間がある
  1. まとめ

本記事では、Excel VBAのDir関数について詳しく解説しました。
Dir関数は、フォルダ内のファイル名を簡単に取得することができるため、繰り返し処理に非常に便利です。
また、引数attributesを使って、検索対象とするファイルの属性を指定することもできます。
ただし、ファイルの詳細情報を取得することはできないため、より高度なファイル操作を行う場合には、FilesystemObjectなどの別の手段を検討する必要があります。

サンプルコード

特定のファイル名を持つファイルを検索する

Dir関数を使用して、特定のファイル名を持つファイルを検索することができます。
例えば、以下のコードは、C:\Users\user1\Documentsフォルダ内で、拡張子がxlsxのファイルのうち、ファイル名に”report”という文字列が含まれるものをすべて列挙する例です。

ファイルの作成日時を取得する

Dir関数を使用して、ファイルの作成日時を取得することもできます。以下のコードは、C:\Users\user1\Documentsフォルダ内で、拡張子がxlsxのファイルのうち、ファイル名に”report”という文字列が含まれるものの作成日時をすべて列挙する例です。

コメント