VBA:FileDialogオブジェクトを利用した各種ダイアログボックスを表示する際のまとめ

Access VBA:FileDialogオブジェクトを利用した各種ダイアログボックスを表示する際のまとめ

AccessのFileDialogオブジェクトを使用した[ファイルを開く]ダイアログボックス、[名前を付けて保存]ダイアログボックス、[フォルダ選択]ダイアログボックスの各種ダイアログボックスを表示して使用する際のまとめ。

FileDialogオブジェクトに使用できる定数

FileDialogオブジェクトに使用できる定数は以下のとおりで、指定する定数によって表示するダイアログボックスが変わる。

定数名表示されるダイアログボックスサポート
msoFileDialogOpen1ファイルを開く対象外
msoFileDialogSaveAs2名前を付けて保存対象外
msoFileDialogFilePicker3ファイル参照対象
msoFileDialogFolderPicker4フォルダ参照対象

FileDialogオブジェクトのヘルプを見ると明示的に

「定数 msoFileDialogOpen および定数 msoFileDialogSaveAs は Access ではサポートされていません。」

と記載されているので、msoFileDialogOpenとmsoFileDialogSaveAsを指定した際はサポート対象外となる。

FileDialogオブジェクトの主要プロパティ

FileDialogオブジェクトの主要なプロパティは以下のとおり。

指定する定数(ダイアログボックスの種類)によっては使用できないプロパティがある。

プロパティ名意味
AllowMultiSelectファイルの複数選択可否
FilterIndex開くファイルの種類を限定するためのフィルタ設定値
Titleダイアログボックスのタイトルバーに表示したい文字列
ButtonName[開く]ボタンの””開く””を違う文字に指定したい場合に設定
InitialFileNameデフォルトのファイルもしくはフォルダを指定したい場合に設定

FilterIndexは、ファイルの種類と拡張子を指定する際に使用されるプロパティで、デフォルトでは24種類のファイルの種類がある。

また、デフォルトでは用意されていないファイルの種類と拡張子をFilters.Addメソッドを使用して新たに加えることも可能。

FileDialogオブジェクト関連の各記事について

各種プロパティやFilterIndexで指定できるファイルの種類、新たにファイルの種類を追加する方法など、最もFileDialogオブジェクトについて詳細に記載された記事

AccessのVBAで"FileDialog"オブジェクトを使用して[ファイルを開く]ダイアログボックスを表示させて利用するサンプルプログラムを覚書。

複数のファイルを選択できるタイプの[ファイルを開く]ダイアログボックスを表示した際の処理方法についての記事

AccessのFileDialogオブジェクトを使用して複数のファイルを選択できるダイアログボックスを表示して利用する方法について覚書し...

[名前を付けて保存]ダイアログボックスを表示して利用するサンプルプログラムが記載されている記事

Accessの「FileDialog」オブジェクトを使用して[名前を付けて保存]ダイアログボックスを表示するVBAのサンプルプログラムを覚書。 FileDialogを使用する際は、Microsoft Office Object Libraryの参照設定を忘れずに。

[フォルダ選択]ダイアログボックスを表示して利用するサンプルプログラム

AccessのVBAでFileDialogオブジェクトを使用してフォルダのみ選択する[フォルダ選択]ダイアログボックスを表示するサンプルプログラムを覚書。

まとめ

FileDialogオブジェクトの存在を最近まで知らなくて一通り調べて使ってみたけれど、あまり自由度がないという印象かな 。

[ファイルを開く]ダイアログボックスや[名前を付けて保存]ダイアログボックスを使いたいならwizhookオブジェクトを使用する方が良いと思う。