当サイトの記事にはプロモーションが含まれています。

Excelの外部参照リンクが更新できない!ブロックされる原因と今すぐできる完全対処法

パソコンパソコン・スマホ教室
スポンサーリンク

突然Excelを開いたら「#BLOCKEDエラー」が出て外部参照リンクが一切更新できなくなった——そんな経験はありませんか?あるいは、まだそうなっていないけれど「うちの会社は大丈夫かな?」と不安になっている方も多いはずです。実はこれ、個人のExcelスキルの問題ではなく、Microsoftが進める大規模なセキュリティ変更が原因です。知らずにいると、ある日突然、何年も運用してきた月次レポートや予算管理シートがまるごと動かなくなる可能性があります。

この記事を読めば、なぜ外部参照リンクがブロックされるのか、どのファイルが対象なのか、そして今日からできる具体的な対処法まで、初心者の方にもわかる言葉でまるごと理解できます。IT管理者の方には、レジストリ操作やグループポリシーの詳細設定まで解説しています。

この記事でわかること

ここがポイント!

  • Microsoftの外部参照リンクブロック変更の全体像と最新ステータス(2026年3月時点)
  • 外部参照リンクが更新できない原因の調べ方と具体的な解除・修正手順
  • IT管理者向けのグループポリシー・レジストリによる設定方法と代替ソリューション
スポンサーリンク
  1. そもそも「外部参照リンク」って何?内部参照との違いを知ろう
  2. 【2026年3月最新情報】Microsoftの外部参照リンクブロック変更、今どうなってる?
    1. 変更が適用されると具体的に何が起きるのか?
    2. ブロック対象になるのはどんなファイルタイプ?
  3. 外部参照リンクが更新できないときの原因の調べ方(初心者向け完全ガイド)
    1. セルの数式に含まれる外部参照を探す方法
    2. オブジェクト(図形・ボタン)に紐づいた外部マクロを探す方法
    3. 名前の定義(名前付き範囲)に含まれる外部参照を探す方法
    4. 「リンクの編集」で外部参照の全体像を確認する方法
  4. 外部参照リンクの解除・修正・対処法を状況別に解説
    1. パターン①リンクを値に変換して完全解除する(最もシンプルな方法)
    2. パターン②参照先ファイルのファイル形式を変更する
    3. パターン③IT管理者によるグループポリシー・レジストリ設定(法人向け)
  5. 外部参照リンクに頼らない!モダンな代替ソリューション
  6. 「リンクの解除」をしても消えない!幽霊リンク・ゾンビリンクの正体と完全退治法
    1. 幽霊リンクが発生する本当の原因
    2. それでも消えない「究極のゾンビリンク」退治法
    3. 情シス現場で実際によく起きるリンク問題あるある体験談
  7. 情シス10年以上の現場で本当に役立つVBAコード集(動作バージョン明記)
    1. VBAコード①外部参照リンクを全洗い出しして一覧シートに出力する(棚卸しマクロ)
    2. VBAコード②外部参照を値に一括変換して完全クリーンにする(安全な一括解除マクロ)
    3. VBAコード③フォルダ内の複数Excelファイルを一括スキャンして外部参照一覧を作る(企業の棚卸し用マスターマクロ)
  8. 情シス現場でしか知らない「やってはいけない」外部参照トラップ集
    1. トラップ①コピー&ペーストが外部参照を生む
    2. トラップ②グラフのデータソースは「リンクの編集」に出てこない場合がある
    3. トラップ③外部参照は「情報漏洩ルート」になる
    4. トラップ④「開始時の確認」メッセージを消すと問題が見えなくなる
  9. 外部参照の棚卸しを「定期業務」に組み込む——情シス運用の実践アドバイス
  10. ぶっちゃけこうした方がいい!
  11. 外部参照リンクのブロックに関するよくある疑問
    1. 現在使っているExcelのバージョンで変更の影響を受けますか?
    2. 「#BLOCKEDエラー」と「リンクが切れたエラー」は何が違いますか?
    3. 外部参照リンクを解除したら、元に戻せますか?
    4. メールで受け取ったExcelが外部参照エラーを出している場合はどうすればいいですか?
    5. 会社のIT管理者に相談すべきケースはどんな場合ですか?
  12. 今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
  13. まとめ今すぐ外部参照リンクの棚卸しを始めよう

そもそも「外部参照リンク」って何?内部参照との違いを知ろう

Excelのイメージ

Excelのイメージ

Excelの「外部参照リンク」とは、今開いているブックとは別のブック(別ファイル)にあるセルや範囲のデータを参照する機能のことです。たとえば、営業部門のA.xlsxと経理部門のB.xlsxがあって、A.xlsxの中に

='Sheet1'!A1

という数式が入っていたら、これが外部参照リンクです。B.xlsxの数字が変われば、A.xlsxの数字も自動で変わる——これが外部リンクの便利なところです。

一方で「内部参照」は、同じブックの中の別シートへの参照を指します。

=Sheet2!B2

のように書けば、同じファイルのSheet2にあるB2セルを参照できます。内部参照は参照元も参照先も同じファイルに閉じているので、ファイルを移動しても基本的にリンクは切れません。

外部参照が便利な理由は、部門をまたいだデータの一元管理ができる点です。月次売上レポート、部門別予算管理、在庫データの統合——こういった業務では複数のExcelファイルをリンクでつなぎ合わせて運用することが多く、日本の多くの職場でこの仕組みが根付いています。

