はじめに
Excelを使用していると、別ブックからデータを取得したい場面が多々あります。
そこで、別ブックから値を取得する方法として、以下2つの方法をご紹介します。
これらの方法を活用することで、複数のExcelファイル間で効率的にデータを連携させることができます。
① 数式を使用した方法
別ブックを参照する方法として、数式を使って参照する方法があります。
セルに「=数式」と入力することで参照が可能です。
以下コード例となります。
Sub GetDataFromAnotherWorkbook()
With ActiveSheet
.Range("A1").Formula = "='C:\Users\User\Desktop\TEST\ [TEST.xlsx]Sheet1'!$A$1" '数式を使って、別ブックを参照
.Range("A1").Value = Range("A1").Value ’数式を値に変換 ※データ更新有無を聞かれるのを防ぐため
Debug.Print .Range("A1").Value '別ブックの値を取得
End With
End Sub
数式を使用することで、ファイルを開かずにデータを参照できるため処理速度が速く、メンテナンスが容易です。
しかし、複雑なデータ処理には向かず柔軟性に欠ける場合があります。
② Workbooks.Openを使う方法
別ブックを参照する方法として、Workbooks.Openメソッドを使って参照する方法があります。数式を使用した方法より柔軟に処理を行うことができます。
以下コード例となります。
Sub GetDataFromAnotherWorkbook()
Dim ReadBookPath As String:ReadBookPath=”C:\Users\User\Desktop\TEST\TEST.xlsx”
Dim Wb As Workbook:Set Wb = Workbooks.Open(ReadBookPath, , True) 'Workbooks.Openを使って、別ブックを開く
Debug.Print Wb.Worksheets("Sheet1").Range("A1").Value '別ブックの値を取得
Wb.Close
End Sub
Workbooks.Openメソッドは、Excelファイルを開く際に多くのオプションを指定できるため、数式を使用する方法ではできない複雑な処理が可能です。
例えば、読み取り専用で開く、パスワードを指定して開く、更新リンクの設定など多岐にわたる設定が行えます。
しかし、ファイルを開くため処理速度が遅くなることがあります。
さいごに
Excelで他ブックからデータを取得する方法として、数式を使用する方法とWorkbooks.Openメソッドを使用する方法をご紹介しました。
どちらの方法も一長一短があり、用途に応じて使い分けることが重要です。
自分に合った方法を選んで、作業をもっとスムーズに進めましょう!