【Excel・エクセル】Excel bookの外部リンク(ハイパーリンク)エラー発生時の対処方法と根本対策

Last Updated on 2024年9月1日 by らくろぐ

HyperLinkで貼られた外部リンクを持つブックをネットワークドライブからコピーしたり、メールで受信したような場合、リンクがエラーになることがあります。

これらを解決するために、ブック内のHyperLinkを貼りなおす方法としてエクセルの機能からおこなう方法と、VBAの関数で処理する方法を紹介します。

安全ではない可能性?Excelのエラー?

この記事で紹介している方法はExcelのブックをコピーした時、コピー後の新規ブックがオリジナルのブックに対してリンクされてしまっている場合の自リンクへの貼りなおし方についてです。

こんなエラーが出たことはないでしょうか?

これは以下のような状態が原因として考えられられます。

  1. オリジナルブックの中に、シート間でのセル参照があるように式で記述されている状態。
  2. この状態からオリジナルブックをコピーして新しいブックを作成します。
  3. 新規ブックではシート間のセル参照式が、自ブックでなく、オリジナルのブックの当該シートを参照するようにハイパーリンクが貼られてしまい、意図したセル、シートを開くことができなくなることがあります。

要するに意図しない他の外部ブックを参照してしまっている箇所があるということですね。

この状態を解決する方法について、Excel機能とVBAで行う場合について以下に紹介します。

Excelの機能で行う方法

Excelでは以下の方法で回避することが可能です。

外部リンクを手動で更新する方法

Excelの機能でリンク先を手動で更新することで、この状態を解決することができます。

リンク先の更新は以下の手順で行います。

  • 「データ」→「リンクの接続」をクリック
  • 「リンク編集」のポップアップから「値の更新」を押す
  • これでリンクが確認できれば「OK」に戻ります。

接続が確認できない場合は、「リンク元の変更」で修正が可能です。

外部リンクを解除する方法

そのリンク自体が必要ないのであれば解除してしまうのも一つの方法です。

  • 「データ」→「リンクの接続」をクリック
  • 「リンク編集」のポップアップから「リンクの解除」で完了です。

メッセージを出ないようにする(リンクは変更しない)

外部リンクのエラー自体は既知の項目として特にメッセージを出す必要がなければ表示自体を出さないようにする、という方法もあります。

  • 「データ」→「リンクの接続」をクリック
  • 「リンク編集」のポップアップから「起動時の確認」をクリック。
  • 起動時の確認のポップアップから「メッセージを表示しない」のどちらかを選べば表示はでなくなります。

ちなみに、「リンクの自動更新も行わない」を選ぶと、メッセージも出さず、リンクの更新も実施しないため、実質「なにもしない」ことと同じです。ファイル内部のリンクがどのようなものかを理解した状態で、それにあったオプションを選ぶことが必要でしょう。

VBAで一括変換する方法

次に、Excelの機能を使っての変換でなく、VBAを使って一括変換できるよう、マクロを作成する方法を紹介します。

この場合、当然オリジナルブックのシートへの参照は外して、自ブックへのリンクに貼り直すことが目的なので、以下のように関数内を記述します。

※この場合、ファイルコピー自体もvbaで記述、実行しているので
その処理関数の中で自リンクに貼りなおす処理を記述してます。(以下例)

Sub ChLink()
strLinks = _ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)
ActiveWorkbook.ChangeLink _
    Name:=strLinks, _
    NewName:=ActiveWorkbook.FullName, _
    Type:=xlLinkTypeExcelLinks

End Sub

strLinksはこの場合、リンク情報がブック全体で1となります。
複数のブックに対してリンク情報をもっているときには、配列となるようなので、 これを1要素ずつ、自リンクにするかどうかを設定しなおす必要があります。

最後の
Type:=xlLinkTypeExcelLinks
は、自リンクを解除したい場合の記述です。

エクセルのハイパーリンクのエラー表示の対策方法まとめ

ハイパーリンクによるエクセルの外部リンクへのエラーが表示されてしまった時の対処方法と根本対策について紹介しました。

Excelの機能では以下の3つの方法があります。

  • 外部リンクを更新する
  • 外部リンクを解除する
  • 表示だけを出さないようにする

それぞれ、その時のファイルの目的にあった方法を選ぶようにしましょう。

またVBAを使って、マクロで一括変換する場合の記述方法もあわせて紹介しました。

こちらも他にVBAを組み込んでいるなど、ファイルの状況に合わせて選択していただくことが望ましいです。

以上、参考になればうれしいです。