• ベストアンサー

エクセルでデータのリンク元が所在不明の場合

エクセル2010です。 ABC.xlsx のあるセルは、VLOOKUP式で、XYZ.xlsのSheet1のA1:B26の表を参照しています。 ところが、リンク元であるXYZ.xlsの所在が不明です。 このような場合、ABC.xlsxが保持しているリンクの最終更新時のA1:B26の表データを取り出すにはどのようにすればよいでしょうか?

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

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.7

#5、6、cjです。お礼欄へのレスです。 Workbooks.Open FileName は試すまでもなく、 やはりファイルをロストしているということのようですね。 # 余計な話をしてしまったみたいですみません。 ブックを開いて直後、[リンクの編集]→[更新する]と辿って ”リンクの編集”ダイアログを表示させれば、、 「エラー ソースが見つかりません」と状態を示唆して くれていることと思います。 リンクを更新しなければ(できないですけど)、 最後に更新→保存した時のキャッシュがABC.xlsxに保持されています。 ABC.xlsxが開いている間は キャッシュされたリンク元の配列データを参照可能です。 他のセルでも、他のシートでも、他のブックでも、 参照範囲を拡張することは不可能ですが、矩形範囲まるごと捉えられます。 例えば、適当なブック、シート、セル、にて、 2*26のセル範囲を選択してから ='リンク元パス\[XYZ.xls]Sheet1'!$A$1:$B$26 と左上セルに入力してCtrl+Shift+Enterで確定すれば、 表(キャッシュされたリンク元の配列データ)全体を確かめることもできます。 確定時に”値の更新 XYZ.xls”というファイル指定を求めるダイアログが 表示されますが、構わずキャンセルすることで確定します。 > このような場合、ABC.xlsxが保持しているリンクの最終更新時のA1:B26の表データを取り出すにはどのようにすればよいでしょうか? もしかして、上記で答えになっていたりしますでしょうか? ABC.xlsxが閉じていれば無効ですから、新たに数式から参照しようとしても ファイルが見つからなくてエラーになります。 さて、疑問(不審)に思っていらっしゃる(?) リンクの最終更新時のデータであることは、確かなのかどうか、 ということですが、 [リンク元の変更]または[リンクの解除]をしない限り 保持されたデータは維持されます。 例えば、ABC.xlsx内でXYZ.xlsを参照する数式をすべて消去して上書きしても データは維持されているようです。 思いもよらずデータが改変されるようなことは あり得ないように思いますけれど、どうでしょう。 差し当たり、 現状維持、復旧、捜索、と3つの道筋があるように思いますが、 現状維持なら ”リンクの編集”ダイアログから[起動時の確認] →[〇メッセージを表示しないで自動更新を行わない]にチェックするとか 復旧については リンクからデータを拾う上記の方法 捜索については、必要ならですけれど 同一マシン内で移動しているものが名前変更のせいで見つからない場合に向けては そのブックを特定できるブック内のデータとしてのキーワードで検索してみるとか 既に消去されていると判断された時、必要ならサルベージを検討・依頼するとか 何処か外部のドライブに移動された前提だと、普通に人に訊いて回るとか、 こんな感じでしょうか。 長くなりました。それでも外していたらごめんなさい。 それでは、また。

emaxemax
質問者

お礼

cj_moverさん 完璧なお答え、ありがとうございます。 ほんとうにたすかりました。 これからもご指導ください。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (6)

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.6

#5、cjです。書き忘れました。 Sub Re8200869()   Dim vL, v   vL = ThisWorkbook.LinkSources(xlExcelLinks)   For Each v In vL     If v <> "" Then Debug.Print v   Next End Sub ThisWorkbookの部分は適切なWorkbookオブジェクトに替えてください。 リンク先を一覧してみるのも役に立つことがあるかも知れません。

emaxemax
質問者

お礼

何度もありがとうございます。 Sub Re8200869 ためして見ました。 数式に表示されるフルパスと同じ文字列が取得されました。 ABC.xlsxの他のセルに =フルパス[XYZ.xls]Sheet1!A1 のように入れてみたら値が表示されました。 ただ、それが正しいかどうか自信がありません。 このようなやり方で最後にリンクを更新したときのデータを取得できるのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.5

