【VBA】ダイアログで指定した1つ/複数のExcelファイルを開いて閉じる

ポイント

・ここでは「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
タイトルとURLをコピーしました