ハイパーリンクの連続置換 Excel2013 マクロ講座 54回

複数のハイパーリンクの一部だけ変更するにはReplace関数

Webページの一覧表などで、アドレスの一部分だけ変更になりました。
ひとつずつ変更するのはたいへんです。今回は、マクロでハイパーリンクのアドレスの一部分を置換して修正するという内容です。

(サンプルファイルは、こちらから マクロ講座54回サンプルデータ

Replace関数でハイパーリンクの修正マクロ

サブドメインやドメインが変更になったため、ハイパーリンクの表も修正しなければなりません。
下記の表では、kokodaneをsoredaneに変更することになりました。
ハイパーリンクのアドレスの一部を変更するマクロ1
Excel関数にREPLACE関数がありますが、VBAでもReplace関数があり、構文は次のようになります。
Replace(expression, find, replace[, start[, count[, compare]]])
ハイパーリンクのアドレスの一部を変更するマクロ2
REPLACE関数の構文に置換したいURLの文字列をあてはめると、
Replace(置換の対象となるリンク, "kokodane", "soredane")
アクティブシートのリンクは、変数で指定します。今回はhにします。
Dim h As Hyperlink
For Each ステートメントと組み合わせます。
ハイパーリンクのアドレスの一部を変更するマクロ3
Sub ハイパーリンクのアドレスの一部だけ変更する1()
 Dim h As Hyperlink
    For Each h In ActiveSheet.Hyperlinks
        h.Address = Replace(h.Address, "kokodane", "soredane")
    Next h
End Sub
操作対象は、ActiveSheet.Hyperlinksです。コードを実行すると、見た目は変わりませんが、
ハイパーリンクのアドレスの一部を変更するマクロ4
アドレスを隣の列に抽出して確認します。変更されています。
ハイパーリンクのアドレスの一部を変更するマクロ5
スポンサーリンク
スポンサーリンク