記事検索

検索ワードを入力してください。
Sky Tech Blog
【VBA】Excelで​別ブックの​値を​参照する​方​法

【VBA】Excelで​別ブックの​値を​参照する​方​法

Excel VBAを使用して別のブックからデータを参照する方法について説明しています。数式を使用する方法とWorkbooks.Openメソッドを使用する方法の2つの方法を解説します。

はじめに

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メソッドを使用する方法をご紹介しました。
どちらの方法も一長一短があり、用途に応じて使い分けることが重要です。
自分に合った方法を選んで、作業をもっとスムーズに進めましょう!


XFacebookLINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム