FileDialogプロパティ

ファイルを開いたり、名前を付けて保存するダイアログボックスはFileDialogプロパティを使って表示することが出来ます。

FileDialogプロパティには引数が1つあり、ダイアログボックスの種類を変えることが出来ます。表示できるのは「ファイルを開く」「名前を付けて保存」「参照(ファイルの選択)」「参照(フォルダの選択)」の4つのいずれかです。

FileDialogプロパティはFileDialogオブジェクトを返します。このFileDialogオブジェクトの各種プロパティで見た目の設定を行い、のShowメソッドでダイアログボックスを表示し、Executeメソッドで押したボタンの処理を実行をします。

Application.FileDialogプロパティの構文

Application.FileDialog(fileDialogType As MsoFileDialogType) As FileDialog

Application 親オブジェクトとしてApplicationオブジェクトを指定します。省略できません。
fileDialogType ダイアログボックスの動作をMsoFileDialogType列挙型の定数で指定します。
戻り値 FileDialogオブジェクトを返します。FileDialogオブジェクトの各種プロパティやメソッドでダイアログボックスの設定や操作を行います。

MsoFileDialogType列挙型

定数 内容
msoFileDialogOpen 1 ファイルを開く
msoFileDialogSaveAs 2 名前を付けて保存
msoFileDialogFilePicker 3 ファイル参照
msoFileDialogFolderPicker 4 フォルダ参照

FileDialogオブジェクトのプロパティとメソッド

Application.FileDialogプロパティから返されるFileDialogオブジェクトには以下のプロパティとメソッドがあります。

OSやExcelバージョンの影響なのか、プロパティによっては設定しても無視されるものがあります。Windows7以降ではIntialViewプロパティは無視されるようです。

プロパティ

プロパティ名 説明
AllowMultiSelect ダイアログボックスでファイルを複数選択できるかどうかを設定します。Trueを指定すると複数ファイル選択可で、Falseを指定すると1ファイルのみ選択可になります。「名前を付けて保存」と「参照(フォルダの選択)」ダイアログの場合にTrueにしても無視され1ファイルのみ選択可になります。
ButtonName アクションボタンの表示名を変更します。あまりに長い文字数はエラーになります。
DialogType ダイアログボックスの種類をMsoFileDialogType列挙型で取得します。FileDialogプロパティの引数で設定した内容と同じです。読み取り専用です。
FilterIndex ダイアログボックスに初期表示するファイルの種類を設定します。ファイルの種類プルダウンの表示される先頭を1として2、3、4となります。番号がどのファイルに対応しているかを知りたい場合は、Filtersプロパティで取得したFileDialogFiltersコレクションのItemメソッドでファイルの種類プルダウンに表示される内容を確認することは可能です。「ファイルを開く」ダイアログか「名前を付けて保存」ダイアログの場合にしか設定できません。「参照(ファイルの選択)」「参照(フォルダの選択)」の場合はエラーになります。
Filters ダイアログボックスに表示するファイルの種類を設定するFileDialogFiltersコレクションを取得します。取得のみ可能です。
InitialFileName ダイアログボックスに初期表示するファイルパスを設定します。パスだけを指定した場合はファイル名は空欄になります。ファイル名には「*(1文字以上の任意文字)」や「?(1文字の任意文字)」の指定も可能です。
InitialView ダイアログボックスの表示形式をMsoFileDialogView列挙型の定数で設定します。
SelectedItems ダイアログのアクションボタンが押された際に選択していたファイルの一覧をFileDialogSelectedItemsコレクションで取得します。AllowMultiSelectプロパティでTrue(複数選択可)にしている場合は複数ファイルのパスが取得可能です。
Title ダイアログボックスのタイトルバーの文字列の設定や取得を行います。

メソッド

メソッド名 説明
Show ダイアログボックスを表示します。戻り値は、アクションボタンを押すと-1、キャンセルボタンかダイアログボックスの×ボタンを押すと0が返されます。
Execute アクションボタンの内容を実行します。よって、FileDialogプロパティの引数で設定した「ファイルを開く」、「名前を付けて保存」、「ファイル参照」、「フォルダ参照」に対する処理が行われます。ダイアログボックスでキャンセルボタンや×ボタンを押した場合は動作しません。

FileDialogFiltersコレクション

Add ファイルの種類を追加します。第一引数のDescriptionにはファイルの種類の名前を指定し、第二引数のExtensionsには拡張子を”*.abc”形式で指定し、第三引数は追加する位置を指定します。第三引数は省略可能で、省略した場合は末尾への追加になります。
Clear ファイルの種類を全て削除します。
Count ファイルの種類の数を返します。
Delete 引数のIndexに指定したファイルの種類を削除します。
Item 引数のIndexに指定したファイルの種類をFileDialogFilterコレクションで返します。

MsoFileDialogView列挙型

定数 説明
msoFileDialogViewDetails 2 詳細
msoFileDialogViewLargeIcons 6 大きいアイコン
msoFileDialogViewList 1 並べて表示
msoFileDialogViewPreview 4 プレビュー
msoFileDialogViewProperties 3 プロパティ
msoFileDialogViewSmallIcons 7 小さいアイコン
msoFileDialogViewThumbnail 5 縮小表示
msoFileDialogViewTiles 9 並べて表示
msoFileDialogViewWebView 8 Webビュー表示

FileDialogSelectedItemsコレクション

Countプロパティ ファイルパスの数を返します。
Itemメソッド 引数に数字を指定し、その数字に応じたダイアログで選択したファイルパスを返します。引数は1が先頭になります。

使い方

FileDialogの使い方は用途によって異なります。ここではファイルを開く場合を例にします。

Application.FileDialogプロパティを使って、FileDialogオブジェクトを取得します。

例えば、開きたいファイルをログファイルに限定したい場合は、取得したFileDialogオブジェクトのFiltersプロパティでFileDialogFiltersコレクションを取得し、Addメソッドでファイルの種類にログファイルを追加します。

その後Showメソッドを使って、アクションボタンが押された場合のみ、Executeメソッドでアクションボタンの処理を実行します。