こんにちは。お邪魔します。 伝えられている現象だけで判断するなら、 ファイルは存在し、リンクも活きていて、 ただ、XYZ.xlsが存在するフォルダでXYZ.xlsファイルを表示できていない、 とかいう解釈も成り立つのかな?と思ったりしました。 VBAから、Workbooks.Open FileName で開けるかどうか 試してみてはどうでしょう。 XYZ.xls 存否を納得できる形でハッキリさせることはできるかと。 ほんの一例ですけれど、 「フォルダ内のファイルが正常に表示されない現象について」 http://support.microsoft.com/kb/418535/ja ここで説明されているような条件で、 今回の問題の現象も再現できるように思いましたので。 ただ、私の方では、試す環境がありませんし、 類似の現象についての情報にも疎いので自信はあまりありませんけれども。 ただ、上の条件とは違いますけれど、 ネットワーク上(外部ドライブ)の特定のフォルダを参照、または取り込んだ時に 勝手に隠しファイルになってしまう、というような経験は 2、3、憶えがあります。こちらも再現はできませんが。 とりあえず、ちょっと目先を変えるようなレスをしてみようと思ったまま書いてみました。

emaxemax
質問者

お礼

いつもありがとうございます。 > ファイルは存在し、リンクも活きていて、 「ファイルを開くとき、更新できないリンクがあります。」とメッセージがでますのでリンクは生きてないと思います。 参考URLはXPの問題のようですがこちらはWindows7です。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

回答No1です。 ファイルが探せないとのことでしたら「スタート」ボタンをクリックして左下隅に表示される「プログラムとファイルの検索」の窓にXYZ.とでも入力して検索してみてはいかがでしょう。どこにあるのかが分かると思いますが。

emaxemax
質問者

お礼

ありがとうございます。

emaxemax
質問者

補足

ありがとうございます。 もちろん質問する前に、数式にあるパスを見ましたし、そのパスから移動したかと思い検索もかけています。でもありませんでした。 名前を変えられたか消されたとしか思えません。 それで、ABC.xlsxが最後にリンクを更新したときのXYZ.xlsのSheet1のA1:B26の表データをABC.xlsx自体から取り出せないかと質問しました。 ABC.xlsx自体がデータを保持してないとリンクが切れているのにVLOOKUP式で答えがでるはずがないですから。 さきほどためしにABC.xlsxの他のセルに =数式にあるパスのSheet1のA1 と入れてみたら表示されました。 ただ、それが正しいかどうか自信がありません。

全文を見る
すると、全ての回答が全文表示されます。
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.3

ご質問の主旨は > リンク元であるXYZ.xlsの所在が不明 だから、あらかじめ開いておけない、と言うことで良いですか? とりあえず・・リンク元(XYZ.XLS)が開いていない状態で リンクを設定してあるセルにフォーカスを持たせると、 添付図のように「数式バーにリンク元のフルパス(所在)」を表示してくれますよ。 「いや、そうじゃないんだよ。」と言うときは、 回答側に何か誤解があるのかもしれません。 「現状を詳細に補足」くださいませ。

emaxemax
質問者

お礼

ありがとうございます。 その「数式バーに表示されたリンク元のフルパス(所在)」にないから所在不明なのです。 でもひょっとしてと試しに、別のセルに「=リンク元のフルパスとセル名」を入れセルを参照してみたら保持していると思われるデータが取り出せました。これは正しいデータなのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.2

ABC.xlsx のあるセルは、VLOOKUP式で、XYZ.xlsのSheet1のA1:B26の表を参照していて、リンク元であるXYZ.xlsの所在が不明の場合、ABC.xlsxが保持しているリンクの最新のA1:B26の表データを取り出すことはできませんが、データが見えているのであれば、そのままコピーして、形式を選択して、値のみ貼り付けてください。

emaxemax
質問者

お礼

有難うございます。

emaxemax
質問者

補足

形式を選択して、値のみ貼り付けてしまえば現在表示しているデータだけしかわからなくなります。 ほしいのは最新でなくともいいですから、最終更新時のA1:B26の表データです。

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

