ポイント
・ここでは「Application.GetOpenFilename
」を使用
※「Application.FileDialog
」でも実現可能
・ダイアログで選択されたファイルを格納する変数は、Variant型にする
・複数ファイル選択のダイアログの場合、キャンセルボタン押下有無の判断は
IsArray関数で行う
サンプルプログラム
Sub fileSelectDialogSample()
Dim filePath As Variant
'ダイアログで初期表示したいフォルダへ移動
ChDir "C:\Users\user\Desktop\output"
'1つのExcelファイルのみを選択可能なダイアログを表示
filePath = Application.GetOpenFilename _
(FileFilter:="Microsoft Excelブック,*.xls?")
'選択したファイルを開いて閉じる
If filePath <> False Then
Workbooks.Open filePath
ActiveWorkbook.Close
Else
MsgBox "キャンセルされました"
Exit Sub
End If
'複数のExcelファイルを選択可能なダイアログを表示
Dim arrayFilePath As Variant
arrayFilePath = Application.GetOpenFilename _
(FileFilter:="Microsoft Excelブック,*.xls?", MultiSelect:=True)
'選択した全てのファイルを開いて閉じる
If IsArray(arrayFilePath) Then
For Each filePath In arrayFilePath
Workbooks.Open filePath
ActiveWorkbook.Close
Next
Else
MsgBox "キャンセルされました"
Exit Sub
End If
End Sub