【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】

INDIRECTの関数を使って,他のエクセルファイル(以下Bファイル)を参照すると,
Bファイルを開いているときは正しく数値を表示しますが,
Bファイルを閉じるとエラー表示になります。

回避する方法は無いでしょうか?

(元ファイルと,Bファイルの両方から参照先に関する情報を得ているので,INDIRECT関数は,必須かと思っています)

参考までに3種類試したソースを示します。
できれば3は避けたいと考えています。
ご意見よろしくお願いします。


1:=INDIRECT("'[★★★Bファイル.xlsx]"&$A27&"'!o$7")
エラー表示になります。

2:=INDIRECT("'"&MID(CELL("filename",$A$1),1,FIND("[",CELL("filename",$A$1))-1)&"[★★★Bファイル.xlsx]"&$A26&"'!o$7")
エラー表示になります。(パスまで含めて参照)

3:='C:\Users\test\[★★★Bファイル.xlsx]213旅費'!O$7
正常(常に数値を表示します)

A 回答 (2件)

>回避する方法は無いでしょうか?


INDIRECT関数を使っている限り、回避できません。

外部データの取り込み機能で一時的にデータをすべて持ってくれば、同一ブック内になるので参照できます。
(閉じるときに取り込んだデータを破棄できます)
手間が状況に左右されるので、マクロで3のようにしてしまう方が簡単かもしれません。
    • good
    • 2
この回答へのお礼

回答ありがとうございます。
INDIRECT関数を使っている限り無理ということがわかっただけでも,めっけもんです。
3の方法で実施します。

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

お礼日時:2011/12/14 11:01

>回避する方法は無いでしょうか?


 ⇒ヘルプにも記載している通り、INDIRECT関数を利用での他ブック参照は
  参照先ブックが閉じられている限り、不可能です、
  唯一、3番の方法が可能になっています。

>元ファイルと,Bファイルの両方から参照先に関する情報を得ている・・
 ⇒ご質問者の問題点が不明、この辺りについてもう少し具体例などを補足しては
  如何でしょうか。    
    • good
    • 2
この回答へのお礼

回答ありがとうございます。
INDIRECT関数を使っている限り無理ということがわかっただけでも,めっけもんです。

コピペで簡単に作成するために,
元ファイルの中に,Bファイルのシート名称を用意してあるということです。
(甚だ簡単な説明ですが・・・)

3の方法で実施します。

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

お礼日時:2011/12/14 11:09

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

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


おすすめ情報