当サイトはアフィリエイト広告を利用しています。
今回は、Excelで別ファイルを参照する方法をご紹介します。
この方法を知っていると、別ファイルのデータを引っ張ることや、VLOOKUP関数で別ファイルを対象に検索することなどができて便利です。
参照元ファイルを開かずにデータを自動更新する方法や、関数内で別ファイルを参照するとエラーになるときの対処法などもあわせてご紹介しますね。
Excelで別ファイルを参照する方法
Excelで別ファイルを参照するには、外部参照を使います。外部参照を使うと、参照元のファイルの場所や名前が変わらない限り、参照元ファイルを開かなくてもデータが反映されます。
外部参照を使って別ファイルを参照するには、まず参照元ファイルと参照先ファイルの両方を開きます。
参照先セルに「=」と入力します。
参照元セルをクリックして[Enter]を押します。
これで別ファイルが参照されます。
参照元ファイルの場所を示すパスは、参照元ファイルを開いている状態だと、[ブック名]シート名!セル範囲
のように「相対パス」になります。
反対に参照元ファイルを閉じている状態だと、'フォルダパス[ブック名]'!セル範囲
のように「絶対パス」になります。
B2以下のセルも参照したい場合は、数式の$B$2
の部分を$B2
に変更してからオートフィルすればOKです。
Excelで参照元ファイルを開かずにデータを自動更新する方法
参照元データを変更し、そのファイルを開かずに参照先ファイルを開くと、以下のようなメッセージが表示されます。参照元データの変更を反映させるには、「更新する」を押す必要があります。
これを、メッセージを表示させずに自動更新されるようにするには、まず「データ」タブ⇒「リンクの編集」をクリックします。
「リンクの編集」が表示されたら、「起動時の確認」をクリックします。
「起動時の確認」が表示されたら、「メッセージを表示しないで、リンクの自動更新を行う」を選択し、「OK」をクリックします。これで今後はメッセージが表示されずに自動更新されます。
Excel関数内で別ファイルを参照するとエラーになるときの対処法
Excel関数内で別ファイルを参照すると、エラーになってしまうことがあります。
これは、参照元ファイルが開いていないからです。関数の中には参照元ファイルが開いていないとエラーになるものがあるのです。
参照元ファイルを開いていないとエラーになる関数には以下のようなものがあります。
- COUNTIF関数
- DCOUNTA関数
- DSUM関数
- INDIRECT関数
- SUMIF関数
解決策としては参照元ファイルを開くのが手っ取り早いですが、手動で開くのが面倒な場合は、マクロを使って参照先ファイルを開くと同時に参照元ファイルも自動で開くようにするといいでしょう。
マクロの使い方がわからない方は、先に以下の記事をご覧ください。
そのためには、参照先ファイルでVBEを起動し、「ThisWorkbook」をダブルクリックして、表示されたコードウィンドウに以下のコードを貼り付けます。
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Workbooks.Open "G:\マイドライブ\サンプル\Book3.xlsx"
ActiveWindow.Visible = False
Application.ScreenUpdating = True
End Sub
これは、参照先ファイルを開いたとき、指定したファイルをバックグラウンド(非表示)で開くマクロです。
G:\マイドライブ\サンプル\Book3.xlsx
の部分には、同時に開きたいファイルのパスを入力してください。同時に開きたいファイルが複数ある場合は、ファイルの数だけWorkbooks.Open "参照元ファイルのパス"
を追加すればOKです。
これで参照先ファイルを開くと同時に参照元ファイルも開くため、エラーにならなくなります。
まとめ
今回は、Excelで別ファイルを参照する方法をご紹介しました。
別ファイルを参照したいときは、外部参照を使いましょう。外部参照を使うと、参照元のファイルの場所や名前が変わらない限り、参照元ファイルを開かなくてもデータが反映されますよ。
同じファイルの別シートを参照したい場合は以下の記事を参考にしてみてください。