VBAのReplace関数でリンクのアドレスの一部を変更
VBAのReplace関数でハイパーリンクの連続置換 Excel2013 マクロ講座 54回
複数のハイパーリンクの一部だけ変更するにはReplace関数
Webページの一覧表などで、アドレスの一部分だけ変更になりました。
ひとつずつ変更するのはたいへんです。今回は、マクロでハイパーリンクのアドレスの一部分を置換して修正するという内容です。
(サンプルファイルは、こちらから マクロ講座54回サンプルデータ)
VBAのReplace関数でハイパーリンクの修正マクロ
サブドメインやドメインが変更になったため、ハイパーリンクの表も修正しなければなりません。
下記の表では、kokodaneをsoredaneに変更することになりました。
下記の表では、kokodaneをsoredaneに変更することになりました。
Excel関数にREPLACE関数がありますが、VBAでもReplace関数があり、構文は次のようになります。
Replace(expression, find, replace[, start[, count[, compare]]])
REPLACE関数の構文に置換したいURLの文字列をあてはめると、
Replace(置換の対象となるリンク, "kokodane", "soredane")アクティブシートのリンクは、変数で指定します。今回はhにします。
Dim h As HyperlinkFor Each ステートメントと組み合わせます。
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です。コードを実行すると、見た目は変わりませんが、
アドレスを隣の列に抽出して確認します。変更されています。