プロが教える店舗&オフィスのセキュリティ対策術

二つのブックがあり、一つには参照するデータが入っています。それをもう一つのブックから
=INDIRECT(ADDRESS(5+C4,13,,,"[A.xls]"&$A2))
と参照しています。

このとき、A.xlsを開いていれば正しく値を参照するのですが、A.xlsを閉じた状態だと#REF!になり値を参照してくれません。
A.xlsを開かずに、自動的に外部ブックの値を参照することはできないのでしょうか。

よろしくお願いいたします。

A 回答 (2件)

コンピュター外部保存ファイルのデータは、一旦内部メモリに読み込まないと、絶対内容は読めません。


ーーー
今のところ関数式参照では質問のようなことは出来ません。
(また読み込む(Open)ことと、画面に表示する(Visible=True)こととは別なので、内部メモリに読み込むことはするが、裏で処理し、という時代が来るかもしれませんが。)
ーーー
ハイパーリンクを挿入したときは、元のセルをクリックしたときには指定したブック等は開いてしまいます。
ーー
リンク張り付けの場合は、Aブックと連動する用意ができていて、更新するを選択すると、Aブックの指定箇所を見に行って、リンクしたセルを更新しますが、Aブックを開くタスクは起動しないようです。しかし内部メモリにAブックを読み込んでいるでしょう。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

参考までにですが、以下のように「データを読み込む」ボタンを作って押してもらうようにして解決しました。

Sub open_src()
'基本設定シートに開くデータファイルまでのパスを格納
filepath = Sheets("基本設定").Cells(22, 1)

  'まだ開いていない場合のみ開く
On Error Resume Next
strFileName = Workbooks(filepath & "A.xls").Name
On Error GoTo 0
If strFileName = "" Then
Dim actbook As Workbook
Set actbook = Application.ActiveWorkbook

Workbooks.Open Filename:= _
filepath & "A.xls"
  'もとのファイルをアクティブにする
actbook.Activate
End If

End Sub

お礼日時:2008/04/02 09:25

こちらに詳しく載っています。


リンクする形になるようです。
http://www.excel-jiten.net/formula/ref_other_boo …

この回答への補足

パスが絶対参照でなければいけないのかなと
=INDIRECT(ADDRESS(5+C4,13,,,PASS&"[行事給食日数報告.xls]"&$A2))

PASSには
=LEFT(CELL("filename"),SEARCH("[",CELL("filename"))-1)
がはいっており
結果
=ADDRESS(5+C4,13,,,PASS&"[行事給食日数報告.xls]"&$A2)

'C:\Documents and Settings\USER\デスクトップ\[行事給食日数報告.xls]4'!$M$6
(参照するブックはデスクトップにあります。)
になっているのは確認できているのですが・・・

やはり、参照元ブックを閉じると#REF!になってしまうようです。
たぶん、外部リンクの設定に原因が有ると思うのですが、ご存じではないでしょうか。

補足日時:2008/03/31 10:19
    • good
    • 3
この回答へのお礼

ご回答ありがとうございました。

なんとか別法にて解決しました。

お礼日時:2008/04/02 09:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A