ただし便利な反面、外部リンクには落とし穴があります。参照元ファイルが移動・削除されるとリンクが切れてエラーになること、セキュリティリスクがあること、そして2025年10月以降はMicrosoftのポリシー変更によってデフォルトでブロックされる可能性があること——これらを理解しておく必要があります。

【2026年3月最新情報】Microsoftの外部参照リンクブロック変更、今どうなってる?

ここが一番重要なポイントです。2025年7月30日、MicrosoftはMicrosoft 365管理センターで「ブロック対象ファイルタイプへの外部ワークブックリンクをデフォルトで無効化する」という大きな変更を発表しました。当初は2025年10月から段階的に展開される予定でした。

しかしここで、2025年11月25日に重大な更新がありました。MicrosoftのMessage Center(MC1125497)に、「この変更は現在保留中です(This change is currently on hold)」という告知が追加されたのです。Microsoftは「準備ができ次第、メッセージセンターを通じてお知らせします」と述べており、2026年3月現在、この変更の再開時期は明確に示されていません。

つまり、今この瞬間(2026年3月)は「まだブロックは強制適用されていない」状態です。ただし、「保留」は「撤回」ではありません。いつ再開されるかわからないため、今のうちに準備しておくことが強く推奨されます。

さらに、2026年3月のPatch Tuesdayでは、ExcelにCVE-2026-26144という新たな情報漏洩脆弱性が見つかっています。CopilotのAIエージェントを悪用してデータを外部に持ち出す可能性があるこの脆弱性は、Microsoftがなぜ外部リンクのセキュリティ強化を推進しているかを改めて示すものです。Microsoftがセキュリティ強化の姿勢を強めていることに変わりはなく、外部参照リンクの見直しは「いつかやること」ではなく「今すぐやること」です。

変更が適用されると具体的に何が起きるのか?

この変更が正式に再開・適用された場合、以下のような流れで影響が出ます。Excelのビルド2509以降を使っている場合、ブロック対象のファイルタイプへの外部リンクが含まれるブックを開くと、画面上部に警告バーが表示されます。これは「もうすぐこのリンクが使えなくなりますよ」という事前予告です。

続いてビルド2510以降では、グループポリシーが未設定のままだと実際の制限が始まります。新規リンクの作成や既存リンクの更新を試みると#BLOCKEDエラーが返ってきます。既存のリンクは「最後に正常に読み込まれた値」を保持したまま表示され続けますが、それ以後の更新はできません。ワークブックリンクペインには、どのリンクがブロックされているかが明示されます。

ブロック対象になるのはどんなファイルタイプ?

「ブロック対象ファイルタイプ」というのは、ExcelのTrust Center(トラストセンター)の「ファイルブロック設定」ですでにブロックリストに登録されているファイル形式のことです。具体的には、古いExcelファイル形式(.xls、.xlb、.xltなど、Excel 95〜97時代の形式)や、.exe、.bat、.msiといった実行可能ファイル形式が含まれます。

ファイルタイプ 該当例 リスクの内容
旧Excelファイル形式 .xls、.xlb、.xlt(Excel 95〜97形式) 現在のセキュリティ基準では不十分な脆弱性が存在
実行可能ファイル .exe、.bat、.msi、.dll マルウェアのペイロードとして悪用されるリスク
その他Trust Centerでブロックされている形式 管理者設定に依存 組織のポリシーによって異なる

重要なのは、.xlsx、.xlsm、.xlsbといった現在の標準的なExcelファイル形式は対象外だという点です。日常業務で使っている最新形式のExcelファイル同士をリンクしている場合は、今回の変更に直接影響を受けません。問題になるのは、古いシステムやレガシーファイルへのリンクを含むブックです。

外部参照リンクが更新できないときの原因の調べ方(初心者向け完全ガイド)

いざ「リンクが更新できない」「#BLOCKEDエラーが出る」という状況になったとき、まず何をすべきかを解説します。原因は大きく分けて、今回のMicrosoftポリシー変更によるものと、ファイルの移動・削除によるリンク切れの2種類があります。

セルの数式に含まれる外部参照を探す方法

セルの外部参照は、数式の中に別ブックの名前が角かっこで囲まれた形で入っています。たとえば

='Sheet1'!A1

のような形です。これを手動で1セルずつ確認するのは現実的ではないので、「検索と置換」機能を使います。

Ctrl+Fで「検索と置換」ダイアログを開き、検索する文字列に

