
■ ファイル参照
前回は、FileDialogオブジェクトを使用してフォルダ選択画面を表示したので、今回は、ファイル参照をやってみます。
ファイル参照は、引数に「msoFileDialogFilePicker:参照(ファイル)」を設定します。
With Application.FileDialog(msoFileDialogFilePicker)
'ダイアログを表示します。
If .Show = -1 Then
'選択したフォルダパスを表示
MsgBox .SelectedItems.Item(1)
End If
End With
基本的には、前回のフォルダ参照と同じですので、基本的な使い方の説明は前回を参照して下さい。
■ ファイルの種類の指定
フォルダと違って、ファイルを参照する場合は「ある種類のファイル」を指定したいことが多いと思います。FileDialogオブジェクトの場合、特に指定しないと下記の状態になります。

これでは都合が悪いので、フィルタを設定します。
With Application.FileDialog(msoFileDialogFilePicker)
'ファイルフィルタをクリア
.Filters.Clear
'ファイルフィルタの設定
.Filters.Add "テキストファイル", "*.txt"
.Filters.Add "Excelファイル", "*.xls;*.xlsx;*.xlsm"
'ファイルフィルタの初期選択
.FilterIndex = 2
'ダイアログを表示します。
If .Show = True Then
'選択したフォルダパスを表示
MsgBox .SelectedItems.Item(1)
End If
End With
実行結果は、こうなります。

① フィルタのクリア
「.Filters.Clear」とすると、フィルタの設定をクリアすることが出来ます。今回の例では「すべてのファイル(*.*)」を消すことが出来ます。使用しなくても動作するのですが、オブジェクトのプロパティは初期化しておいた方が無難です。
② フィルタの設定
「.Filters.Add」でフィルタを追加することが出来ます。第一引数が名称で、第二引数が拡張子になります。
複数のファイル(拡張子)を対象にする時は、第二引数を;(セミコロン)で区切って指定します。
③ フィルタの初期選択
「.FilterIndex」で、指定したフィルタの初期選択を指定できます。開始値は1ですので、上記のサンプルの場合は"Excelファイル"が初期選択された状態になります。
前回:Excelマクロでファイルやフォルダを選択 №1 フォルダ参照
次回:Excelマクロでファイルやフォルダを選択 №3 ファイル参照(初期値)
目次:目次
--- blog end ---
スポンサードリンク


