VBA:ファイルを選択するためのFileDialogオブジェクトを利用したファイル選択ダイアログを作成する

VBA

FileDialogオブジェクトを利用し、一つのファイルを選択するファイル選択ダイアログを作成する

FileDialogを利用して初期設定にフォルダを指定し、一つのファイルを選択するためのファイル選択ダイアログを作成します。

関数にしていますので、そのままコピーして利用することができます。

関数の説明

strFolder:初期設定するフォルダを指定します。

使用例

C2セルにフォルダが入っています。

C2セルのフォルダを初期設定として、「一つのファイルを選択する」関数に渡しています。

ファイルを選択した場合、C3セルに選択したファイルを代入します。

FileDialogオブジェクトを利用し、複数のファイルを選択するファイル選択ダイアログを作成する

FileDialogを利用して初期設定にフォルダを指定し、複数のファイルを選択するためのファイル選択ダイアログを作成します。

関数にしていますので、そのままコピーして利用することができます。

関数の説明

strFolder:初期設定するフォルダを指定します。

使用例

C2セルにフォルダが入っています。

C2セルのフォルダを初期設定として、「一つのファイルを選択する」関数に渡しています。

ファイルを選択した場合、C3から以下のセルに選択したファイルを代入します。

応用:FileDialogオブジェクトを利用し、拡張子を限定した複数のファイルを選択するファイル選択ダイアログを作成する

FileDialogを利用して初期設定にフォルダを指定し、複数のファイルを選択するためのファイル選択ダイアログを作成します。ここは、さらに拡張子を限定したバージョンにしています。

ここでは、Excelファイルに限定した場合のソースコードです。

関数にしていますので、そのままコピーして利用することができます。

追加した部分

.Filters.Clearという部分は、デフォルトでファイル選択対象としている拡張子をクリアするために必要です。

その後、1番目はxlsx、2番目はxlsm、3番目はすべてのファイルとしてフィルタ一覧を作成しています。

.FilterIndex = 1は、デフォルトで1番目のxlsxを指定しています。

設定したときは、以下のようになります。

.Filters.Clearを設定しなかった場合、以下のようになってしまいます。

さらにcsvファイルを追加したい場合は、xlsmの下の行に追加すればOKです。