検索
連載

【Excel】「外部ソースへのリンク」エラーの対処方法と発生させないための対策Tech TIPS

取引先企業から送られてきたExcelのブックファイルを開いたら、「『安全ではない可能性のある外部ソースへのリンク』が含まれている」というダイアログが表示された、という経験はないだろうか。このような場合、どうすればいいのだろうか。その対処方法と、送付する際に相手側で「外部ソースへのリンク」の警告ダイアログが表示されないようにする方法を解説する。

Share
Tweet
LINE
Hatena
「Tech TIPS」のインデックス

連載目次

対象:Excel 2013/2016/2019/365


受け取ったExcelのブックファイルを開いたら「外部ソースへのリンク」エラーが……
受け取ったExcelのブックファイルを開いたら「外部ソースへのリンク」エラーが……
「外部ソースへのリンク」のエラーは、落ち着いて対応すれば対処可能な問題だ。しかし、送り先で「エラーが出る」などといわれて、トラブルの原因となりやすい。このため、事前に処理しておくと無駄な時間を使わずに済む。

 見積書や仕様書などが、取引先から「Microsoft Excel(エクセル)」のブック(.xlsx)ファイルで送られてくることもあるだろう。その際、「安全ではない可能性のある外部ソースへのリンクが1つ以上含まれています」と書かれたダイアログが表示された経験はないだろうか。

 これは、他のブックファイルへのセル参照などが含まれていて、そのブックファイルにアクセスできないことを示す。このエラーは、対処が可能だが、その代わりに、もともと入っていた数式が失われることがある。

 また、操作を間違うと元に戻せなくなるため、慎重に対応する必要がある。特に社外などから入手したブックファイルに関しては、再度の入手が困難となる可能性もある。

 ここでは、このエラーへの対応方法を解説するとともに、こうしたエラーを出さないブックファイルの事前処理方法を解説する。自分がブックファイルを送付する際には、相手先でエラーにならないように事前に処理しておくとよい。

「外部ソースへのリンク」エラーの発生原因

 Excelの数式では、他のブックにあるセルを簡単に参照できる。こうした機能を「外部ソースへのリンク」という。また、「外部ソースへのリンク」で参照されているブックは「リンク元」(元になった英語の表記は「Source」)と呼ばれる。

 数式や名前定義、クエリは、この「外部ソースへのリンク」を含むことができる。「外部ソースへのリンク」は、リンク元のブックファイルをExcelが処理して、最新の値に更新する。このため「外部ソースへのリンク」を含むブックを作成したPCから、リンク元のブックファイルにアクセスできなければならない。

 しかし、ブックは単独のファイルとしてメールなどで送信が可能であるため、「外部ソースへのリンク」を含むブックを他のPCで開いたとき、リンク元ブックにアクセスができないとエラーが発生する。

 このときの対処方法は、リンク元のブックファイルにアクセスできるどうか、ブックファイルが入手できるかなどによって違う。例えば、社内で作成されたブックファイルなどリンク元へのアクセスが可能な場合、ブックファイルへのパスを設定し直すことで、エラーが解消できることがある。また、ネットワーク経由でのアクセスは不可能でも、リンク元のブックファイルのコピーを入手できる場合は、同じPCにコピーすることで「外部ソースへのリンク」のエラーが解消できる。

リンク元ブックの入手可能性 対処方法 備考
入手/アクセスが可能 リンク元の変更 外部リンクを変更して数式を維持
不明 ブックの自動更新を「オフ」 数式を維持して更新を手動にする
入手が不可能 リンクの解除 外部リンクを含む「数式」を「値」に置き換える
「外部ソースへのリンク」のエラーが発生した場合の対処方法

 社外には出せない機密情報などが含まれており、リンク元のブックファイルが入手不可能な場合、Excelでは、「外部ソースへのリンク」を含む数式を最後の計算結果で置き換える機能がある。これにより、少なくとも表データとしての利用は可能になる。

 「数値」に置き換えてしまうと、数式が失われてしまうため、新しい値を入れて再計算などを行わせることはできなくなる。しかし、数値や文字列データとして表を閲覧したり、参照したりすることは可能だ。

