【EXCEL VBA】ファイル選択ダイアログを表示したい

ファイル選択ダイアログの表示方法について紹介します。ファイル選択ダイアログとは、以下のようなダイヤログです。

Application.GetOpenFilenameで解決する

非常に簡単です。Application.GetOpenFilenameをコールするだけとなります。戻り値には選択したファイルのフルパス名が設定されます。キャンセルボタンが押された場合は、Falseが戻り値に設定されます。

複数ファイルを選択したい場合は、第5引数にTrueを設定してください。注意点としては、戻り値は配列になる点です。詳細はサンプルプログラムを確認してください。

拡張子で絞り込みたい、最初に表示されるフォルダを変更したい場合については、以下記事を参考にしてみてください。もう少し詳しく書いています。

サンプルプログラム(コピペでOK)

Option Explicit

Sub sample()
    Dim fName As Variant
    fName = Application.GetOpenFilename     ' 戻り値はフルパス名です
    Debug.Print fName                       ' C:\Windows\winhlp32.exe
    
    fName = Application.GetOpenFilename(, , , , True)   ' 複数ファイル選択する場合は、第5引数にTrueを設定
                                                        ' 戻り値は配列になるので注意
    Dim i As Long
    i = UBound(fName)
    For i = LBound(fName) To UBound(fName)
        Debug.Print i & ": " & fName(i)
    Next
    
    fName = Application.GetOpenFilename     ' キャンセルの戻り値はFalseです
    Debug.Print fName                       ' False

End Sub