目次
Application.GetOpenFilename メソッドの構文
Excel VBAで、ファイルを開くダイアログを表示するプログラムです。
ApplicationオブジェクトのGetOpenFilenameメソッドを使用します。
ユーザーからファイル名を取得するために、[ファイルを開く] ダイアログ ボックスを表示します。
Application.GetOpenFilename (FileFilter, FilterIndex, Title, ButtonText, MultiSelect)
FileFilter | ファイル フィルター文字列を指定します。 |
FilterIndex | FileFilter で指定したファイル フィルター文字列の中で、1 から何番目の値を既定値とするかを指定します。 この引数を省略するか、ファイル フィルター文字列の数より大きい数値を指定すると、最初のファイル フィルター文字列が既定値となります。 |
Title | ダイアログ ボックスのタイトルを指定します。 この引数を省略すると “ファイルを開く” になります。 |
ButtonText | Macintosh でのみ指定できます。 |
MultiSelect | True を指定すると、複数のファイルを選択できます。 False を指定すると、1 つのファイルしか選択できません。 既定値は False です。 |
戻り値はバリアント型です。
選択したファイルのフルパスが文字列で戻ります。
ファイルを選択しなかった場合は、Falseが戻ります。
使用例1
[ファイルを開く] ダイアログ ボックスを表示し、メッセージボックスに選択したファイルを表示します。ダイアログには、カレントフォルダが初期表示されます。
Sub FileOpenDialog()
Dim fileName As Variant
fileName = Application.GetOpenFilename(“すべてのファイル,*.*”, , “サンプル”)
If fileName = False Then
MsgBox “キャンセルしました”
Else
MsgBox fileName & ” が選択されました”
End If
End Sub
実行すると、ダイアログボックスが表示されます。
ファイルを選択し、「開く」ボタンをクリックすると、メッセージボックスにファイルのフルパスが表示されます。
使用例2
ダイアログの初期表示フォルダを指定したい場合は、ChDirを実行します。
Sub FileOpenDialog()
Dim fileName As Variant
ChDir “C:\Temp”
fileName = Application.GetOpenFilename(“すべてのファイル,*.*”, , “サンプル”)
If fileName = False Then
MsgBox “キャンセルしました”
Else
MsgBox fileName & ” が選択されました”
End If
End Sub
実行すると、ダイアログボックスが表示されます。初期表示フォルダは、「C:\Temp」になっています。
使用例3
FileFilterに複数のファイル フィルター文字列を指定します。
Sub FileOpenDialog()
Dim fileName As Variant
ChDir “C:\Temp”
fileName = Application.GetOpenFilename(“Excelブック, *.xls; *.xlsx; *.xlsm, テキストファイル, *.txt”, , “サンプル”))
If fileName = False Then
MsgBox “キャンセルしました”
Else
MsgBox fileName & ” が選択されました”
End If
End Sub
実行すると、Excelファイルとテキストファイルが選択できるようになっています。
まとめ
Application.GetOpenFilenameメソッドは、ユーザーが選択したファイルのフルパスを返します。
取得したパスをもとに、サンプルではメッセージボックスを表示しましたが、ファイルを開いたり、ファイル操作をしたりと、いろいろな使い方ができます。
以上、ファイルを開くダイアログを表示するプログラムでした。