- ベストアンサー
外部ブック参照が#REF!になってしまう
二つのブックがあり、一つには参照するデータが入っています。それをもう一つのブックから =INDIRECT(ADDRESS(5+C4,13,,,"[A.xls]"&$A2)) と参照しています。 このとき、A.xlsを開いていれば正しく値を参照するのですが、A.xlsを閉じた状態だと#REF!になり値を参照してくれません。 A.xlsを開かずに、自動的に外部ブックの値を参照することはできないのでしょうか。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
コンピュター外部保存ファイルのデータは、一旦内部メモリに読み込まないと、絶対内容は読めません。 ーーー 今のところ関数式参照では質問のようなことは出来ません。 (また読み込む(Open)ことと、画面に表示する(Visible=True)こととは別なので、内部メモリに読み込むことはするが、裏で処理し、という時代が来るかもしれませんが。) ーーー ハイパーリンクを挿入したときは、元のセルをクリックしたときには指定したブック等は開いてしまいます。 ーー リンク張り付けの場合は、Aブックと連動する用意ができていて、更新するを選択すると、Aブックの指定箇所を見に行って、リンクしたセルを更新しますが、Aブックを開くタスクは起動しないようです。しかし内部メモリにAブックを読み込んでいるでしょう。
その他の回答 (1)
- mayomayo20
- ベストアンサー率48% (49/102)
こちらに詳しく載っています。 リンクする形になるようです。 http://www.excel-jiten.net/formula/ref_other_books.html
お礼
ご回答ありがとうございました。 なんとか別法にて解決しました。
補足
パスが絶対参照でなければいけないのかなと =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!になってしまうようです。 たぶん、外部リンクの設定に原因が有ると思うのですが、ご存じではないでしょうか。
お礼
ご回答ありがとうございました。 参考までにですが、以下のように「データを読み込む」ボタンを作って押してもらうようにして解決しました。 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