Kerstineには、さまざまなハイパーリンクが含まれるワークシートがあります。彼女は、各リンクの一部だけを置き換える方法があるかどうか疑問に思っています。

たとえば、彼女はhttp://www.mysite.com/のインスタンスをc:/ documents / mycopy /に変更したいと思うかもしれません。リンクに何か追加がある場合は、その部分を残す必要があります。したがって、たとえば、元のリンクがhttp://www.mysite.com/thispage.htmlの場合、c:/documents/mycopy/thispage.htmlに変更されます。

これは、マクロを使用して簡単に実行できます。その理由は、ハイパーリンクは通常の文字列関数を使用して調べたり変更したりできるためです。

次のマクロは、問題に対処する簡単な方法を提供します。

Sub EditHyperlinks()

Dim lnkH As Hyperlink     Dim sOld As String     Dim sNew As String

sOld = "http://www.mysite.com"

sNew = "c:/documents/mycopy/"



For Each lnkH In ActiveSheet.Hyperlinks         lnkH.Address = Replace(lnkH.Address, sOld, sNew)

lnkH.TextToDisplay = Replace(lnkH.TextToDisplay, sOld, sNew)

Next End Sub

このルーチンは、現在のワークシート内のすべてのハイパーリンクをステップスルーし、必要に応じて各ハイパーリンクに変更を加えます。必要に応じて、ハイパーリンクと表示されるテキストの両方が変更されます。必要なのは、sOld文字列とsNew文字列を変更して、検索対象と置換先を指定することだけです。

このマクロは、VBAの新しいバージョンに組み込まれている置換機能を使用することに注意してください。置換機能を含まない古いバージョンを使用している場合(マクロを回そうとするとエラーが発生するためわかります)、の一部を置換する独自の置換関数を作成する必要があります。別の文字列。このような関数は、ExcelTipsの他の問題で取り上げられています。

注:

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

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

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