マンガでよめる痔のこと・薬のこと

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

このQ&Aに関連する最新のQ&A

A 回答 (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つの道筋があるように思いますが、
現状維持なら
”リンクの編集”ダイアログから[起動時の確認]
→[〇メッセージを表示しないで自動更新を行わない]にチェックするとか
復旧については
リンクからデータを拾う上記の方法
捜索については、必要ならですけれど
同一マシン内で移動しているものが名前変更のせいで見つからない場合に向けては
そのブックを特定できるブック内のデータとしてのキーワードで検索してみるとか
既に消去されていると判断された時、必要ならサルベージを検討・依頼するとか
何処か外部のドライブに移動された前提だと、普通に人に訊いて回るとか、
こんな感じでしょうか。

長くなりました。それでも外していたらごめんなさい。
それでは、また。
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/08/02 18:02

#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オブジェクトに替えてください。
リンク先を一覧してみるのも役に立つことがあるかも知れません。
    • good
    • 0
この回答へのお礼

何度もありがとうございます。
Sub Re8200869 ためして見ました。
数式に表示されるフルパスと同じ文字列が取得されました。

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

お礼日時:2013/08/01 22:59

こんにちは。

お邪魔します。

伝えられている現象だけで判断するなら、
ファイルは存在し、リンクも活きていて、
ただ、XYZ.xlsが存在するフォルダでXYZ.xlsファイルを表示できていない、
とかいう解釈も成り立つのかな?と思ったりしました。

VBAから、Workbooks.Open FileName で開けるかどうか
試してみてはどうでしょう。
XYZ.xls 存否を納得できる形でハッキリさせることはできるかと。

ほんの一例ですけれど、
「フォルダ内のファイルが正常に表示されない現象について」
http://support.microsoft.com/kb/418535/ja
ここで説明されているような条件で、
今回の問題の現象も再現できるように思いましたので。
ただ、私の方では、試す環境がありませんし、
類似の現象についての情報にも疎いので自信はあまりありませんけれども。
ただ、上の条件とは違いますけれど、
ネットワーク上(外部ドライブ)の特定のフォルダを参照、または取り込んだ時に
勝手に隠しファイルになってしまう、というような経験は
2、3、憶えがあります。こちらも再現はできませんが。

とりあえず、ちょっと目先を変えるようなレスをしてみようと思ったまま書いてみました。
    • good
    • 0
この回答へのお礼

いつもありがとうございます。

> ファイルは存在し、リンクも活きていて、

「ファイルを開くとき、更新できないリンクがあります。」とメッセージがでますのでリンクは生きてないと思います。

参考URLはXPの問題のようですがこちらはWindows7です。

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

お礼日時:2013/08/01 22:51

回答No1です。


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

この回答への補足

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

さきほどためしにABC.xlsxの他のセルに =数式にあるパスのSheet1のA1 と入れてみたら表示されました。
ただ、それが正しいかどうか自信がありません。

補足日時:2013/08/01 14:17
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2013/08/03 08:49

ご質問の主旨は


> リンク元であるXYZ.xlsの所在が不明
だから、あらかじめ開いておけない、と言うことで良いですか?


とりあえず・・リンク元(XYZ.XLS)が開いていない状態で
リンクを設定してあるセルにフォーカスを持たせると、
添付図のように「数式バーにリンク元のフルパス(所在)」を表示してくれますよ。

「いや、そうじゃないんだよ。」と言うときは、
回答側に何か誤解があるのかもしれません。
「現状を詳細に補足」くださいませ。
「エクセルでデータのリンク元が所在不明の場」の回答画像3
    • good
    • 0
この回答へのお礼

ありがとうございます。
その「数式バーに表示されたリンク元のフルパス(所在)」にないから所在不明なのです。

でもひょっとしてと試しに、別のセルに「=リンク元のフルパスとセル名」を入れセルを参照してみたら保持していると思われるデータが取り出せました。これは正しいデータなのでしょうか?

お礼日時:2013/08/01 09:57

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

この回答への補足

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

補足日時:2013/08/01 09:52
    • good
    • 0
この回答へのお礼

有難うございます。

お礼日時:2013/08/01 12:51

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

この回答への補足

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

補足日時:2013/08/01 09:49
    • good
    • 0
この回答へのお礼

有難うございます。

お礼日時:2013/08/01 12:50

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QEXCELの自動リンク箇所の確認と解除方法

「開いているブックには他のファイルへの自動リンクが設定されています。このブックを更新し、他のブックへの変更を反映しますか」といったメッセージが表示されますが、リンクを設定した記憶はありません。編集メニューでリンク先を確認するとすでにリンク先のエクセルファイルは削除済になっています。「編集」「検索」ですでになくなっているファイル名を全てのシートで検索しても「見つかりません」となってしまいます。質問No.1322325 05-04-10 回答者ja7awuさんのマクロでもリンク解除できませんでした。解除方法をご存知の方は教えてください。

Aベストアンサー

なかなかうまくいかないようですね・・・。

私の場合、検索でも見つからなかったので、コピーしたブックを使って、シートを一枚ずつ削除(または、全てクリア)し保存・開く、を繰り返して参照のあるシートを特定し、該当シートが見つかったら、転記された可能性がある式の部分削除を削除しながら、幽霊の存在を探して、式の入ったセル(範囲)を特定してから、元のシートの式を修正しました。

この場合、どのセルにも他のブックへのリンクは設定されていませんでしたが、エクセルの内部に変な情報が残っていたのが原因かと思います。

どうしてもだめなら、上記のように不正なセルを特定して削除するしか無いと思います。

Qエクセルのリンク解除ができない場合の対処

症状としては、時々ある事なのですが、エクセル(2003)でファイルのリンクを
編集→リンクの設定→リンクの編集→リンクの解除
をしても解除されない症状を解決するにはどうしたらよいでしょうか?
因みに外部リンクで、sumifやvlookupなどを使用しています。
また、列の非表示や、ソートでの行の非表示などはよく多用しています。
上記が起因しているかどうかは不明です。
ご存知の方いらっしゃいましたら、是非ご教授お願いします。

Aベストアンサー

名前の定義の中の参照範囲にリンク先が含まれていませんか。

エクセル2003は使っていないので、エクセル2000の場合を説明します。

「挿入」→「名前」→「定義」の「参照範囲」を確認して、リンクが含まれていれば削除して見て下さい。

リンクが含まれて無ければ、別問題ですので他の方の回答を待って下さい。

QExcelの外部リンク完全削除は?

Excel2000を利用しています。

複数のExcelブックを同一外付けドライブの同一フォルダで使用して、外部参照の式を組んでリンクさせています。「編集」→「リンクの設定」を開くと、いろんなリンクが貼られているのが分かります。当然ですね。

ただ外部リンクを削除したいときに完全な削除ができません。ブック全てを選択して値貼り付けを行っても、(数式が消えたにもかかわらず)リンクが残ってしまいます。開くときに「・・・ほかのファイルへの自動リンクが設定されています・・・」と一々ダイアログボックスが出てきます。確かに「リンクの設定」を見るとリンクが残っています。煩わしいので、何とか消したいのです。リンク元であったファイル名などで検索をかけても、(数式を消したので当然ですが)ヒットしないので、個別に削除することも出来ません。

現時点では以下の方法で対処しています。
1.シート全体を選択してコピー
2.新規ブックを開き、シート全てを選択して値貼り付け
このように完全に新しいブックを作るという方法を取っています。これだと、余白などのページ設定をやり直さなければなりません。はっきりいって面倒です。

新しいブックに移行することなく、(数式を伴わない幽霊のような)リンクだけを解除する方法はありませんか?類似の質問はいくつかあるようなのですが、どれも解決につながっているようには思えないので、新たに質問させてもらいました。

ご存知の方よろしくお願いします。

Excel2000を利用しています。

複数のExcelブックを同一外付けドライブの同一フォルダで使用して、外部参照の式を組んでリンクさせています。「編集」→「リンクの設定」を開くと、いろんなリンクが貼られているのが分かります。当然ですね。

ただ外部リンクを削除したいときに完全な削除ができません。ブック全てを選択して値貼り付けを行っても、(数式が消えたにもかかわらず)リンクが残ってしまいます。開くときに「・・・ほかのファイルへの自動リンクが設定されています・・・」と一々ダイアログボック...続きを読む

Aベストアンサー

こんにちは。maruru01です。

すでにご覧になったかも知れませんが、以下のページを見てみて下さい。

http://homepage2.nifty.com/housaka/kitan01.html#7

参考URL:http://homepage2.nifty.com/housaka/kitan01.html#7

Qリンク先のファイルを開かなくても、値が読み込めるようにできますか?(SUMIFSを使ってます)

エクセル2010を使っている者ですが、あるファイルではリンク先のファイルを開いていないと、値が読み込めません。

なお、いろいろと調べて、以下のとおりの設定になっております。
・「外部リンクの値を保存する 」にチェックが入っている。
・「すべてのブックリンクの自動更新を有効にする」にチェックが入っている。
・起動時の確認で「○メッセージを表示しないで、リンクの自動更新を行う」にチェックが入っている。

当該ファイルの中で、値を読み込みたいところでは、SUMIFSの関数を使っているのですが、そのせいなんでしょうか。
そうだとしたら、SUMIFSを使っていても、リンク先のファイルが閉じた状態で値を読み込む方法はないのでしょうか?

Aベストアンサー

No.1の回答者さんが書いているように、ブックを閉じたときの仕様に
なっていますので、SUMIFS関数を使うのならブックを開いておいて、
作業します。
https://support.microsoft.com/ja-jp/kb/260415

どうしてもブックを閉じて作業したいのなら、SUMIFS関数を使わずに
配列数式に変更して回避します。
{=SUM(IF((条件1)*(条件2),範囲))}
http://ameblo.jp/pcroom123/entry-11742483652.html
http://excel-magic.com/post-32/

QEXCEL VBAで全選択範囲の解除

EXCEL VBAで
Cells.Select
と書くと、全セルが選択状態になりますが、
これを解除するには、どう書けばよいのでしょうか?

Aベストアンサー

その1
A1 など、適当なセルを選択する。
(回答#1と同じ)

その2
全選択する前の選択範囲に戻る。

全選択前に
変数 = Selection.Address で記憶

全選択後
Range(変数).Select で元の選択範囲を選択

Qエクセルで数式の結果が反映されない(自動計算になっているのに)

すいません、教えてください。

エクセル(XP)で数式が自動計算されなくなって
しまいました。

  ※ツールのオプションはちゃんと自動計算に
   なっているのに全く反映されません。

今まで全く問題なく作業できていたので
原因が分からず困っています。

数式等のエラーだとは考えにくいです。
と言うのも数式のあるセルをダブルクリックして
選択し、そのままEnterキーを押すと計算結果が
反映されます。
ただ、今まで全て自動計算されていたのが
全く動かなくなってしまったんです。

同じようなトラブルを経験された方、又は
詳しい方、どうかよろしくお願いします。

Aベストアンサー

原因は分からずじまいになってしまいましたが
同じことがありました。

「Officeの救急隊」を試してみましょう。
ボタン一発で全ての設定が元に戻ります。
http://www.vector.co.jp/soft/win95/util/se247118.html
(ツールバーなども初期状態に戻ります)

私の場合はコレで直ってしまいました^^

参考URL:http://www.vector.co.jp/soft/win95/util/se247118.html

Qエクセルで条件により文字色を変える関数教えて下さい

エクセル2003を使っています。
セルa1に下限値,a2に上限値を入力、c3にデータを入力します。
入力したデータがa1下限値,a2上限値の範囲内であればデータの文字色はそのままで、その範囲を超えるとデータの文字色が「赤」に変わる数式を教えて下さい。よろしくお願いします。

Aベストアンサー

C1セルを選択し、次の方法で如何でしょうか。
(1)書式→条件付き書式
(2)条件を「セルの値が」、「次の値の間以外」、「=A1」、「=B1」で設定
(3)書式→フォントタブの色リストで赤を選択→OK
(参考)下行も同様にしたい場合、C1セル下方向にコピーして下さい。

Q矢印キーのロック解除方法

矢印キーがロックされてしまい、エクセルで矢印キーでのセルの移動ができません。解除方法を教えてください。

Aベストアンサー

キーボードのスクロールロックキーを押してください。
ノートPCだとFnキーを押しながらNumLkキーを押すなどなっている場合があります。

QExcelのセル内の文字の頭に半角空白を入れるには

Excelで作った住所録があります。セル内の氏名あるいは住所の頭に半角の空白を入れる修正をしたいと思います。簡単な方法を教えて下さい。初心者ですから、出来たらVBA等使わずにお願いします。使った方が楽な場合は最低限のものでお願いします。

Aベストアンサー

表示形式で即座に解決できます。現在のセル(シート)の中身は一切そのままで出来ます。

表示を変えたいセル(複数可)を選択して「セルの書式設定」のダイアログを表示させ、「表示形式」の分類で「文字列」を選択し、その後「ユーザー定義」を選択します。
すると右側の「種類(T):」の下に「@」(文字列の表示形式記号)が表示されます。その前にカーソルを持って行き、「 」(スペース。全角でも半角でも可)を打ち込んで下さい。

これで「OK」を押せば、選択した範囲の文字列の前に全て半角のスペースが追加されているはずです。
中身は一切変わっていません(飽くまで表示のみの変化です)から、検索等も今まで通りの条件で出来ます。

Qエクセル 値の更新

シート1のA1の値をシート2のあるセルに表示させるためにシート2のあるセルに =1!A1 といれました。

入力後、すぐに反映されていたのですが、あるときを境にこの入力をすると”値の更新”という保存時のダイアログのようなものが開表示されるようになりました。

分からないなりにもあてずっぽで更新先をシート1にして、なんとか対応していたのですが、同じようにしているのもかかわらず、リンクさえしなくなりました。

これはどうなっているのでしょうか。
原因がまったくわかりません。

最初のように、すぐに反映させるにはどうすればよいのでしょうか。

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

Aベストアンサー

> =1!A1 
[=Sheet1!A1]ですかね?

Alt+F11キーでVBAを編集する画面「VBE」を開けます。
画面左にシートの一覧が表示されているでしょうから、そこでブック内のシートの名称を確認してください。
ツリー(階層)状に表示されている部分の名称と、それをクリックして画面左下に表示されるプロパティ内の名称が異なっているためだと思います。

目的のシートの名前を、=本当のシート名! のように変更してみてください。


人気Q&Aランキング