![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
「ファイルを選択するダイアログ」を
表示して…
![ファイルを選択するダイアログ](https://excel-vba.work/wp-content/uploads/2021/12/vba_file_daialog_001.png)
![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
選択されたファイルパスを
取得できます!
![選択されたファイルパスを取得](https://excel-vba.work/wp-content/uploads/2021/12/vba_file_daialog_002.png)
![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
ダイアログで選択できるファイルを
制限することもできます!
※Excelファイルのみ選択できるようにする等。
![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
この記事では
・Excelファイルのみ選択可能
・CSVファイルのみ選択可能
・全てのファイルを選択可能
なダイアログを表示する方法を記載します!
Excelファイルのみ選択可能なダイアログ
ここでは例として
・*.xlsx (現在のエクセルの形式)
・*.xlsm(現在のエクセルマクロの形式)
・*.xls (古いのエクセルの形式)
のExcelファイルのみ選択できるダイアログを表示させます。
Option Explicit
Sub sample()
Dim filePath As Variant
'最初に表示されるフォルダパスを指定するためにカレントディレクトリを移動
ChDir "C:\Users\user\Desktop\temp"
'ダイアログを表示し結果を取得
filePath = Application.GetOpenFilename(FileFilter:="Excelブック(*.xlsx;*.xlsm;*.xls;),")
'結果を確認
If filePath = False Then
MsgBox "キャンセルされました。"
'処理終了
Exit Sub
Else
MsgBox "選択されたファイルパスは" & vbLf & filePath & vbLf & "です。"
End If
End Sub
上記を実行すると、
・Excelファイルのみ選択できるダイアログを表示されて
・選択されたファイルパスを取得できる
ことを確認できます。
![実行結果(Excelファイルのみ選択できるダイアログの表示)](https://excel-vba.work/wp-content/uploads/2021/12/vba_file_daialog_001.png)
![実行結果(現在のエクセルの形式のファイル名を取得)](https://excel-vba.work/wp-content/uploads/2021/12/vba_file_daialog_002.png)
![実行結果(現在のエクセルマクロの形式のファイル名を取得)](https://excel-vba.work/wp-content/uploads/2021/12/vba_file_daialog_003.png)
![実行結果(古いのエクセル形式のファイル名を取得)](https://excel-vba.work/wp-content/uploads/2021/12/vba_file_daialog_004.png)
CSVファイルのみ選択可能なダイアログ
CSVファイルのみ選択できるダイアログを表示させます。
Option Explicit
Sub sample()
Dim filePath As Variant
'最初に表示されるフォルダパスを指定するためにカレントディレクトリを移動
ChDir "C:\Users\user\Desktop\temp"
'ダイアログを表示し結果を取得
filePath = Application.GetOpenFilename(FileFilter:="csvファイル(*.csv;),")
'結果を確認
If filePath = False Then
MsgBox "キャンセルされました。"
'処理終了
Exit Sub
Else
MsgBox "選択されたファイルパスは" & vbLf & filePath & vbLf & "です。"
End If
End Sub
上記を実行すると、
・CSVファイルのみ選択できるダイアログを表示されて
・選択されたファイルパスを取得できる
ことを確認できます。
![実行結果(CSVファイルのみ選択できるダイアログの表示)](https://excel-vba.work/wp-content/uploads/2021/12/vba_file_daialog_005.png)
![実行結果(CSVファイルのファイル名を取得)](https://excel-vba.work/wp-content/uploads/2021/12/vba_file_daialog_006.png)
全てのファイルを選択可能なダイアログ
全てのファイルを選択できるダイアログを表示させます。
Option Explicit
Sub sample()
Dim filePath As Variant
'最初に表示されるフォルダパスを指定するためにカレントディレクトリを移動
ChDir "C:\Users\user\Desktop\temp"
'ダイアログを表示し結果を取得
filePath = Application.GetOpenFilename()
'結果を確認
If filePath = False Then
MsgBox "キャンセルされました。"
'処理終了
Exit Sub
Else
MsgBox "選択されたファイルパスは" & vbLf & filePath & vbLf & "です。"
End If
End Sub
上記を実行すると、
・全てのファイルを選択できるダイアログを表示されて
・選択されたファイルパスを取得できる
ことを確認できます。
![実行結果(全てのファイルを選択できるダイアログの表示)](https://excel-vba.work/wp-content/uploads/2021/12/vba_file_daialog_007.png)
![実行結果(CSVのファイル名を取得)](https://excel-vba.work/wp-content/uploads/2021/12/vba_file_daialog_008.png)
参考①
フォルダを選択するダイアログを表示することもできます。
詳細は以下の記事をご確認ください。
参考②
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●ChDirステートメント
●「Applicationオブジェクト」の「GetOpenFilename」メソッド
●Exitステートメント