「リンクの編集」で、「リンクの解除」を選択してもリンクが削除できない・・・こんな経験をした人は多いのではないでしょうか。エクセルをいろいろと操作していると、意図せずに参照先が別ブックになってしまい、かつ、その参照先のブックが無くなってしまっている・・・こんな場合に、リンクエラーとなります。通常は、「リンクの編集」→「リンクの解除」で消せるのですが、この操作で消せないリンクエラーがたまに存在します。外部(他ブック)リンクはなるべく使用しないほうが良いということだけ言っておきます。※この場合のリンクにはハイパーリンクは含まれません。「更新する」を選択すると、このようなダイアログメッセージが出るときがあります。「状態」が「エラー:・・・」となっているものが、リンク先のファイルが存在しないエラーとなります。「状態」が「OK」のものは、リンク先のファイルが存在しているものになります。この操作で消せないエラーが存在します。いう場合に、「リンクの解除」で消せなくなるのか・・・どのようにリンクエラーを探したら良いか・・・かいつまんで解説します。定義だけなら他に影響するものではなく名前定義を使った数式が外部リンクとして認識されます。条件付き書式や入力規則は、そもそも通常操作では他ブックを参照できない仕様になっています。これらは、シートを別ブックや新規ブックに移動したりすることで発生するものになります。概ねこのような感じではありますが、絶対とは言えないものです。大体こんな感じだという程度にとらえておいてください。このどちらかにリンクエラーが残っている場合になるでしょう。表示された、一覧の数式を見れば外部参照であることがわかります。他ブックを参照している場合は、"[ブックのパス\ブック名]"このようになっているので、Excelとして特別な記号[を探せばよいということです。検索文字として、".xls"でも大抵の場合は良いのですが、リンク切れを起こした時の状況によっては、"[Book1]"のように拡張子がない場合も存在します。管理」(Ctrl+F3)「名前の管理」のダイアログが表示され、名前の定義の一覧が表示されます。参照範囲を見れば、外部参照が確認できます。ここで、選択して「削除」で消すことができます。この削除が失敗することは滅多にありません。・ボタン等の登録マクロ、条件付き書式、入力規則これらを簡単に探す方法がありません。「オブジェクト」「条件付き書式」「データの入力規則」それぞれを選択して、「OK」をすれば、オブジェクトまたは当該セルが選択されます。これで、場所はわかります。具体的に外部リンクなのかどうかは内容を一つずつ確認しなければなりません。これはシート毎に行う必要があります。シート数が多く、それぞれのシートに多くの設定がある場合には、ほとんど探しようがないという状態になってしまいます。このように外部(他ブック)リンクを探すには、かなりの手間がかかります。外部リンクを探せるマクロVBAがあればとても便利です。WEBを探してみましたが、すっきりと探してくれるマクロVBAは見つけられませんでした。そこで、自分でも必要で使いたいということで、マクロを作成したのでここに公開します。公開にあたって、かなり機能を盛り込みました。公開するのであれば、せっかくなのでもっともらしいアプリっぽくしてみました。マクロVBAもかなり大きくなってしまったので、VBAコードは次ページに掲載しています。意図的に、細かいテクニックをいろいろなパターンで使っていますので、VBA内のコメントを頼りにコードを読み解いていくのは、VBAの良い勉強になると思います。他ブックへのリンクエラーを探し解除するマクロ一旦掲載後に変更しています。ボタン・指定ブックの外部(他のブック)リンクを全て取得して一覧表示します。リンク切れかどうかにかかわらず、全ての外部(他のブック)リンクを出力します。・リンク判定として、リンク切れの場合は「×」、数式が複雑で判定困難な場合は「△」を出力します。・削除すべきリンクについては、削除欄に「する」を出力。ついて外部(他のブック)リンクは、正常かエラーかにかかわらずセル毎に全て一覧に出力します。行全体、列全体に対して(条件付き書式や入力規則が)リンク設定されている場合は膨大な数となってしまいます。連続セルが同一設定の場合はセル範囲で出力するようにしていますが、1行おきに交互に違う設定がしてある場合等、セル範囲でまとめて表現できない場合に出力行数が膨大になってしまう場合があります。超えた時点で処理を終了しています。最初は少ない数字にして確認したほうが良いでしょう。シート構成シートは、「リンクエラー検索」の一つだけです。入力規則ボタン等の登録マクロこれら以外にも存在する可能性はありそうですが、特殊なものになるでしょう。今後、対応したほうが良いようなものが出てきたら本ページおよびマクロに追加していきます。検索対象のブックを選択このマクロブック以外が開かれているかどうかで動作が分かれます。・他のブックが何も開かれていない場合ファイルを開くダイアログ(VBA標準のダイアログ)が表示されます。検索対象のブックを指定してください。・他のブックが開かれている場合ブックの選択(ユーザーフォーム)が表示されます。「Browse」でファイルを開くダイアログが開かれますのでそこで選択してください。結果が5行目以降に表示されます。・D列「リンク判定」は、リンク先のファイルの存在判定結果です。→関数がネストされている場合、ファイル名を全て正しく抽出するのが困難であり、ユーザーが自身で判定したほうが良いだろうということです。検索時には、削除推奨のリンクに対して「する」を設定しています。検索完了メッセージが表示されます。表示された一覧を確認し、E列の「する」を適切に指定してください。「削除」ボタンでE列「する」が削除されます。この「削除」はマクロ動作なので元に戻すことができません。対象ブックは「保存しない」で閉じることで対応してください。今後の事を踏まえると手動で削除したほうが良いでしょう。手動で削除することで、その操作がしっかりと頭に残りますので。他ブックへのリンクエラーを探し解除するマクロ一旦掲載後に変更しています。変更前後を掲載していますので、プロシージャー分割等の参考にしてください。他ブックへのリンクエラーを探し解除このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。他ブックへのリンクエラーを探し解除このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。