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メソッドでアクションボタンの処理を実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Sub FileDialogTest() Dim fd As FileDialog Dim ret Dim fil As FileDialogFilters '// ファイルを開くダイアログを設定 Set fd = Application.FileDialog(msoFileDialogOpen) Set fil = fd.Filters '// ファイルの種類を設定 Call fil.Clear Call fil.Add("ログファイル", "*.log") ret = fd.Show '// キャンセル時 If ret = 0 Then Exit Sub End If '// アクションボタンを実行 fd.Execute End Sub |