マクロ作成についての質問です初心者です。入力の自動化を考えておりシートの新規作成を行いシートの名前を変更するところまではできたのですが目次を作成する上でのハイパーリンクも自動化できないか考えております。目次ページのA3セルにマクロで6桁の数字が出るようにしています。その他にもその数字は新規作成した左から4シート目のD1セルと4シート目のシートの名前と同じ数字です。ハイパーリンクの挿入リンク>このドキュメント内>6桁の数字この6桁の数字をその時その時で4シート目の数字へ変更させていきたいです。こちらの画像のサブアドレスの部分を変えるのでしょうかそれともこちらのマクロではうまく動作できないでしょうか何か方法ありませんでしょうか

1件の回答

回答を書く

1062626

2026-02-25 00:35

+ フォロー

了解です。



---



状況を整理すると以下の通りです。



* 新規シートを作成し、名前を6桁の数字に変更している。

* 目次シートのA3セルに6桁の数字を表示している。

* ハイパーリンクで目次から各シートのD1セルにジャンプしたい。

* シートの追加時にこのハイパーリンクも自動で6桁の数字に対応させたい。



ポイントは「ハイパーリンクのサブアドレス(ドキュメント内リンク)を動的に変える」ことです。VBAで可能です。



---



1. 目次シートにハイパーリンクを作成



vba

Sub CreateHyperlinkToSheet()

Dim wsIndex As Worksheet

Dim wsTarget As Worksheet

Dim cell As Range



' 目次シート

Set wsIndex = ThisWorkbook.Sheets(\u0026quot;目次\u0026quot;)

Set cell = wsIndex.Range(\u0026quot;A3\u0026quot;)



' 左から4番目のシート

Set wsTarget = ThisWorkbook.Sheets(4)



' 6桁の数字をA3に入力(シート名と同じ)

cell.Value = wsTarget.Name



' 目次A3にハイパーリンクを作成

wsIndex.Hyperlinks.Add Anchor:=cell, Address:=\u0026quot;\u0026quot;, _

SubAddress:=\u0026quot;'\u0026quot; \u0026amp; wsTarget.Name \u0026amp; \u0026quot;'!D1\u0026quot;, _

TextToDisplay:=cell.Value

End Sub





ポイント:



*
SubAddress が「シート名+!セル参照」

*
Address:=\u0026quot;\u0026quot; にすると「このドキュメント内リンク」になる

* シート名を6桁の数字にしておくと、リンク先も自動で対応する



---



2. 複数シートの目次リンクを一括作成



vba

Sub UpdateTOC()

Dim wsIndex As Worksheet

Dim ws As Worksheet

Dim i As Long

Dim startRow As Long



Set wsIndex = ThisWorkbook.Sheets(\u0026quot;目次\u0026quot;)

startRow = 3 ' 目次開始行



' 既存のリンクをクリア

wsIndex.Range(\u0026quot;A3:A100\u0026quot;).ClearContents



' 左から4番目以降のシートを目次に追加

For i = 4 To ThisWorkbook.Sheets.Count

Set ws = ThisWorkbook.Sheets(i)

wsIndex.Cells(startRow, 1).Value = ws.Name

wsIndex.Hyperlinks.Add Anchor:=wsIndex.Cells(startRow, 1), Address:=\u0026quot;\u0026quot;, _

SubAddress:=\u0026quot;'\u0026quot; \u0026amp; ws.Name \u0026amp; \u0026quot;'!D1\u0026quot;, TextToDisplay:=ws.Name

startRow = startRow + 1

Next i

End Sub





---



まとめ:



* ハイパーリンクは
Hyperlinks.Add を使う

*
SubAddress にリンク先のシート名とセルを指定

* シート名を6桁数字にしておくと、目次とリンクが自動で対応する



---



希望であれば、既存の「新規シート作成+名前変更」のマクロに組み込む形で、目次更新とハイパーリンク作成まで自動化したサンプルも作れます。作りますか?

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有