予めXYZ.xlsを立ち上げた後で、ABC.xlsの操作を開始すればよいでしょう。

emaxemax
質問者

お礼

有難うございます。

emaxemax
質問者

補足

所在が分からないのでたちあげられません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル)ファイルを検索し、セルを参照

    Aフォルダ内に入っている複数のファイルがあります。 abc01xyz.xls abc02xyz.xls abc03xyz.xls それぞれのブックのシートX、セルA1にはファイル名にある数字と同じ数字が入っています。 ■質問 abc02xyz.xlsのセルB2に、abc(abc02xyz.xlsのシートX、セルA1の値-1)xyz.xls のシートY、セルB2の値をコピーしたいのですが、どんな関数を使えばよいのでしょうか、いろいろ本をめくったり、インターネットで調べたのですが、なかなか参考になるケースがなくて困っておりまして、どなたか詳しい方、ご指南いただけませんでしょうか・・・。 INDIRECT関数を使うのでしょうか

  • エクセルのリンクについて? part2

    Sheet1表のA1セルに 別ファイル「勤怠実績表.xls」の(勤怠実績表6月分)表のK4のセルを参照する =[勤怠実績表.xls]勤怠実績表6月分!$J$4 式を埋め込みました。 別ファイル「勤怠実績表.xls」の(勤怠実績表7月分)表のK4のセルを参照する =[勤怠実績表.xls]勤怠実績表7月分!$J$4 という風に埋め込みました。 Sheet1表のA3に今度は8月と埋め込みたいのですが、いちいち手動でリンクを設定するのが手間です。 これを簡単にやる方法はないでしょうか? どなたかご回答お願いします。 またこういう事をするのは難しいなどご意見も頂ければと思います。 宜しくお願いいたします。

  • EXCELでの他ファイルリンクについて

    AというEXCELファイルからBというEXCELファイルへの外部リンクを張る場合、通常は =[B.xls]Sheet1!$A$1 というように記述するかと思います。 このBやSheet1という部分を、動的に表現するには どのようにしたらよいでしょうか? (どこかのセルの値を参照し、その名前に該当する ファイルないしシートへのリンクとしたいです) できるかどうかわかりませんが、 イメージ的には =[($B$2).xls]($C$3)1!$I$1 のようにしたいのです。 説明がわかりにくくてすいませんが 宜しくご教授ください。

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

    うまいタイトルが思いつかず、何のことやらわからないですよね。すみません。下記に具体的に書きます。 いま、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”を参照せよ」というような相対参照ってできますか。

  • エクセルのリンクについて?

    Sheet1表のA1セルに 6月表のA4のセルを参照する =6月'!$A$4 式を埋め込みました。 今度はSheet1表のA2に =7月'!$A$4 という風に埋め込みました。 Sheet1表のA3に今度は8月と埋め込みたいのですが、いちいち手動でリンクを設定するのが手間です。 これを簡単にやる方法はないでしょうか? どなたかご回答お願いします。

  • EXCELでのリンクデータに関して

    EXCELのシートにネットワーク上のEXCELファイルのデータをリンクしているのですが 最初に設定したのと同じ方法でリンクしても セル内の記述が異なりました 最初は \\○○\△△\[□□.xls]Sheet1'!$A$1 のようにネットワークのパスが入ったのですが、 今は [□□.xls]Sheet1'!$A$1 とネットワークのパスが入らなくなっています 手順はリンクを貼りたいファイルを立ち上げ、リンク先のファイルを開き、単純に設定したいセルに ”=”入力後、リンク先のセルをマウス指定しています 最初のようにネットワークパスをマウス指定で設定したいのですが ご指導宜しくお願いします ちなみに、セルに直接ネットワークパスを指定すると、応答無しになってとまってしまいます 使用環境に問題があると思うのですが・・・ あまり端末に負荷をかけずに設定したいのです・・・

  • リンクデータが更新できない (エクセル2010)

    Access2003から出力したエクセルシート(A)をもとに、そのエクセルを他のエクセルシート(B)の所定のセルとリンクさせようと思っていますが、うまくいきません。 (A)はデイリーで更新される生データですが、セル位置は常に固定され、その中身や数量が変動します。 (B)は10枚以上に及ぶ所定のフォーマットで、ビジュアル的な加工がなされています。 なお(B)の構造上、Accessからじかに(B)に放り込むことは不可能(だと思っています)なので、一旦(A)として生データをエクセルに変換してから、(A)→(B)にリンクというのが目論見です。 まず(B)の各セルを(A)の該当セルとリンクさせました。 次に(A)の数値をマニュアルで変更したら、リンクしている(B)も当然更新されました。 しかしAccessから(A)の最新データを落としてから(B)を開いてデータソースへのリンク「更新する」ボタンを押しても、(B)が反応せず「ファイルを読み込めません」というエラーメッセージが出ます。 当然(B)の中のデータも更新されていません。 Access2003から出力される(A)がxlsなので、(B)もxlsの拡張子で作りましたがダメです。 何か解決する方法はありませんでしょうか?

  • エクセルで、他のファイルをリンクする際、ファイル名だけをオートフィルできませんか?

    たとえば、EXCELで A1に、  〇1.xls  というファイルの  シート1   の   B5 セルを参照した場合          A                  B                C 1  [〇1.xls]シート1!$B$5     [〇2.xls]シート1!$B$5      [〇3.xls]シート1!$B$5 2  [〇2.xls]シート1!$B$5 3  [〇3.xls]シート1!$B$5 4  [〇4.xls]シート1!$B$5 A1セルからオートフィルしたら、A4セルまで、もしくはC3セルまで ファイル名だけ変わる、というようなことはできないでしょうか? ちなみに、EXCEL2003です。 詳しい方いましたら、どうぞよろしくお願いいたします。

  • エクセル「更新できないリンクが1つ以上あります・・

    エクセル2007で「更新できないリンクが1つ以上あります・・」と出ます。 A.xlsxでA.XLSXのシートのうち1枚をマクロを使って、値のみの貼り付けで新しいB.xlsxに保存します。 次に、B.xlsxの値をC.xlsxファイルへリンク貼り付けします。 A.xlsxとC.xlsxが同じフォルダにあるときは、上記のメッセージはでませんが、 A.xlsxを他のフォルダに移すと「更新できないリンクが1つ以上あります・・」と出ます。 C.xlsxからA.XLSXの値は参照していませんし、B.xlsxの内容は値のみを貼り付けているので、A.xlsxとB.xlsxはリンクはしていません。 「更新できないリンクが1つ以上あります・・」でリンクの状態を見ると全てOKとなっています。 とりあえずは、A.xlsxとC.xlsxを同じフォルダに置けばメッセージはでないのですが A.xlsxとC.xlsxは、操作する人物が違い、B.xlsxはデータの受け渡しのためにつかうので、 A.xlsxとC.xlsxが異なるフォルダにあってもメッセージが出ないようにしたいのですが 原因がわかるますでしょうか。

  • EXCEL 自動リンクされない

    お世話になります。 EXCEL2013を使っています。 A.xlsxというブックのA1セルにB.xlsxというブックの値をリンクで飛ばしています。 このときB.xlslを開きながらA.xlsxを開くと正常にリンクされますが、B.xlsxを開かなずA.xlsxだけを開くとB.xlsxの値が飛んできません。 なぜでしょうか?ちなみに両ブックともリンクの自動更新設定にはしています。 どなたかご教授いただけませんでしょうか? よろしくお願い致します。

このQ&Aのポイント
  • 友人に5年ぶりにメールを送ったらリターンメールが返ってきました。このメッセージは配信できなかった理由とは?疑問に思う中、翻訳サイトで調べてみた結果、アドレスが拒否されている可能性が浮上しました。
  • リターンメールが返ってきたことに不安を感じていませんか?友人にメールを送ったら配信できなかった理由を知りたいと思いますよね。解答として、友人があなたのアドレスを拒否した可能性が考えられます。
  • 友人に送ったメールがリターンされると心配になりますよね。リターンメールの意味とは何でしょうか?友人があなたのアドレスを拒否している可能性もあるので、確認してみると良いでしょう。
回答を見る

専門家に質問してみよう