Wendyには、TIFFファイルへの1,200を超えるハイパーリンクを含む単一のExcelワークシートがあります。 (これらはハイパーリンクであり、通常のリンクではありません。)Excelが機能しなくなり、シャットダウンする必要があったため、Emilyは自動保存ファイルを使用して以前に保存したファイルを復元しました。これで、以前は機能していたすべてのハイパーリンクが機能しなくなりました。彼女は共有ネットワークドライブ上のイメージへのハイパーリンクを持っていましたが、AutoSaveはC:ドライブを参照するようにハイパーリンクを変更しました。彼女は、それらを共有ネットワークドライブに戻す簡単な方法があるかどうか疑問に思います。

一見すると、Excelの通常の検索と置換機能を使用してハードドライブの指定を検索し(file:// c:のように)、ネットワークドライブに置き換えることができるように思われるかもしれません(file:// shareddriveのように)。問題は、このアプローチが問題の一部のみに対処することです。つまり、ハイパーリンクの表示部分のみが変更され、基になるハイパーリンク自体は変更されません。ハイパーリンク自体にアクセスする唯一の方法は、マクロを使用することです。

変更が必要なすべてのハイパーリンクが同じワークシート上にあると仮定すると、次のマクロを使用できます。

Sub FixHyperlinks1()

Dim wks As Worksheet     Dim hl As Hyperlink     Dim sOld As String     Dim sNew As String

Set wks = ActiveSheet     sOld = "c:\"      sNew = "S:\Network\"

For Each hl In wks.Hyperlinks         hl.Address = Replace(hl.Address, sOld, sNew)

Next hl End Sub

必要なのは、sOld変数とsNew変数に割り当てられた値を変更することだけです。マクロを実行しようとしたときにエラー(置換関数を含む行のエラー)が発生した場合は、置換関数がすべてのバージョンのExcelで使用できるわけではないためです。その場合、代わりに次のマクロを使用する必要があります。

Sub FixHyperlinks2()

Dim wks As Worksheet     Dim hl As Hyperlink     Dim sOld As String     Dim sNew As String

Set wks = ActiveSheet     sOld = "c:\"      sNew = "S:\Network\"

For Each hl In wks.Hyperlinks         hl.Address = Application.WorksheetFunction. _             Substitute(hl.Address, sOld, sNew)

Next hl End Sub

唯一の違いは、ワークシートの置換機能の使用であることに注意してください。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(8622)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excelribbon-Changing_Huge_Numbers_of_Hyperlinks [Changing Huge Numbers ofHyperlinks]