「外部ソースへのリンク」エラーの対処方法

 上表の3つのタイプにより、操作が異なる。リンク元のブックファイルが入手できるようならば、「外部ソースへのリンク」を含むブックは閉じておき、誤操作などで上書き保存などをしないように注意する。「外部ソースへのリンク」エラーが表示された段階で何もせず、ブックを閉じておくのがよい。

 また、リンク元のブックファイルが入手できない場合、「外部ソースへのリンク」を含む数式を値に変換して利用することになる。だが、後でリンク元のブックファイルが入手できたときに困らないように、ブックファイルのコピー(バックアップ)を作成しておくとよい。

 この場合、Excelを起動せず、エクスプローラーでブックが保存されているフォルダを開き、ブックファイルをコピーする。Excelはブックファイルを開くときにロックするため、必ずブックファイルを開いていない状態でコピーすること。

「外部ソースへのリンク」エラーの対処方法(1)
「外部ソースへのリンク」エラーの対処方法(1)
ブックを開いたとき、「外部ソースへのリンク」に関するメッセージボックスが表示されたら、一時的にエラーを保留して利用を継続するか、「数式」を「値」に置き換えることでエラーを解消できる。ここで[更新しない]ボタンをクリックすると、エラーを継続(維持)したままで、ブックファイルの利用が継続できる。「数式」を「値」に置き換えたい場合は、[更新する]ボタンをクリックする。
「外部ソースへのリンク」エラーの対処方法(2)
「外部ソースへのリンク」エラーの対処方法(2)
[続行]ボタンをクリックすると、前のダイアログの[更新しない]ボタンをクリックした際と同様、エラーを継続(維持)したままで、ブックファイルの利用が継続する。「外部ソースへのリンク」を解消したい場合は、[リンクの編集]ボタンをクリックする。
「外部ソースへのリンク」エラーの対処方法(3)
「外部ソースへのリンク」エラーの対処方法(3)
[リンクの解除]ボタンをクリックすると、「数式」が「値」に置き換わる。リンク元のブックファイルを入手した場合は、[リンク元の変更]ボタンをクリックする。
「外部ソースへのリンク」エラーの対処方法(4)
「外部ソースへのリンク」エラーの対処方法(4)
リンク元のブックファイルを選択して、リンクを更新する。

 ブックファイルを開くたびに「外部ソースへのリンク」エラーが表示され、ダイアログで[更新しない]ボタンをクリックするのは面倒だ。そのような場合、[リンクの編集]ダイアログで[起動時の確認]ボタンをクリックし、[起動時の確認]ダイアログを開き、「メッセージを表示しないで、リンクの自動更新も行わない」を選択して、[OK]ボタンをクリックすると、次回以降、ブックファイルを開いた際にはエラーが表示されなくなる。

「外部ソースへのリンク」を確認しないようにする
「外部ソースへのリンク」を確認しないようにする
ブックファイルの起動時にリンクの自動更新を行わないようにするには、[リンクの編集]ダイアログで[起動時の確認]ボタンをクリックし、[起動時の確認]ダイアログを開き、「メッセージを表示しないで、リンクの自動更新も行わない」を選択して、[OK]ボタンをクリックする。

「外部ソースへのリンク」の有無を確認する

 「外部ソースへのリンク」のエラーは、ブックファイルを受け取った側がエラーに対処する必要がある。もし受け取った側で対処できないと、再度、ブックファイルの送付が依頼されたり、対処方法をやりとりしたりして無駄な手間が発生する。

 また、場合によっては会社など組織内で作成されたブックファイルには、外部に出てはならない情報が含まれている可能性がある。例えば、「外部ソースへのリンク」には、リンク元のブックファイルに含まれていた割引率や格付けといった機微な情報が「外部ソースへのリンク」経由で参照されている可能性がある。

 そのため、数式とともに内部情報が外部に漏洩(ろうえい)する可能性もある。その他にも、社内のネットワークやブックファイルパスなどが含まれていることがあり、社内のネットワーク構成などに関する情報やコンピュータ名などの情報が漏洩してしまう可能性がある。

 このため、Excelのブックファイルを外部の人に渡す場合、事前に「外部ソースへのリンク」を調べて、参照関係を解消しておいた方がよい。この作業は、元に戻せないため、必要に応じて、ブックファイルを作業前にバックアップしておく。

 このとき、ブックファイル名には、外部に出すことが明確に分かるように相手先などの名前を入れておくとよい。何かトラブルがあったとき、手渡したファイルが確実に分からないと、対応に時間を取られてしまうことがあるからだ。

 まずは、ブックファイル内の数式にある「外部ソースへのリンク」を探す。これには、Excelの検索機能が利用できる。数式内の「外部ソースへのリンク」には、必ずリンク元ブックのファイル名が含まれているため、「.xl」というキーワード(これは、Excelのブックファイルに必ず含まれる拡張子の前半部分)を検索する。

 [ホーム]タブにある[編集]−[検索と選択]をクリックして[検索と置換]ダイアログを開く。ここで「検索する文字列」に「.xl」を入れ、[オプション]ボタンをクリックする。

 表示された「検索場所」で[ブック]を選択し、「検索対象」を[数式]にする。最後に「すべて検索」ボタンを押せば、ダイアログの下部に、「外部ソースへのリンク」を含む数式がすべて表示される。ここに何も表示されなければ、数式には「外部ソースへのリンク」は含まれていないことになる。

