Excelで壊れたリンクを削除する3つの簡単な方法
Microsoft Excelは非常に強力なソフトウェアです。Excelのツールや機能を活用すれば、データセットに対してさまざまな操作を行うことができます。数式の作成に役立つExcel関数も多数用意されており、教育機関や企業では貴重なデータの管理にExcelファイルが広く活用されています。場合によっては、複数のExcelファイルをリンクさせて、異なるソースからデータを取り込むこともあるでしょう。しかし、リンクはさまざまな理由で切れてしまうことがあり、その結果、作業中のワークシートにエラーが発生します。そこで必要になるのが、壊れたリンクの削除です。この記事では、Excelで壊れたリンクを削除するための3つの簡単な方法をご紹介します。
以下のワークブックをダウンロードして、実際に練習してみてください。
Excelにおける壊れたリンクとは
データセットには、他のワークシートやワークブックへのリンクが含まれていることがよくあります。しかし、いくつかの要因によってリンクが切れてしまうことがあります。主な原因としては、参照元のワークシートやワークブックの名前変更、参照元ファイルの保存場所の変更、ファイル自体の削除などが挙げられます。これらが発生すると、アクティブなワークシート内のリンクが正しく機能しなくなり、エラーが表示されます。このようなリンクは壊れたリンク(broken links)と呼ばれます。
次のデータセットでは、D5セルがSampleファイル内のSheet1のD5セルにリンクされています。

しかし、Sampleファイル側でシート名が変更されたため、下図のように#REF!エラーが表示されています。この記事では、こうしたリンクを削除する方法を詳しく解説します。

Excelで壊れたリンクを削除する3つの簡単な方法
Excelで壊れたリンクを削除する方法は複数あります。ここでは、3つの方法をすべて順番に紹介していきますので、ぜひ最後までご覧ください。
1. 「リンクの編集」コマンドで壊れたリンクを削除する
最もシンプルな方法は、「リンクの編集」コマンドを使うことです。以下の手順に従って操作しましょう。
手順:
- まず、[データ]タブを開きます。
- 次に、[クエリと接続]グループにある[リンクの編集]を選択します。

- すると、[リンクの編集]ダイアログボックスが表示されます。
- 一覧から壊れたリンクを選択します。
- そして、[リンクの解除]ボタンをクリックします。

- 続いて、確認用の警告ダイアログボックスが表示されます。
- [リンクの解除]をクリックします。

- これで、ワークシート内のすべての壊れたリンクが削除されます。
関連記事:Excelでリンクを解除する方法(3つのクイックテクニック)
2. Excel VBAを使って壊れたリンクを削除する
また、VBAマクロを活用してこの作業を自動化することも可能です。以下の手順を参考にしてください。
手順:
- まず、[開発]タブを開きます。
- 次に、[コード]グループから[Visual Basic]を選択します。

