• ベストアンサー

外部ブック参照が#REF!になってしまう

二つのブックがあり、一つには参照するデータが入っています。それをもう一つのブックから =INDIRECT(ADDRESS(5+C4,13,,,"[A.xls]"&$A2)) と参照しています。 このとき、A.xlsを開いていれば正しく値を参照するのですが、A.xlsを閉じた状態だと#REF!になり値を参照してくれません。 A.xlsを開かずに、自動的に外部ブックの値を参照することはできないのでしょうか。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

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

chem_taro
質問者

お礼

ご回答ありがとうございました。 参考までにですが、以下のように「データを読み込む」ボタンを作って押してもらうようにして解決しました。 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

その他の回答 (1)

回答No.1

こちらに詳しく載っています。 リンクする形になるようです。 http://www.excel-jiten.net/formula/ref_other_books.html

chem_taro
質問者

お礼

ご回答ありがとうございました。 なんとか別法にて解決しました。

chem_taro
質問者

補足

パスが絶対参照でなければいけないのかなと =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!になってしまうようです。 たぶん、外部リンクの設定に原因が有ると思うのですが、ご存じではないでしょうか。

関連するQ&A

  • openOffice Calcで外部ファイルの参照

    MicrosoftOfficeからOpenOfficeへ移行しようと考え、色々とテストしているのですが、どうしても分からない箇所があるので質問します。 例えば、エクセルで、Book1.xlsとBook2.xlsがあって、Book2のA1をBook1に「=[Book1]Sheet1!$A$1」というように参照を設定しているとします。Book1.xlsとBook2.xlsの両方を開いた状態で、Book1のA1の値を変更すると、Book2のA1も自動的に変わりますが、OpenOffice Calcでは、いったん参照先を保存して、参照元のファイルで「編集→リンク」を開いて「更新」を押さなければ変わらないように思います。これを自動で更新する方法はないのでしょうか? 「リンク」の画面の下には「更新:自動、手動」というラジオボタンがあるのですが、使えません。これを「自動」に設定できれば可能だと思うのですが。 よろしくお願いします。

  • エクセル 関数の外部参照について

    お世話になります。 エクセルに、 =IF(OR($A7="",C$6="",C$3=""),"",OFFSET([○○.xls]△△!$A$1,MATCH($A7,[○○.xls]△△!$A:$A,0)-1,MATCH(C$4,[○○.xls]△△!$4:$4,0)-1)*□□!C7) このような外部参照を含む計算式を組みました。 しかし、参照先のブック(○○.xls)を開いていないと エラーになってしまいます。 参照先のブック(○○.xls)を開かなくても計算させる方法はありませんか? よろしくお願いします。

  • 他のブックファイルのセルの参照が上手く行きません

    こんにちはよろしくお願いいたします。 エクセルのブックファイル(Book1.xlsx)に,他のブックファイル(Book2.xls)のセルの値を参照しようと思い”=”を入力し参照するブックファイルのセルをクリックし,「 =[Book2]Sheet1!$A$1 」のような参照を行いました。こうしてきちんと表示されました。 しかし,この参照の式を「 =[Book3]Sheet1!$A$1 」のように,他のブックファイル(Book3.xls)のセルに変更したところ,参照できなくなりました。ブックファイル(Book1.xlsx)には,「 =[Book3]Sheet1!$A$1 」という式そのものが表示された状態となっています。式は,キーボードを使って変更しました。もちろん,(Book3.xls)は,(Book2.xls)と同様のシート形式をもち,データも入力されています。 このような状態になると,先に挙げたように,”=”を入力して参照するブックファイル(Book3.xls)のセルをクリックしても,ブックファイル(Book1.xlsx)には,「 =[Book3]Sheet1!$A$1 」という式そのものが表示された状態となったままで,(Book3.xls)のデータは表示されません。 (Book2.xls)と(Book3.xls)のセルのデータは,文字列です。 気になるのは,(Book1.xlsx)はoffice2010で作成されたファイルであること,(Book2.xls)と(Book3.xls)は,互換モードと表示されるファイルであること,また表示されているファイルを見ると,フルパスで参照している点です。「 ='C:\aaa\bbb\・・・・・[Book3]Sheet1'!$A$1 」という参照式になっています。3つのファイルはすべて同一ファイルに入っています。 何が,参照を阻んでいるのでしょうか?教えてください。よろしくお願いします。

  • 他ブックのセル参照するのに名前をセルで指定して参照させたい。

    他ブックのセル参照するのに名前をセルで指定して参照させたい。 題名が適当でないかもしれませんが、よろしくお願いします。 オフィス2000もしくは2002です。 200604.xls、200605.xlsという日付を基にした名称の規則的なブックがあります。 ファイル自体はネットワークの共通ドライブにあります。 それぞれsheet1に同様の形式で値のデータ(文字)が入っています。 その中のA1、B1、C1~・・・の値を 別ブック(仮にtest.xls)のA1に2006、A2に5と入力させることによって test.xlsの3行目に200605.xlsのA1、B1、C1~・・・の値を表示させたいです。 ブック名 test.xls    A列  B列  C列 ・・・・・・ 1行 2006 2行  5 3行 200605.xlsのA1、B1、C1~の値を表示させたいです。 4行 フォルダー名\[200605.xls]sheet1'!A1、次B1、次C1、と都度埋め込んでいけば値自体は出るのですが、 ブック名が手軽に変えられなくて困っています。 test.xlsのセルに埋め込んだ ='フォルダー名\[200605.xls]sheet1'!A1の [カッコ内]の文字をA1,A2セルに入れた値で参照させたいのですが、、、。 (A2は5ですが、参照したいのは2006の05というのも少々ミソです) 結果が同じなら手段はそんなには問いません。 よろしくお願いします。

  • 参照先をセルに入力して、他のブックのセルを参照する方法

    Excelで、他のブックのセルを参照したいです。 たとえば、あるExcel(test.xls)上から、別のフォルダにある複数のブック C:\AAA.xls D:\BBB.xls の値を参照する場合ですが(AAA.xlsとBBB.xlsは、値の内容は違うが、同じシート名の同じセルに値が入っている)、 test.xlsのSheet1のA1に「C:\」、A2に「AAA.xls」を入力すると、test.xlsのSheet2にはAAA.xlsの値を表示し、 test.xlsのSheet1のA1に「D:\」、A2に「BBB.xls」を入力すると、test.xlsのSheet2にはBBB.xlsの値を表示するような方法です。 参照先が固定であれば、='C:\[AAA.xls]Sheet名'!D5・・・のような指定ができるのですが、参照するファイル名とパス名が都度変わるので、入力したセルの値で参照先を変えたいのです。 ちなみに、INDIRECTを使うやり方も考えましたが、参照先のブックを開いていないと値が表示されないようなので、却下されました。 (参照先のブックは開かなくても値を参照させたいです) どなたかご存知の方がいらっしゃったら、教えてください。 よろしくお願いします。

  • 【Excel-VBA】アクティブセルが参照しているブックを開くには?

    いろいろ検索したのですが、見つからないので質問させていただきます。 対象のセルが他ブックのセルを参照しているとき、そのブックが開かれていない場合、正しい値にはなりません。 (例:A1に =[Book2.xls]Sheet1!$A$3 が入力されている) そこで、そのセルが参照しているブックをVBAで自動的に開く方法を考えています。 つまり、例で言えば、Book2.xlsを開きたいのです。 文字列関数を使ってひとつひとつの文字を取得し、ファイル名を得て開く方法しかないのでしょうか? 何かいい方法があれば教えてください。 よろしくお願いします。

  • エクセルでグラフの元データの相対参照ってできますか?

    うまいタイトルが思いつかず、何のことやらわからないですよね。すみません。下記に具体的に書きます。 いま、A.xlsというブックがあるとします。その中には ”DATA”というデータが書かれているシートと、それをグラフ化した”GRAPH”という2つのシートがあります。 次に新ブックを開き、前記2つのシートを新ブックにコピーします。そしてこれをB.xlsとして保存します。 その後あらためてB.xlsを開くと「・・・自動リンクが設定されています・・・」とのコメントが出ます。まあこれはべつにいいのですが、先ほどコピーした”GRAPH”の元データが、 =SERIES(,'[A.xls]DATA'!$A$3:$A$5,'[A.xls]DATA'!$B$3:$B$5,1) と、A.xlsを参照しています。当然、B.xlsのシート”DATA”の値を変えてもグラフは変化しません。 「そのブックの中にあるシート”DATA”を参照せよ」というような相対参照ってできますか。

  • Excelで他のブックのセルを参照したいのですが

    コンボボックスにセットする値を、 VBAで他のブックを参照してセットしたいと思っています。 ブックAのシート1にコンボボックスを作り、 ブックBのシート1から取得しようと考えています。 ブックBのシート1には、あらかじめ「範囲A」の名前を定義して この範囲の値を参照するつもりです。 ただ同じフォルダ内にブックBを置いていれば参照できるのですが、 他のフォルダにブックBを置くと参照されません。 <同じフォルダにブックBを置いた場合>○参照できた ComboBox1.ListFillRange = "[ブックB.xls]シート1!範囲A" <他のフォルダにブックBを置いた場合>×参照されない ComboBox1.ListFillRange = "C:\[ブックB.xls]シート1!範囲A" 記述の仕方がおかしいのでしょうか? 宜しければご教授お願い致します。

  • Excelでの外部ファイル参照

    環境:windowsXPPro、Excel2000 初めまして。 Excelの外部ファイル参照で悩んでいることがあり解決方法を模索中です。 基礎値.xls、集計.xls というBookがネットワーク上のファイルサーバーにあるのですが 集計.xlsに基礎値.xlsの値を参照する式がセルに設定されています。 [=vlookup(a1,'\\server\[基礎値.xls]Sheet1'!$A$1:$B$50,2,false)] 2つのファイルが同じサーバーのフォルダーにある場合は問題ないのですが、 集計値.xlsを各ローカルPCに移動して使用したところ基礎値.xlsの参照先が [=vlookup(a1,'c:\job\[基礎値.xls]Sheet1'!$A$1:$B$50,2,false)] となってしまいサーバー上のファイルを参照してくれません。 VBAなどで細工すれば解決はすると思いますが、マクロ・VBAを使わないで運用しなくてはなりません。 ファイルを移動させても参照先フォルダーを固定させるよい方法はないでしょうか?

  • 異なるブックを結合した時のセル参照

    excel2003 異なるブックを結合した時に、セルの値を参照する方法を教えてください。 条件は、下記の通りです。 a.xlsのsheet1のA1セルのセル名称をnameとします。 b.xlsのsheet2のA1セルで=nameとします。 aとbのファイルを結合した時、a.xlsのsheet1のA1セルに何か文字列…(1)を入れた時、 sheet2のA1セルで(1)の文字が参照できる様にしたい。 同一ブック内で上記の内容実施時は、sheet2のA1セルでsheet1のA1セル参照可能ですが、 ブックを結合した時、excelの仕様なのか、 #REF!と表示されてしまいます。 最初から一緒になったファイルで作成すれば問題ないのですが、 aのファイルは共用なので、使用する時に結合する構成としているのです。 異なるブックを結合して上記の対応が可能になる方法はないものかどうか、 何か、他の代案はないかアイデアいただきたく。

専門家に質問してみよう