目次にリンクを追加するマクロ〜Excel 2013 マクロ講座
Excel 2013マクロ講座 33回
シート名一覧にハイパーリンクを追加
前回のマクロ講座32回でシート名一覧を作成しました。シートが多い場合は、シートへのリンクも追加した方が便利です。
今回は、Do...Loopステートメントを利用します。
(サンプルファイルは、こちらから 2013マクロ講座33回サンプルデータ)
シート一覧にハイパーリンクを貼る
32回では、シートの1枚目にシート名一覧のリストを作成しました。

このマクロのコードは、


このマクロのコードは、
Sub シート一覧マクロ()
Dim i As Long
For i = 2 To Sheets.Count
Range("A" & i).Value = Worksheets(i).Name
Next i
End Sub
実行すると、A2からシート名をシートの分作成します。
シート名のリストがすでにあるので、リストがなくなるまという条件で、ハイパーリンクを追加するというコードにします。


Do...Loopステートメントは、4通りありますが、使うのは、
条件式は、リストが空になるつまり、Do Until Range("A" & i).Value = ""まで
ハイパーリンクを追加しなさい。
コードは、次のようになります。
Do Until 条件式 繰り返し実行する処理 [Exit Do] Loopの方です。
条件式は、リストが空になるつまり、Do Until Range("A" & i).Value = ""まで
ハイパーリンクを追加しなさい。
コードは、次のようになります。
Sub シート名一覧ハイパーリンク()
Dim i As Long
i = 2
Do Until Range("A" & i).Value = ""
Worksheets(i - 1).Hyperlinks.Add _
Anchor:=Range("A" & i) _
, Address:=ThisWorkbook.FullName _
, SubAddress:=Range("A" & i).Value & "!A1"
i = i + 1
Loop
End Sub
スポンサーリンク
スポンサーリンク
ハイパーリンクを追加するには、Hyperlinks.Add メソッドを使います。

AnchorとAddressは、必須ですが、他の3つの引数は省略可能です。

AnchorとAddressは、必須ですが、他の3つの引数は省略可能です。
実行すると、各シートへのハイパーリンクが追加されます。


ちなみにこのシートのハイパーリンクを削除するマクロは、
Sub ハイパーリンク削除()
Worksheets("このシート").Hyperlinks.Delete
End Subとなります。
今日の講義は以上です。お疲れ様でした。
スポンサーリンク
スポンサーリンク