- VBAエディターが開いたら、メニューから[挿入] ➤ [標準モジュール]をクリックします。
- その後、以下のコードをコピーして、モジュールウィンドウに貼り付けます。
Sub RemoveLinks()
alinks = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(alinks) Then
Sheets.Add
shtName = ActiveSheet.Name
Set summaryWS = ActiveWorkbook.Worksheets(shtName)
summaryWS.Range("A1") = "sheet"
summaryWS.Range("B1") = "location"
summaryWS.Range("C1") = "function"
summaryWS.Range("D1") = "file"
summaryWS.Range("E1") = "outcome"
For Each ws In ActiveWorkbook.Worksheets
If ws.Name <> summaryWS.Name Then
For Each Rng In ws.UsedRange
If Rng.HasFormula Then
For j = LBound(alinks) To UBound(alinks)
filePath = alinks(j) 'LinkSrouces returns full file path with file name
Filename = Right(filePath, Len(filePath) - InStrRev(filePath, "\")) 'extract just the file name
filePath2 = Left(alinks(j), InStrRev(alinks(j), "\")) & "[" & Filename & "]" 'file path with brackets
If InStr(Rng.Formula, filePath) Or InStr(Rng.Formula, filePath2) Then
nextrow = summaryWS.Range("A" & Rows.Count).End(xlUp).Row + 1
summaryWS.Range("A" & nextrow) = ws.Name
summaryWS.Range("B" & nextrow) = Replace(Rng.Address, "$", "")
summaryWS.Hyperlinks.Add Anchor:=summaryWS.Range("B" & nextrow), Address:="", SubAddress:="'" & ws.Name & "'!" & Rng.Address
summaryWS.Range("C" & nextrow) = "'" & Rng.Formula
summaryWS.Range("D" & nextrow) = filePath
summaryWS.Range("E" & nextrow) = linkStatusDescr(ActiveWorkbook.LinkInfo(CStr(filePath), xlLinkInfoStatus))
Exit For
End If
Next j
For Each namedRng In Names
If InStr(Rng.Formula, namedRng.Name) Then
filePath = Replace(Split(Right(namedRng.RefersTo, Len(namedRng.RefersTo) - 2), "]")(0), "[", "") 'remove =' and range in the file path
nextrow = summaryWS.Range("A" & Rows.Count).End(xlUp).Row + 1
summaryWS.Range("A" & nextrow) = ws.Name
summaryWS.Range("B" & nextrow) = Replace(Rng.Address, "$", "")
summaryWS.Hyperlinks.Add Anchor:=summaryWS.Range("B" & nextrow), Address:="", SubAddress:="'" & ws.Name & "'!" & Rng.Address
summaryWS.Range("C" & nextrow) = "'" & Rng.Formula
summaryWS.Range("D" & nextrow) = filePath
summaryWS.Range("E" & nextrow) = linkStatusDescr(ActiveWorkbook.LinkInfo(CStr(filePath), xlLinkInfoStatus))
Exit For
End If
Next namedRng
End If
Next Rng
End If
Next
Columns("A:E").EntireColumn.AutoFit
lastrow = summaryWS.Range("A" & Rows.Count).End(xlUp).Row
For r = 2 To lastrow
If ActiveSheet.Range("E" & r).Value = "Source unavailable" Then
countBroken = countBroken + 1
End If
Next
If countBroken > 0 Then
sInput = MsgBox("Do you want to remove broken links of status 'Source unavailable'?", vbOKCancel + vbExclamation, "Warning")
If sInput = vbOK Then
For r = 2 To lastrow
If ActiveSheet.Range("E" & r).Value = "Source unavailable" Then
Sheets(Range("A" & r).Value).Range(Range("B" & r).Value).ClearContents
dummy = MsgBox(countBroken & " broken links removed", vbInformation)
End If
Next
End If
End If
Else
MsgBox "links absent"
End If
End Sub
Public Function linkStatusDescr(statusCode)
Select Case statusCode
Case xlLinkStatusCopiedValues
linkStatusDescr = "data copied"
Case xlLinkStatusIndeterminate
linkStatusDescr = "status unavailable"
Case xlLinkStatusInvalidName
linkStatusDescr = "wrong name"
Case xlLinkStatusMissingFile
linkStatusDescr = "Source unavailable"
Case xlLinkStatusMissingSheet
linkStatusDescr = "worksheet absent"
Case xlLinkStatusNotStarted
linkStatusDescr = "yet to start"
Case xlLinkStatusOK
linkStatusDescr = "all okay"
Case xlLinkStatusOld
linkStatusDescr = "expired"
Case xlLinkStatusSourceNotCalculated
linkStatusDescr = "yet to compute"
Case xlLinkStatusSourceNotOpen
linkStatusDescr = "inactive source"
Case xlLinkStatusSourceOpen
linkStatusDescr = "active souorce"
Case Else
linkStatusDescr = "status undetected"
End Select
End Function
- 次に、F5キーを押してコードを実行します。
- すると、[マクロ]ダイアログボックスが表示されます。
- RemoveLinksを選択し、[実行]をクリックします。

- 実行すると、新しいワークシートが作成されます。
- そこでは、結果(outcome)列に「Source unavailable(参照元が利用不可)」と表示された壊れたリンクを確認できます。

- 同時に、同じワークシート上に警告ダイアログボックスが表示されます。
- [OK]をクリックします。

- これで、壊れたリンクがすべて削除されます。
関連記事:参照元が見つからないときにExcelでリンクを解除する方法(4つの方法)
3. 名前付き範囲から壊れたリンクを削除する
さらに、名前付き範囲にも壊れたリンクが残っている場合があります。以下の手順で、それらのリンクを削除しましょう。
手順:
- まず、[数式]タブを開きます。
- 次に、[定義された名前]ドロップダウンから[ネームマネージャー]を選択します。

- [ネームマネージャー]ダイアログボックスが表示されます。
- 壊れたリンク(名前)を選択します。
- その後、[削除]ボタンをクリックします。

- このようにして、名前付き範囲に残った壊れたリンクを削除できます。
関連記事:Excelで壊れたリンクを見つける方法(4つのクイックテクニック)
まとめ
本記事で紹介した方法を使えば、Excelで壊れたリンクを簡単に削除できるようになります。「リンクの編集」コマンドによる手軽な操作から、VBAによる一括処理、名前付き範囲の整理まで、状況に応じて使い分けてみてください。他にも便利な方法をご存じの方は、ぜひお知らせください。Excelに関する記事をもっと読みたい方は、ExcelDemyの公式サイトをチェックしてみてください。ご意見・ご質問があれば、下のコメント欄からお気軽にお寄せください。
関連記事
- ファイルを開く前にExcelでリンクを解除する方法(簡単な手順付き)
- Excelのリンクが頻繁に切れる原因とは?(3つの原因と解決策)
- Excelで壊れたハイパーリンクを修正する方法(5つの方法)
- 【解決済み】Excelで「リンクの解除」が機能しないときの対処法(7つの解決策)
- Excelでリンクを解除しながら値を保持する方法(3つの簡単な方法)
-
Word文書からExcelリンクを削除する方法|リンク作成から解除まで徹底解説
Microsoft Wordのリンク機能を使うと、Word文書内からリンク元のExcelファイルへアクセスできます。リンク先のExcelファイルで値を変更すると、Word側のデータも自動的に更新されるため、業務の効率化に非常に便利な機能です。しかし、必要がなくなった後もExcelへのリンクが残っていると、ファイル管理や共有の際に支障が出ることがあります。この記事では、Word文書からExcelリンクを効果的に削除する方法を、手順を追って詳しく解説します。 なお、本記事では練習用としてExcelファイルとWordファイルの2つのサンプルを使用しています。実際に操作しながら読み進めることで、より
-
Excelでハイパーリンクをすべて削除する5つの方法【テキストはそのまま残す】
Excelでは、URLを入力すると自動的にハイパーリンクへ変換されます。便利な機能ですが、必ずしも望ましいとは限りません。誤ってハイパーリンク付きのセルをクリックすると、意図せずWebサイトが開いてしまうこともあります。そこで「テキストは残したまま、ハイパーリンクだけを削除したい」というニーズが生まれます。本記事では、Excelの文字列を保持しながら、すべてのハイパーリンクを削除する基本的な方法を5つご紹介します。 練習用ワークブックについて 以下の手順は、実際にハイパーリンクが設定されたサンプルデータを使って確認できます。ご自身のブックでも同じ流れで試してみてください。 Excelですべ