Excel参照先のわからないリンク先を探す方法「安全ではない可能性のある外部ソースへのリンクが1つ以上含まれています。」

【本日のミッション】

Excel でファイルを開く際

「このブックには、安全ではない可能性のある外部ソースへのリンクが1つ以上含まれています。
リンクを信頼できる場合、リンクを更新して最新データを取り込みます。
信頼できない場合は、データをそのまま手元で処理してかまいません。」

って言われて、「更新する」をクリックしたら

「ブック内の一部のリンクはすぐに更新できません。
値を更新せずにそのままにするか、間違っていると思われるリンクを編集してください。」

と言われた時のリンク先を探せ!

ミッションの概要

他の人が作ったファイルでも、自分が作ったファイルでも、起こりうる現象。

リンク参照させていたファイルが削除されたり、ファイル名・フォルダ名が変えられていたり、保存フォルダを移動されたり・・・

私は何度もこのエラーメッセージに苦しめられました。

リンク先を変更しようにも、リンク切れの起こっている場所が見つからないのです!

上記2つ目のメッセージが出た際に「リンクの編集」をクリックするとこんな画面に出くわします。これを見たところで、どのシートのどの部分でリンクが外れているのかわからないんです(プンプン!!もっと親切に教えて!!)

原因として私が一番多く体験したのは、無意識に別のファイルからコピーして貼り付けていたこと。無意識にやっていることなので、原因が全然思いつかないんです・・・・。

どこかでリンク参照切れが起こっていたら、どこかでデータの計算がおかしくなっているに違いない。このままリンク解除もできないし、放置もできない。なんとしてもリンク参照のおかしい場所を見つけなくてはいけません。

方法1 リンク先文字検索

別のファイルのセルを参照している場合

=’C:\VBA\[Book1.xlsx]Sheet1′!$A$1

みたいな数式になっていますよね。

このファイルパスに含まれている「\」とか「!」とかの文字を利用します。

  1. シート名を右クリックし、非表示になっているシートがあれば全て「再表示」させます。
    非表示シートの文字列は検索されないからです。
    マクロでしか表示できないように設定しているシートがある場合は、それも表示させましょう。

  2. Ctrl+ F で検索画面を表示させます。「オプション」ボタンをクリックして、
    検索する文字列:「\」とか「!」とかリンク数式に使われてそうな文字
    検索場所:ブック
    検索対象:数式
    として、「全て検索」ボタンをクリックします。
  3. 下側に検索結果が表示されます。sheet1のセルE1にありました!!

方法1で見つからなかった場合は、下記方法のいずれかをお試しください。

■スポンサーリンク

方法2 名前定義を探す

名前の定義をよく使われる方は要注意です。

データコピーの際に、名前の定義も一緒にコピーしてきちゃっていること多いんですよね。

人が作ったデータに、山ほどリンクの外れた名前の定義が残っているとか・・・。よくある話です。

[数式]タブー[名前の管理]を開きます。

参照範囲に外部データが含まれている見覚えのないデータはエラーの原因になりますし、後々他の人が見たときに解明できない謎のデータになってしまうので、早めに退治しておきましょう。

マクロで非表示にされている名前がある場合は、表示させておきましょう。

方法3 図形・オブジェクトに仕込まれた参照を探す

図形・オブジェクトに、セルの文字を参照させる機能があります。

オブジェクトを選択した状態で、数式バーにカーソルを置いて「=」と入力し、参照したいセルをクリックしEnterをクリックします。

参照したセルの値が、オブジェクトに表示されます。

外部データからの参照も可能です。

この機能を使って参照している図形・オブジェクトが存在する場合は、参照先をご確認ください。

方法4 グラフに含まれるリンク参照を探す

このグラフ、作りたいグラフと同じフォーマットだからコピーして使おう!

ってなことでコピーしてきたグラフ。

参照先をきちんと全部変更しておかないと、エラーの原因になります。

グラフ参照の数式だけではなく、グラフタイトルなどに上記「方法3」の機能を利用してテキスト参照している場合があるので注意が必要です。

方法5 マクロを登録したボタンを探す

外部ファイルから、マクロを登録したボタンをコピーしてきている場合も要注意です。

登録しているマクロが間違っている場合は、修正してください。

どうでしょうか?謎のリンク先は見つかりましたか?

【参考】

指定したフォルダ内のファイル名全てを取得(Excel VBA)
変数でよく使われる「buf」「tmp」の意味
Dir関数が取得するファイルの順番
指定したフォルダ内のフォルダ名全てをGetAttrを使って「エラー53 ファイルが見つかりません。」を出さずに取得(Excel VBA)
GetAttrとは?「= vbDirectory」ではなく「And vbDirectory」となるビット演算の疑問
フォルダ名だけを取得したい時に出てくる 「.」 と 「..」 とは?
指定したフォルダ内とサブフォルダ内全てのファイル名を取得(Excel VBA)
CreateObject(“Scripting.FileSystemObject”) を使ってサブフォルダを取得
再帰処理とは?フォルダ内とサブフォルダ内全てのファイル名を取得(Excel VBA)
指定したフォルダ内のサブフォルダのフォルダ名を全部取得(Excel VBA)
再帰処理とは?フォルダ内のサブフォルダのフォルダ名を全部取得(Excel VBA)
参照渡し「ByRef」と値渡し「ByVal」の違い(Excel VBA)
ファイルのフルパスからファイル名のみを取得 InStrRev関数(Excel VBA)
指定したフォルダの全ての階層のフォルダ名・サブフォルダ名・ファイル名を取得(Excel VBA)
FileSystemObjectとは?CreateObject 関数 FolderExists・GetFolderの使い方
FileSystemObject CreateObject関数を使う方法・ 参照設定を使う方法 違いを理解してエラー防止
再帰処理とは?指定したフォルダの全ての階層のフォルダ名・サブフォルダ名・ファイル名を取得(Excel VBA)
ファイルのフルパスからファイル名のみを取得 Split関数(Excel VBA)
Callステートメントとは 引数 括弧()の使い方(Excel VBA)
指定したフォルダ内から「特定の文字を含まないファイル名」を取得(Excel VBA)
ワイルドカードとは。使い方いろいろ。(Excel)
Dir関数の使い方。ファイル名やフォルダ名の取得方法。(Excel VBA)
指定したフォルダのファイル名を取得し、そのファイル名を一括で変換(Excel VBA)
Excel起動時に「コンパイルエラー」。64ビット システムで Declareステートメントに、PtrSafe属性を設定(Excel VBA )
「ファイルを開く」ダイアログボックス から ファイル名を取得(Excel VBA)
「ファイルを開く」ダイアログボックス から 複数 ファイル名を取得(Excel VBA)
指定フォルダ内のサブフォルダ全てをフォルダ構成のみ(空フォルダ)を別フォルダにコピー(Excel VBA)
再帰処理とは?指定フォルダ内のサブフォルダ全てをフォルダ構成のみ(空フォルダ)を別フォルダにコピー(Excel VBA)

■スポンサーリンク

■ランキングに参加しています。
↓このブログを気に入っていただけましたら、ポチッとお願いします。
人気ブログランキングへ