GetOpenFilename メソッド
ファイル名を取得するための、「ファイルを開く」ダイアログボックスを表示します。ただし、ここで指定したファイルは、実際には開かれません。
【書式】
object.GetOpenFilename ( filefilter, filterindex, title, buttontext, multiselect )
引数・戻り値
- object ・・・ 対象となる Application オブジェクトを指定します。
- filefilter ・・・ ファイルの種類を指定する文字列を指定します。省略するとすべてのファイルになります。
指定方法は、ダイアログボックスに表示するファイルフィルタ文字列とファイルの種類を表すワイルドカードのペアをカンマ(,)で区切って指定します。複数指定したい場合もカンマ(,)で区切ります。1つのファイルフィルタ文字列に対して複数のワイルドカードを指定したい場合は、セミコロン(;)で区切ります。
(例 1)テキストファイル(*.txt)を指定する例
”テキストファイル,*txt”
(例 2)Excelファイル を指定する例
”Excel ファイル,*.xlsx;*.xlsm”
(例 3)すべてのファイルを指定する例(省略した場合と同じ)
”すべてのファイル,*.*” - filterindex ・・・ 引数 filefilter で指定したファイルフィルタ文字列の中で、何番目のファイルフィルタ文字列を既定値とするかを指定します。省略すると、最初のファイルフィルタ文字列が既定値となります。
- title ・・・ ダイアログボックスに表示されるタイトルを指定します。省略すると「ファイルを開く」になります。
- buttontext ・・・ Macintosh でのみ指定できます。
- multiselect ・・・ True を指定すると、複数のファイルを選択できます。False を指定すると、1 つのファイルしか選択できません。既定値は False です。
GetOpenFilename メソッド の戻り値について
このメソッドは、ユーザーによって選択、または入力されたファイルの名前とパス名を返します。ただし、引数 multiselect が True の場合は、配列が返されます。このとき、選択されたファイルが 1 つでも配列として返されます。キャンセルすると False が返されます。
このメソッドを実行することによって、カレントドライブやカレントフォルダーが変更される可能性があります。
GetOpenFilename メソッド 使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Sub Sample_GetOpenFilename() Dim FileName As Variant '「ファイルを開く」ダイアログボックスを表示(Excelファイル、複数選択可) FileName = Application.GetOpenFilename( _ filefilter:="Excelファイル,*.xls*", _ MultiSelect:=True) 'ファイルを選択した場合、配列で返されるのでエラーが発生する On Error GoTo MSG 'キャンセルすると「False」(boolean)が返されるので 'If FileName = "False" Then または、 If VarType(FileName) = vbBoolean Then MsgBox "ファイルが選択されていません" Exit Sub End If MSG: '選択したファイル名を表示 MsgBox Join(FileName, vbCrLf) End Sub |
実行結果
上記 Sample_GetOpenFilename を実行
5 つのファイルを選択して「開く」ボタンをクリック