[

(半角の角かっこ)を入力します。オプションで「検索場所」を「ブック」、「検索対象」を「数式」に設定してから「すべて検索」をクリックします。外部参照が存在する場合は、角かっこを含む数式が一覧表示されます。

オブジェクト(図形・ボタン)に紐づいた外部マクロを探す方法

見落としやすいのが、シート上の図形やボタンに登録されたマクロが外部参照になっているケースです。ブックの拡張子が.xlsmで、ボタンにマクロが登録されている場合は要注意です。

Ctrl+Gでジャンプ機能を開き、「セル選択」をクリックして「オブジェクト」を選択し「OK」を押します。シート上のすべてのオブジェクトが選択状態になるので、Tabキーで1つずつ選択を切り替えながら、右クリック→「マクロの登録」で参照先を確認します。ブック全体を一度には確認できないので、シートごとに繰り返す必要があります。

名前の定義(名前付き範囲)に含まれる外部参照を探す方法

セルや範囲に「名前」をつける「名前の定義」機能にも外部参照が紛れ込むことがあります。Ctrl+F3で「名前の管理」を開くと、ブック内で定義されたすべての名前と参照範囲が一覧表示されます。「参照範囲」の列に別のブック名(角かっこで囲われたファイル名)が含まれていたら、そこが外部参照です。

「リンクの編集」で外部参照の全体像を確認する方法

もっとも手っ取り早く全体を把握するには、「データ」タブ→「接続」グループ→「リンクの編集」を使います。ここには、現在のブックが参照しているすべての外部リンクのソースファイルがリスト表示されます。リンクが切れているものは「エラー」と表示され、ブロックされているものも確認できます。

外部参照リンクの解除・修正・対処法を状況別に解説

原因がわかったら、状況に応じて対処します。大きく「リンクを解除して値に変換する」「リンク先ファイルを修正する」「管理者設定でブロックを解除する」の3パターンがあります。

パターン①リンクを値に変換して完全解除する(最もシンプルな方法)

メールで受け取ったExcelや、参照元が不明なファイルを扱う場合は、外部参照を「現在の値」に置き換えてしまうのが一番シンプルです。

「データ」タブ→「クエリと接続」→「リンクの編集」を開きます。一覧からリンク元を選び、「リンクの解除」ボタンをクリックします。確認ダイアログが出るので「リンクの解除」を実行すると、外部参照数式が現在の値(固定値)に置き換わります。この操作は元に戻せないので、実行前にファイルのバックアップを必ず取っておきましょう

パターン②参照先ファイルのファイル形式を変更する

古い.xls形式のファイルを参照している場合、参照先のファイルを.xlsx形式に変換することでブロックを回避できます。参照先ファイルをExcelで開き、「名前を付けて保存」から「Excelブック(*.xlsx)」として保存します。その後、参照元ブックのリンクを更新してパスを新しいファイルに変更します。

この方法は根本的な解決策であり、Microsoftが推奨する「リンク先をより安全なファイル形式に切り替える」アプローチです。レガシーファイルを継続運用している企業はこの機会にファイル形式の整理を進めることが強く推奨されます。

パターン③IT管理者によるグループポリシー・レジストリ設定(法人向け)

業務上どうしても外部参照リンクを維持する必要がある場合、管理者がポリシー設定でブロックを解除することができます。ただし、セキュリティリスクが高まることを十分理解した上で実施してください。

レジストリ設定で対応する場合は、レジストリエディター(Win+R

regedit

)を管理者権限で開き、以下のキーに移動します。

HKCU\Software\Microsoft\Office\16.0\Excel\Security\FileBlock\FileBlockExternalLinks

このキーの値データを

0

に設定することで、外部リンクのブロックを無効化できます。Officeのバージョンが異なる場合は

16.0

の部分を対応するバージョン番号に変更してください。レジストリの編集はシステムに深刻な影響を与える可能性があるため、必ずバックアップを取ってから作業してください。

グループポリシーで一元管理する場合は、ExcelグループポリシーテンプレートのExcel Options → Security → Trust Center → File Block Settings → 「File Block includes external link files」を「無効」に設定します。この方法はMicrosoft Intuneなどのモバイルデバイス管理ツールと組み合わせて、組織全体に一括展開できます。

外部参照リンクに頼らない!モダンな代替ソリューション

今回のMicrosoftの変更は、単なる「お達し」ではなく、データ管理の在り方を見直す良いきっかけでもあります。外部参照リンクに頼った運用には、本質的な脆弱性があります。参照元が移動・削除されるとすぐ壊れる、古いファイル形式に依存しがち、管理が属人化しやすい——こういった問題は外部参照リンクの構造的な弱さです。

Power Query(パワークエリ)は、外部参照リンクの多くの用途を安全に代替できる機能です。「データ」タブから「データの取得」でファイルやフォルダを指定し、変換・整形した上でExcelに取り込むことができます。リンクとは異なり、接続情報が明示的に管理され、更新もボタン1つで実行できます。フィッシングのリダイレクトに利用されるような構造的な脆弱性もありません。

Microsoft Power BIは、複数ファイルのデータを統合・可視化するBI(ビジネスインテリジェンス)ツールです。月次レポートや部門横断の集計用途であれば、Excelの外部参照リンクよりもPower BIのデータモデルとして管理する方が、セキュリティ・保守性・視認性のすべての面で優れています。Microsoft 365に含まれているPower BI Desktopは無料で使い始められます。

クラウド共有ファイルとして運用する方法もあります。SharePointやOneDriveに置いた単一のExcelファイルを複数人で編集する形にすれば、「リンクで別ファイルからデータを引っ張る」という構造自体が不要になります。データの一元管理という目的を達成しながら、外部参照リンクのリスクをゼロにできます。

「リンクの解除」をしても消えない!幽霊リンク・ゾンビリンクの正体と完全退治法

Excelのイメージ

Excelのイメージ

情シス歴10年以上の経験の中で、これほど「なんで消えないんだ!」と頭を抱えた問題はありません。「リンクの編集」から「リンクの解除」を実行した。名前の定義も確認した。オブジェクトも調べた。それでもExcelを開くたびに「このブックには更新できないリンクが含まれています」というダイアログが出続ける——これが幽霊リンク(ゾンビリンク)と呼ばれる現象です。

幽霊リンクが発生する本当の原因

通常の手順で消せない外部参照の隠れ場所は、意外なところにあります。Excelでは「リンクの解除」ボタンで対処できないリンクが3種類あります。

1つ目は条件付き書式です。本来、条件付き書式は他のブックへの参照ができない仕様ですが、別ブックからシートをコピーしてきたときに、コピー元の条件付き書式の参照先が外部リンクとして変換・残留することがあります。「ホーム」タブ→「条件付き書式」→「ルールの管理」から、全シートの条件付き書式を確認し、外部パスが含まれているルールを削除してください。

2つ目はデータの入力規則(ドロップダウンリストなど)です。別ブックのリストを参照するドロップダウンが設定されているセルがあると、リンクとして認識されます。「ホーム」タブ→「検索と選択」→「条件を選択してジャンプ」→「データの入力規則」→「すべて」で該当セルに飛び、内容を確認します。

3つ目はピボットテーブルとグラフのデータソースです。他ブックのデータを元に作成したピボットテーブルやグラフを、そのままシートごとコピーすると外部参照が残ります。グラフを右クリック→「データの選択」、ピボットテーブルは「ピボットテーブル分析」タブ→「データソースの変更」でそれぞれ参照先を確認してください。

それでも消えない「究極のゾンビリンク」退治法

上記を全部試してもまだ消えない——そんな経験が実際に何度もありました。このケースに効く最終手段が2つあります。

方法Aファイル名を参照元と同名にして同パスに保存する

「リンクの編集」に表示されているリンク元のフルパスと完全に同じ場所に、今作業しているファイルを「そのリンク元のファイル名」で一時的に保存します。つまりExcelに「参照先はここにいるよ」と勘違いさせることで、外部参照が内部参照として解決され、再保存時にリンクが消滅するという仕組みです。その後は元のファイル名・場所に戻して保存し直せばOKです。

方法Bシートを全部新規ブックに移動する

全シートを選択して新規ブックに「移動(コピーではなく移動)」します。移動後のブックを保存し直すと、Excelがリンク情報を再構築する過程でゾンビリンクが消えることがあります。ただし移動後はページ設定やVBAモジュールの確認が必要です。

情シス現場で実際によく起きるリンク問題あるある体験談

「前任者が退職してから、誰も触れなくなった月次集計Excelがある。開くたびにリンクの確認ダイアログが出るけど、何に参照しているのかも誰もわからない」——これは本当によく相談される話です。こういうファイルはたいてい、退職した社員のPCのローカルパス(例

C:\Users\田中\Desktop\...

)を参照しています。そのPCはもうないのでリンクは永遠に解決できません。さらに悪いことに、社内ネットワークの構成情報がパスから丸見えになっているので、情報漏洩リスクもあります。

もう1つよくあるのが「チームで共有しているExcelをコピーして加工したら、いつの間にか元のファイルへの外部参照が生まれていた」というケースです。これはコピー元が外部参照を持っていたケースと、同一ブック内のセルを含む範囲を別ブックにコピーしたときに内部参照が外部参照に変換されるケースがあります。セルを別ブックにコピーするときは必ず「値のみ貼り付け」か「数式の貼り付け」を意識することが鉄則です。

情シス10年以上の現場で本当に役立つVBAコード集(動作バージョン明記)

ここからはVBAコードを紹介します。ただし1つ重要な前提を伝えておきます。VBAコードを実行する前は必ずファイルのバックアップを取ってください。また、マクロを保存する場合はファイル形式を.xlsm(マクロ有効ブック)に変更して保存する必要があります。.xlsxのままだとマクロは保存されません。

VBAコード①外部参照リンクを全洗い出しして一覧シートに出力する(棚卸しマクロ)

Microsoftの変更に備えるために、まず「自社にある何十・何百ものExcelファイルのどれが外部参照を持っているか」を調べる必要があります。これは手動では絶望的な作業です。まず個別のブックの外部参照を全部洗い出すマクロから紹介します。

動作確認バージョンExcel 2016 / Excel 2019 / Excel 2021 / Microsoft 365(Windows版)
Mac版のExcelでも基本的に動作しますが、ファイルパスの区切り文字が異なる(

\

ではなく

/

)ため、Mac環境では若干の調整が必要です。Excel 2010・2013でも動作しますが、古すぎるバージョン(2007以前)は非推奨です。


Sub ExternalLinkAudit()
'外部参照リンクを全洗い出しして「リンク一覧」シートに出力するマクロ
'動作確認Excel 2016 / 2019 / 2021 / Microsoft 365(Windows)

Dim wsReport As Worksheet
Dim wsTarget As Worksheet
Dim rCell As Range
Dim rFormulas As Range
Dim rowNum As Long
Dim linkArr As Variant

'既存の「リンク一覧」シートを削除して作り直す
Application.DisplayAlerts = False
On Error Resume Next
ThisWorkbook.Sheets("リンク一覧").Delete
On Error GoTo 0
Application.DisplayAlerts = True

'新しい「リンク一覧」シートを先頭に挿入
Set wsReport = ThisWorkbook.Sheets.Add(Before:=ThisWorkbook.Sheets(1))
wsReport.Name = "リンク一覧"

'ヘッダー行を作成
wsReport.Cells(1, 1).Value = "シート名"
wsReport.Cells(1, 2).Value = "セルアドレス"
wsReport.Cells(1, 3).Value = "数式の内容"
wsReport.Cells(1, 4).Value = "現在の値"
wsReport.Cells(1, 5).Value = "参照元ファイル名"
wsReport.Rows(1).Font.Bold = True

rowNum = 2

'全シートをスキャン
For Each wsTarget In ThisWorkbook.Worksheets
If wsTarget.Name = "リンク一覧" Then GoTo NextSheet

On Error Resume Next
Set rFormulas = wsTarget.UsedRange.SpecialCells(xlCellTypeFormulas)
On Error GoTo 0

If Not rFormulas Is Nothing Then
For Each rCell In rFormulas
'角かっこ「[」が含まれていれば外部参照
If InStr(1, rCell.Formula, "[") > 0 Then
wsReport.Cells(rowNum, 1).Value = wsTarget.Name
wsReport.Cells(rowNum, 2).Value = rCell.Address(False, False)
wsReport.Cells(rowNum, 3).Value = "'" & rCell.Formula
wsReport.Cells(rowNum, 4).Value = CStr(rCell.Value)

'参照元ファイル名だけを抽出(の部分)
Dim p1 As Long, p2 As Long
p1 = InStr(rCell.Formula, "[")
p2 = InStr(rCell.Formula, "]")
If p1 > 0 And p2 > p1 Then
wsReport.Cells(rowNum, 5).Value = Mid(rCell.Formula, p1 + 1, p2 - p1 - 1)
End If

rowNum = rowNum + 1
End If
Next rCell
End If

NextSheet:
Next wsTarget

'列幅を自動調整
wsReport.Columns("A:E").AutoFit

'LinkSourcesでリンク元一覧も追記
linkArr = ThisWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(linkArr) Then
rowNum = rowNum + 2
wsReport.Cells(rowNum, 1).Value = "【リンクの編集で認識されている参照元ファイル一覧】"
wsReport.Cells(rowNum, 1).Font.Bold = True
rowNum = rowNum + 1
Dim i As Long
For i = 1 To UBound(linkArr)
wsReport.Cells(rowNum, 1).Value = linkArr(i)
rowNum = rowNum + 1
Next i
End If

'結果を通知
If rowNum > 2 Then
MsgBox "外部参照リンクの一覧を「リンク一覧」シートに出力しました。" & vbCrLf & _
"セル内の外部参照数" & (rowNum - 2) & " 件", vbInformation, "棚卸し完了"
Else
MsgBox "このブックには外部参照リンクは見つかりませんでした。", vbInformation, "棚卸し完了"
ThisWorkbook.Sheets("リンク一覧").Delete
End If

End Sub

このマクロを実行すると、「リンク一覧」という名前のシートが新たに作成され、どのシートのどのセルに外部参照が存在するか、数式の内容、現在の値、参照元ファイル名がすべて一覧表示されます。ファイルの棚卸し作業の第一歩として非常に有効です。

VBAコード②外部参照を値に一括変換して完全クリーンにする(安全な一括解除マクロ)

棚卸しが終わって「このファイルの外部参照はもう不要だ」と判断したら、次は一括で値に変換します。手動の「リンクの解除」より細かい制御ができるのがVBAの強みです。

動作確認バージョンExcel 2016 / Excel 2019 / Excel 2021 / Microsoft 365(Windows版)
注意このマクロは実行すると外部参照数式が現在の値に置き換わります。元に戻すことはできません。必ずバックアップを取ってから実行してください。


Sub BreakExternalLinksToValues()
'外部参照を含むセルを値に変換するマクロ(バックアップ必須!)
'動作確認Excel 2016 / 2019 / 2021 / Microsoft 365(Windows)

Dim wsTarget As Worksheet
Dim rCell As Range
Dim rFormulas As Range
Dim convertCount As Long
Dim answer As Integer

'実行前の確認ダイアログ
answer = MsgBox("外部参照リンクを含むすべてのセルを「現在の値」に変換します。" & vbCrLf & _
"この操作は元に戻せません。バックアップは取りましたか?" & vbCrLf & vbCrLf & _
"実行する場合は「はい」を押してください。", vbYesNo + vbExclamation, "実行確認")

If answer = vbNo Then
MsgBox "処理を中止しました。", vbInformation
Exit Sub
End If

convertCount = 0

For Each wsTarget In ThisWorkbook.Worksheets
On Error Resume Next
Set rFormulas = wsTarget.UsedRange.SpecialCells(xlCellTypeFormulas)
On Error GoTo 0

If Not rFormulas Is Nothing Then
For Each rCell In rFormulas
If InStr(1, rCell.Formula, "[") > 0 Then
'外部参照セルを値に変換(エラー値の場合は空白に)
If IsError(rCell.Value) Then
rCell.ClearContents
Else
rCell.Value = rCell.Value
End If
convertCount = convertCount + 1
End If
Next rCell
End If
Next wsTarget

'名前の定義にある外部参照も処理
Dim nm As Name
Dim deleteNames() As String
Dim delCount As Long
delCount = 0

For Each nm In ThisWorkbook.Names
If InStr(1, nm.RefersTo, "[") > 0 Then
delCount = delCount + 1
ReDim Preserve deleteNames(1 To delCount)
deleteNames(delCount) = nm.Name
End If
Next nm

If delCount > 0 Then
Dim j As Long
For j = 1 To delCount
On Error Resume Next
ThisWorkbook.Names(deleteNames(j)).Delete
On Error GoTo 0
Next j
End If

MsgBox "処理が完了しました。" & vbCrLf & _
"変換したセル数" & convertCount & " 件" & vbCrLf & _
"削除した名前定義" & delCount & " 件", vbInformation, "完了"

End Sub

このマクロは名前の定義の外部参照も合わせて削除します。実行後は「リンクの編集」を開いて参照が残っていないことを確認してください。条件付き書式や入力規則の外部参照は手動での対処が必要なため、このマクロでは処理対象外です。

VBAコード③フォルダ内の複数Excelファイルを一括スキャンして外部参照一覧を作る(企業の棚卸し用マスターマクロ)

情シス担当者が本当に欲しいのは「フォルダ内の全Excelを一括でスキャンして、どのファイルがどこに外部参照を持っているか」を一気に把握できる機能です。このマクロは、指定フォルダ内のすべての.xlsxおよび.xlsmファイルを開かずに(正確にはバックグラウンドで開いて)スキャンし、結果を1枚のシートにまとめます。

動作確認バージョンExcel 2016 / Excel 2019 / Excel 2021 / Microsoft 365(Windows版)
注意対象ファイルが多い場合は時間がかかります。また、パスワード保護されたファイルはスキップされます。このマクロ自体は.xlsmファイルとして保存してください。


Sub ScanFolderForExternalLinks()
'指定フォルダ内の全Excelファイルの外部参照を一括スキャンするマクロ
'動作確認Excel 2016 / 2019 / 2021 / Microsoft 365(Windows)

Dim folderPath As String
Dim fileName As String
Dim wb As Workbook
Dim wsReport As Worksheet
Dim wsTarget As Worksheet
Dim rCell As Range
Dim rFormulas As Range
Dim rowNum As Long
Dim fileCount As Long
Dim linkCount As Long

'対象フォルダを選択ダイアログで指定
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "スキャンするフォルダを選択してください"
If .Show = False Then
MsgBox "処理を中止しました。", vbInformation
Exit Sub
End If
folderPath = .SelectedItems(1)
End With

If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\"

'結果出力用シートを準備
Application.DisplayAlerts = False
On Error Resume Next
ThisWorkbook.Sheets("スキャン結果").Delete
On Error GoTo 0
Application.DisplayAlerts = True

Set wsReport = ThisWorkbook.Sheets.Add(Before:=ThisWorkbook.Sheets(1))
wsReport.Name = "スキャン結果"
wsReport.Cells(1, 1).Value = "ファイル名"
wsReport.Cells(1, 2).Value = "シート名"
wsReport.Cells(1, 3).Value = "セルアドレス"
wsReport.Cells(1, 4).Value = "参照元ファイル"
wsReport.Cells(1, 5).Value = "数式"
wsReport.Rows(1).Font.Bold = True
rowNum = 2
fileCount = 0
linkCount = 0

'ステータスバーに進捗を表示
Application.DisplayStatusBar = True

'画面更新を止めて高速化
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

fileName = Dir(folderPath & "*.xls*")

Do While fileName <> ""
'自分自身はスキップ
If fileName <> ThisWorkbook.Name Then
Application.StatusBar = "スキャン中: " & fileName

On Error Resume Next
Set wb = Workbooks.Open(folderPath & fileName, _
ReadOnly:=True, _
UpdateLinks:=0, _
AddToMru:=False)
On Error GoTo 0

If Not wb Is Nothing Then
fileCount = fileCount + 1

For Each wsTarget In wb.Worksheets
On Error Resume Next
Set rFormulas = wsTarget.UsedRange.SpecialCells(xlCellTypeFormulas)
On Error GoTo 0

If Not rFormulas Is Nothing Then
For Each rCell In rFormulas
If InStr(1, rCell.Formula, "[") > 0 Then
wsReport.Cells(rowNum, 1).Value = fileName
wsReport.Cells(rowNum, 2).Value = wsTarget.Name
wsReport.Cells(rowNum, 3).Value = rCell.Address(False, False)

Dim p1 As Long, p2 As Long
p1 = InStr(rCell.Formula, "[")
p2 = InStr(rCell.Formula, "]")
If p1 > 0 And p2 > p1 Then
wsReport.Cells(rowNum, 4).Value = Mid(rCell.Formula, p1 + 1, p2 - p1 - 1)
End If
wsReport.Cells(rowNum, 5).Value = "'" & rCell.Formula
rowNum = rowNum + 1
linkCount = linkCount + 1
End If
Next rCell
End If
Next wsTarget

wb.Close SaveChanges:=False
Set wb = Nothing
End If
End If

fileName = Dir()
Loop

'後片付け
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.StatusBar = False
wsReport.Columns("A:E").AutoFit

MsgBox "スキャン完了!" & vbCrLf & _
"スキャンしたファイル数" & fileCount & " 件" & vbCrLf & _
"外部参照が見つかったセル数" & linkCount & " 件" & vbCrLf & vbCrLf & _
"結果は「スキャン結果」シートを確認してください。", vbInformation, "完了"
End Sub

このマクロは情シス担当者が「来週までに全社のExcelの外部参照を把握してリスト化しろ」という指示を受けたときに、文字通り数分〜数十分で答えを出してくれます。自分の手元で開発・使用したものをベースに整理したコードで、特にファイルを読み取り専用かつリンク更新なしで開く点がポイントです(

ReadOnly:=True, UpdateLinks:=0

)。これがないとファイルを開くたびにリンク更新ダイアログが出て作業が止まります。

情シス現場でしか知らない「やってはいけない」外部参照トラップ集

教科書や一般的な解説サイトにはほぼ載っていない、実務でハマりがちな落とし穴を紹介します。

トラップ①コピー&ペーストが外部参照を生む

最もよくある外部参照の発生源は、実は「別ブックからのコピー」です。参照元が外部参照を持つセルを含む範囲を、別ブックにコピー&ペーストすると、その外部参照がそのまま引き継がれます。さらに厄介なのは、元データに外部参照がなくても、同一ブックの別シートへの内部参照が「別ブックにコピーされた瞬間に外部参照に自動変換される」ことです。例えばSheet1のA1に

=Sheet2!B1

という内部参照があるとき、これをC.xlsxにコピーすると

='Sheet2'!B1

という外部参照になります。貼り付け時に「値のみ貼り付け(Ctrl+Shift+V→値)」を徹底するだけで、この問題の9割は防げます。

トラップ②グラフのデータソースは「リンクの編集」に出てこない場合がある

Excelのグラフを別ブックからシートごとコピーしたとき、グラフのデータソースは外部参照になります。しかしこの外部参照は「リンクの編集」ダイアログには表示されないことがあります。そのためリンクの解除をしても消えず、幽霊リンクの原因になります。グラフを選択して「データの選択」→「グラフデータの範囲」を確認し、外部パスが含まれていたらデータソースを現在のブック内のデータに変更する必要があります。

トラップ③外部参照は「情報漏洩ルート」になる

これは情シスの視点では絶対に忘れてはいけない話です。Excelの外部参照には参照元ファイルのフルパスが数式に含まれます。例えば

='\\192.168.1.10\共有\経営企画\Sheet1'!A1

というような形です。このExcelを社外の人間に送ってしまうと、社内ネットワークのIPアドレス、共有フォルダの構成、「経営企画」というフォルダ名、「予算マスタ」というファイルが存在することまで外部に漏洩します。社外に送るExcelは必ず外部参照がないか確認し、リンク解除を徹底することが鉄則です。これは情報セキュリティポリシーとして明文化している企業もありますが、現場で徹底されているかはまた別問題です。

トラップ④「開始時の確認」メッセージを消すと問題が見えなくなる

Excelを開くたびに出るリンクの更新確認ダイアログをうっとうしく感じて、「起動時の確認」設定を「メッセージを表示せずリンクを更新しない」に変えているケースがあります。これ自体は手順として間違いではありませんが、設定を変えてもリンクは残っているということを忘れがちです。ダイアログが消えても外部参照は生きていて、データは古い値のまま固定表示されます。「あれ、いつのまにかデータが更新されなくなった」という問い合わせの多くは、このパターンです。

外部参照の棚卸しを「定期業務」に組み込む——情シス運用の実践アドバイス

Microsoftの変更対応は「1回やれば終わり」ではありません。業務でExcelを使い続ける限り、外部参照は日々生まれ続けます。10年以上情シスの現場にいると、「緊急対応より定期メンテナンスの方が圧倒的にコストが低い」ということが染み込んでいます。

具体的には、先ほど紹介した「フォルダ内一括スキャンマクロ」を月に1度、あるいは四半期に1度のタイミングで実行し、外部参照の発生状況を記録していくことをお勧めします。スキャン結果をそのまま保管していけば、どの部門・どのファイルで外部参照が発生しやすいかという傾向が見えてきます。傾向がわかれば、問題が集中している部門への操作教育や、テンプレートの見直しに活かせます。

また、社内のExcelファイルをSharePointやOneDriveで管理することも、外部参照問題の根本的な抑制策になります。クラウド上の同一テナントのファイル間であれば、リンクが切れにくくなりますし、ファイルの移動・削除に対する可視性も上がります。「Excelはローカルで管理するもの」という認識を変えるだけで、外部参照トラブルの発生頻度は大きく下がります。

さらに、新入社員や異動者向けのExcel操作ルールとして「社外に送るファイルはリンクの編集を必ず確認する」「別ブックへのコピーは値貼り付けを基本とする」「古い.xls形式は使わない」の3点をルール化するだけで、現場の混乱が大幅に減ります。

ぶっちゃけこうした方がいい!

ここまで長々と書いてきましたが、情シスとして正直な本音を言います。

外部参照リンクの問題と10年以上向き合ってきて思うのは、「外部参照リンクを使い続けるための戦いをやめること」が一番の解決策だということです。

Microsoftが今回の変更を「保留」にしたのは、現場への影響が大きすぎたからです。でもこれは「外部参照を使い続けていい」というメッセージではありません。「企業がレガシーな運用から抜け出せていない現状への一時的な配慮」でしかない。保留が終われば変更は再開されます。

個人的にぶっちゃけ最も楽で効率的だと思う対処は、Power Queryへの移行を「今週中に1ファイルだけ試してみること」から始めることです。「Power Query=難しい」と思っている人が多いですが、実は「データ」タブ→「データの取得」→「ファイルから」→「Excelブックから」を選ぶだけで、外部参照リンクと同じことが5クリックで実現できます。しかも接続情報が明示的に管理され、更新ボタン1つでデータが最新化され、ブロックされる心配もない。

幽霊リンクを追いかける時間、ゾンビリンクを退治する時間、古い.xlsファイルを変換する時間——そのすべての時間は、Power QueryやPower BIを覚える時間に使った方が、長期的には圧倒的に生産性が上がります。

「今のExcelが動いているうちに移行を後回しにしたい」という気持ちはよくわかります。でもMicrosoftの変更が再開されたとき、「知っていたのに何もしなかった」という状態になるのが一番しんどい。10年以上の経験から言えば、「動いているうちに変える」のと「壊れてから直す」のとでは、工数も精神的ダメージも桁違いです。今がそのタイミングです。

このサイトをチップで応援

外部参照リンクのブロックに関するよくある疑問

現在使っているExcelのバージョンで変更の影響を受けますか?

今回の変更が対象とするのはMicrosoft 365(サブスクリプション版)のExcelです。Excel 2019やExcel 2021などの永続ライセンス版は基本的に対象外ですが、将来的な更新で同様の変更が適用される可能性はあります。また、Excel for the web(ブラウザ版)はもともと外部ワークブックリンクをサポートしていないため、影響はありません。自分がどのバージョンを使っているかは、「ファイル」→「アカウント」→「Excelのバージョン情報」で確認できます。

「#BLOCKEDエラー」と「リンクが切れたエラー」は何が違いますか?

「リンクが切れた」場合は、参照元のファイルが移動・削除されたか、ネットワーク上にアクセスできない状態です。この場合は「リンクの編集」でソースファイルのパスを修正することで解消できます。一方、#BLOCKEDエラーは、参照先のファイルは存在しているけれどもExcelのポリシーによってアクセスが意図的にブロックされている状態です。対処法が異なるので、エラーを見たときに区別することが重要です。ワークブックリンクペインを開くと、どのリンクがブロックによって失敗しているかが明確に表示されます。

外部参照リンクを解除したら、元に戻せますか?

「リンクの解除」を実行すると、数式が現在の値(固定値)に置き換わります。この操作は元に戻すことができません(Ctrl+Zも効かない場合があります)。実行前には必ずファイルのバックアップを取ってください。大切な業務ファイルであれば、別名で保存してからリンク解除を試すのが安全です。

メールで受け取ったExcelが外部参照エラーを出している場合はどうすればいいですか?

メールで受け取ったExcelは参照元のファイルにアクセスできない環境にある場合がほとんどです。送り主に「外部参照を値に変換してから送ってほしい」とお願いするのが最善ですが、手元で対処する場合は「リンクの解除」で現在の表示値に変換してしまいましょう。業務データの正確性が重要な場合は、念のず送り主に最新の数値を確認することをお勧めします。

会社のIT管理者に相談すべきケースはどんな場合ですか?

レジストリの編集やグループポリシーの変更は、一般ユーザーが単独で行うべき操作ではありません。特に会社支給のPCでは、IT部門の管理下にある設定を個人で変更することがセキュリティポリシー違反になる場合があります。「業務でどうしても外部参照リンクが必要」「特定のファイル形式へのリンクを維持しなければならない」という場合は、IT管理者に事情を説明し、組織のポリシーとして例外対応を依頼してください。

今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?

LINE公式

いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」

あなたはこんな経験はありませんか?

✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦

平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。

LINEでメッセージを送れば即時解決!

すでに多くの方が私の公式LINEからお悩みを解決しています。

最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。

誰でも無料で使えますので、安心して使えます。

問題は先のばしにするほど深刻化します。

小さなエラーがデータ消失重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。

あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。

相談しに行く

ぜひ、あなたの悩みを私に解決させてください。

まとめ今すぐ外部参照リンクの棚卸しを始めよう

Excelの外部参照リンクがブロックされる問題は、2026年3月現在、Microsoftが変更を「保留中」としているため直接の強制適用はされていません。しかし、変更が撤回されたわけではなく、いつ再開されるかはわかりません。準備を怠ると、再開のタイミングで業務が突然止まるリスクがあります。

今日から始められることは明確です。まず自分が管理しているExcelファイルに外部参照リンクが含まれているかを「検索と置換」や「リンクの編集」で棚卸しすることです。次に、古い.xls形式のファイルへのリンクがあれば参照先を.xlsx形式に変換し、不要なリンクは値に変換して解除します。そして中長期的には、Power QueryやPower BIなどのモダンなツールへの移行を検討することで、外部参照リンクに依存した構造そのものを見直せます。

Microsoftのセキュリティ強化は、2026年3月のPatch TuesdayでもExcelの新しい脆弱性(CVE-2026-26144)が修正されたように、継続的に進んでいます。外部リンクのリスクは現実のものです。「変更が来てから考える」ではなく、「変更が来る前に備える」姿勢で、業務の安定と安全を両立させていきましょう。

この記事を書いた人
この記事を書いた人

企業の情報システム部門で10年以上、PC・アカウント・社内ネットワーク・Microsoft 365/Google Workspace運用を担当。年間数百件の問い合わせ対応(PC不調、メール送受信、Excel/Word資料、Teams会議、スマホ連携など)を通じて、初心者がつまずくポイントを「再現→原因切り分け→最短解決」の手順に落とし込んできました

現場や身近で実際に起きたトラブルをベースに、手順だけでなく「なぜそうなるか」「失敗しやすい落とし穴」「安全な設定(セキュリティ)」まで含めて解説します。

相談窓口(問い合わせ/LINE等)を設け、記事で解決しないケースも個別にサポートしていますので「パソコンが急に動かなくなった」「スマホの設定がわからない」などの悩みは一人で抱え込まず、お気軽にご相談ください。

【お問い合わせは下記URLから】
https://m32006400n.xsrv.jp/inquiry-form/

【公式LINEは下記URLから】
https://lin.ee/t8TDjcj

uri uriをフォローする
スポンサーリンク
よかったらシェアしてね! /
uri uriをフォローする

コメント

タイトルとURLをコピーしました