Excel VBA

【Excel VBA】【マクロ】【Tips】シート名の一覧にリンクを設定するマクロ

こんにちは!Lenocoです。本日も見てくださりありがとうございます。

今回はリンクの設定方法を学びましょう!

リンク付きシート名の一覧を取得するマクロ

前回シート名の一覧を取得するマクロを作成しましたが、シート名だけでなく、
そのシートへのリンクが設定されていたらとても便利ですよね。
今回は、各シート名にそのシートのA1セルへのリンクを設定するマクロを作成します。

コード

Sub DisplaySheetList2()

    Const START_ROW As Long = 2
    Dim sh As Worksheet
    Dim row As Long
    
    row = START_ROW
    
    For Each sh In ThisWorkbook.Sheets
        ActiveSheet.Hyperlinks.Add Anchor:=ActiveSheet.Cells(row, "B"), Address:="", SubAddress:=sh.name & "!A1", TextToDisplay:=sh.name
        row = row + 1
    Next sh
    
End Sub

コードの説明

前回と変わったところのみ説明します。
For文の中で、シート名をB列に入れる処理を行っていましたが、その代わりに
HyperlinksのAddメソッドを使ってリンクの設定をしていきます。
パラメータ(引数)がいくつかあるので説明していきます。
※この他にもありますが、今回は使用していないため割愛します。

Anchor ハイパーリンクのアンカーを指定します。
つまり、ハイパーリンクを設定する箇所をRangeオブジェクト、またはShapeオブジェクトで指定します。
今回はB列に一覧を作成していくので、「ActiveSheet.Cells(row, “B”)」と設定します。
Address ハイパーリンクのアドレスを指定します。
URLやファイルパス、メールアドレスなどを入力しますが、今回は使用しないので「””」を指定しておきます。
SubAddress ハイパーリンクのサブアドレスを指定します。
ワークシートのリンクはこちらで設定します。
「シート名!A1」となるように文字列を作成します。
TextToDisplay ハイパーリンクで表示されるテキストを指定します。
シート名をそのまま表示したいので「sh.name」を設定しています。

さいごに

リンクがついたことでさらに便利になりました!
シートがたくさんあった場合、手動でリンクを貼るのはとっても大変なので、
ぜひマクロでちゃちゃっと済ませちゃいましょう!

Lenoco

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です