マクロで目次にリンクを追加
マクロ講座33回
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となります。
今日の講義は以上です。お疲れ様でした。