社内SEの徒然なる日記

Excelマクロでファイルやフォルダを選択 №2 ファイル参照の基本

■ ファイル参照

前回は、FileDialogオブジェクトを使用してフォルダ選択画面を表示したので、今回は、ファイル参照をやってみます。

ファイル参照は、引数に「msoFileDialogFilePicker:参照(ファイル)」を設定します。

With Application.FileDialog(msoFileDialogFilePicker)

'ダイアログを表示します。
If .Show = -1 Then

'選択したフォルダパスを表示
MsgBox .SelectedItems.Item(1)

End If
End With


基本的には、前回のフォルダ参照と同じですので、基本的な使い方の説明は前回を参照して下さい。

■ ファイルの種類の指定

フォルダと違って、ファイルを参照する場合は「ある種類のファイル」を指定したいことが多いと思います。FileDialogオブジェクトの場合、特に指定しないと下記の状態になります。
Excelファイルフォルダ選択2_1

これでは都合が悪いので、フィルタを設定します。

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


実行結果は、こうなります。
Excelファイルフォルダ選択2_2

① フィルタのクリア

「.Filters.Clear」とすると、フィルタの設定をクリアすることが出来ます。今回の例では「すべてのファイル(*.*)」を消すことが出来ます。使用しなくても動作するのですが、オブジェクトのプロパティは初期化しておいた方が無難です。

② フィルタの設定

「.Filters.Add」でフィルタを追加することが出来ます。第一引数が名称で、第二引数が拡張子になります。

複数のファイル(拡張子)を対象にする時は、第二引数を;(セミコロン)で区切って指定します。

③ フィルタの初期選択

「.FilterIndex」で、指定したフィルタの初期選択を指定できます。開始値は1ですので、上記のサンプルの場合は"Excelファイル"が初期選択された状態になります。


前回:Excelマクロでファイルやフォルダを選択 №1 フォルダ参照
次回:Excelマクロでファイルやフォルダを選択 №3 ファイル参照(初期値)
目次:目次

--- blog end ---

スポンサードリンク

PageTop

コメント


管理者にだけ表示を許可する