「外部ソースへのリンク」の有無を確認する(1)
「外部ソースへのリンク」の有無を確認する(1)
「外部ソースへのリンク」を送信前などに対応しておくなら、検索機能で「.xl」を探せばよい。それには、[ホーム]タブの[検索と選択]をクリックし、[検索]を選択する。あるいは[Ctrl]+[F]キーを押してもよい。
「外部ソースへのリンク」の有無を確認する(2)
「外部ソースへのリンク」の有無を確認する(2)
[検索]タブの開いた状態で[検索と置換]ダイアログが開くので、「検索する文字列」に「.xl」と入力して、[オプション]ボタンをクリックする。
「外部ソースへのリンク」の有無を確認する(3)
「外部ソースへのリンク」の有無を確認する(3)
「検索場所」で[ブック]を、「検索対象」で[数式]をそれぞれ選択し、[すべての検索]ボタンをクリックする。
「外部ソースへのリンク」の有無を確認する(4)
「外部ソースへのリンク」の有無を確認する(4)
ブックファイル内の全ての「外部ソースへのリンク」を含む数式が表示される。ここに何も表示されなければ、数式に「外部ソースへのリンク」は含まれていない。

 「外部ソースへのリンク」を含む数式がシート内にある場合、数式を値に変換するのが簡単で確実な方法だ。それには、「外部ソースへのリンク」を持つ数式を含むシートをコピーし、その上から「値のコピー」を行うことでレイアウトなどを崩さずにシートの数式を全て値にすることができる。

 シートのコピーの詳細に関しては、Tech TIPS「『マウスで表を選んでコピー&ペースト』よりもスマートな方法あります」を参考にしてほしい。以下では手順のみを簡単に説明する。

 [シート]タブで右クリックメニューを表示させ、[移動またはコピー]を選択し、表示された[移動またはコピー]ダイアログ下部の「コピーを作成する」にチェックを入れ、[OK]ボタンを押す。これでシートが完全にコピーされる。

 今度は、元のシートで表全体を[Ctrl]+[A]キーで選択して、[Ctrl]+[C]キーで全体をコピーする。

 次にコピーしたシート(シート名の後ろに括弧付き数字がつく)を開き、表データの左上のセルを選択した状態で、右クリックメニューから[形式を選択して貼り付け]を選び、ダイアログの[貼り付け]で「値」を選択する。これで、コピーしたシートの数式は全て計算結果の値に置き換わった。

 その後、コピー元の「外部ソースへのリンク」を持つ数式の入ったシートを削除し、コピーしたシートの名前をコピー元と同じにする。コピーしたシートには、「(2)」などの括弧付きの数字が末尾についているだけなのでこれを削除するだけでよい。


 他のブックのセル参照を含む「外部ソースへのリンク」は、比較的Excelでよく使われる技法だ。特に何かの固定的なリストを独立したブックファイルにしておくことで、参照側と別に管理や更新を行える。

 Excelの外部参照は、PCがLAN対応する前から存在する機能であるため、「外部ソースへのリンク」はファイルパスで行われ、リンク元ブックにアクセスできない環境ではエラーになってしまう。Excelでブックファイルをもらう可能性があるなら、最低限、対処法は理解しておいた方がいいだろう。

 また、ブックを配布する側なら、事前に「外部ソースへのリンク」を解消しておく事前対策を行うことで無駄なエラー対応を減らすことが可能だ。

Copyright© Digital Advantage Corp. All Rights Reserved.

ページトップに戻る