"BOKU"のITな日常

還暦越えの文系システムエンジニアの”BOKU”は新しいことが大好きです。

ブックに他のデータソースへのリンクが含まれているエラーに対処する/EXCELの小ネタ

今回は、メール添付されたEXCELブックとかでありがちな、「このブックには他のデータソースへのリンクが含まれています」メッセージへの対処方法です。

f:id:arakan_no_boku:20190307220715j:plain

 

やっぱり、メッセージは消しておきたい

 

こんなのがでます。

f:id:arakan_no_boku:20190307221654j:plain

このブックには他のデータソースへのリンクが含まれています・・とあります。

うっとおしいので、極力メッセージがでないようにしてますが、しょっちゅう出るメッセージでもないので、毎回、対処方法を忘れてて「あれ・・どうするんやったっけ」と一瞬迷います。

なので、今回記事にまとめとこうと思った次第です。

 

対処方法は「知ってれば簡単」です

 

自分で探して、地道に外部参照を消していくことになります。

いい加減、EXCELに「一括外部参照削除機能」でも付かないかな・・と思うのですが、ないので仕方ありません。

外部参照の残り方は、XLSXファイル(マクロ無し)なら、だいたい以下の2通り。

  • セルに"=C:\XXX\XXXX.xlsx・・・"みたいな外部ファイルを参照する数式がある。
  • 名前の定義のなかに、外部ファイルを参照するリンクがある。

XLSM(マクロ付き)なら、それに以下がプラスです。

  • フォームのボタン等で外部ファイルのマクロを参照している

でも、最後のケースは結構レアです。

そもそもマクロ付きのファイルをメール添付で送るとかはありえません。

なので、今回は、前者の2つだけ対処方法を書いておきます。

 

外部ファイルを参照する数式がある 

 

2通りのやり方が、良く知られてます。

ひとつは。

データタブの「リンクの編集」を使います。

f:id:arakan_no_boku:20190307221843j:plain

外部参照しているリンクの「リンクの解除」をしてやれば良いです。。

support.office.com 

もうひとつは。

検索と選択を使います。

f:id:arakan_no_boku:20190307222034j:plain

検索ダイアログでオプションを開きます。

f:id:arakan_no_boku:20190307222058j:plain

ここで、「.xl」をキーワードにして、ブック全体の数式を検索して、見つかったものを、コピー→値のみ貼り付けで数式だけクリアするわけです。 

f:id:arakan_no_boku:20190307222122j:plain

support.office.com
こちらは、より直感的でわかりやすいですけど、この方法では見つけられない外部参照リンクもあるので、対応したけどメッセージが消えないということもあります。

結局、リンクの解除もやる羽目になる場合もあることを知って使う必要があります。


名前の定義のなかに、外部ファイルを参照するリンク

 

上記の「リンクの解除」をやるとだいたい解消することが多いです。

でも、それでも残る場合だけ見ればいいかなと思うのですが。

数式>名前の管理を使います。

f:id:arakan_no_boku:20190307222511j:plain

名前の参照先としてリンクが残っていたりしますので、必要なければ、名前ごと消せばいいですし、それがまずければリンクを修正します。

f:id:arakan_no_boku:20190307222559j:plain

知ってれば、簡単そのものです。

でも、名前の定義・管理の機能は、自分では全く使わない(トラウマのせいです)ので、毎回、これを忘れてます。

 

EXCELの名前機能に関する個人的トラウマ

 

蛇足ですが・・、自分が名前の管理を使わない理由。

それは、仕事で前任者から引き継いだEXCELブックに、大量の名前定義がされていて、それらが「壊れている上に非表示にされた名前」になっていたことがあるからです。

何気に、シートをコピーした時に、名前に関するエラーメッセージが消しても消してもでてきて、イライラしながら、延々とOKボタンを押し続ける羽目になったことがあるからです。

これは、EXCELの通常機能では対処できず、VBAで無理やりアクティブにしてから消すみたいな本末転倒なことをしないといけなかったり、相当、神経を逆なでされました。

dev.classmethod.jp

それ以来、名前の定義は一切使ってません。

実に個人的な理由で、すいません。

ではでは。