【EXCEL VBA】ブックを開かずに別のEXCELからデータを取得する ExecuteExcel4Macroメソッド

スポンサーリンク

はじめに

VBAで別のEXCELファイルからデータを取得する場合、ブックを開かずに中のデータを取得することが出来ます。

スポンサーリンク

ExecuteExcel4Macroメソッド

構文

ExcuteExcelMacro(“‘ブックのパス[ブックの名前]シート名’!R1C1形式のアドレス”)

上記のように、引数に所定の形式で取得したいアドレスを指定します。

R1C1形式で指定するので注意してください。

サンプルとして次の2つのEXCELを用意します。

まずは、VBAを記述するEXCELの①「ひらちんの部屋_VBA.xlsm」

VBAを記述するEXCEL(”ここに入力”シートにデータを入力する)

取得したいデータを保持しているEXCEL②「開かないブック.xlsx」

このEXCELの「マスタ」シートのA1:B3のデータを、①のEXCELに入力します。

Cドライブ直下に置いてあるとします。「C:\開かないブック.xlsx 」

コードは次のようにしてみました。

②開かないブック.xlsxから1セルずつデータを取得して転記します。

Sub sample()

    Dim data As String, i As Long, j As Long
    For i = 1 To 3
        For j = 1 To 2
            'データを取得する
            data = ExecuteExcel4Macro("'C:\[開かないブック.xlsx]マスタ'!" & "R" & i & "C" & j)
            '取得したデータを入力する
            Cells(i, j) = data 
        Next
    Next
    
End Sub

②開かないブックのセルの指定が、R1C1形式なところ以外は特に難しいところは無いと思います。

では動作を動画で確認してみます。

②開かないブック.xlsx は閉じています。

出来ましたね(^o^)

コメント

タイトルとURLをコピーしました