【VBA】複数のエクセルファイルを読み込んでファイルパスを返すコード

ファイル選択ダイアログを表示してエクセルファイルを選択して読み込みます。

ファイルパスはcollection型で返されます。

例えば、豊島区様式01.xlsx、品川区様式01.xlsx、、、

とあって、そのC3セルに欲しい情報があるときなどに使います。

Function SelectExcelFiles() As Variant
    Dim filePaths As Variant
    
    ' ファイルの複数選択ダイアログを表示し、ファイルパスを取得
    filePaths = Application.GetOpenFilename("Excelファイル (*.xls; *.xlsx), *.xls; *.xlsx", MultiSelect:=True)
    
    ' ダイアログがキャンセルされた場合は処理を終了
    If Not IsArray(filePaths) Then
        Exit Function
    Else
        SelectExcelFiles = filePaths
    End If
End Function

Sub Test()
    Dim wb As Workbook
    Dim filePaths As Variant
    Dim filePath As Variant
    
    ' ファイルの複数選択ダイアログを表示し、ファイルパスを取得
    filePaths = SelectExcelFiles

    If Not IsEmpty(filePaths) Then
        For Each filePath In filePaths
            ' 各エクセルファイルを開く
            Set wb = Workbooks.Open(filePath)
            
            ' 好きな処理
            MsgBox wb.Worksheets(1).Range("A1").Value
            
            ' ワークブックを閉じる
            wb.Close False
        Next filePath
    End If
End Sub

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA