
全シートのリンク一覧を自動作成(1枚目に目次シートを自動生成)

Excelブックにシートが増えると、目的のシートを探すのが大変になります。
そんなときに便利なのが「全シートをリンク付きで一覧化するVBAマクロ」です。
この記事では、1枚目のシートに全シート名・ジャンプリンク・備考欄を自動で貼り付けるVBAコードを紹介します。
管理表・台帳・見積書など、多数のシートを扱うExcelファイルで特に効果的です。
機能概要
このVBAマクロでは、次の処理を自動で行います:
| 機能 | 内容 |
|---|---|
| シート一覧作成 | ブック内のすべてのシート名を取得し、1枚目に一覧化 |
| リンク生成 | 各シートのA1セルへのジャンプリンクを自動で設定 |
| 備考欄追加 | 各行に自由記入できる「備考」列を設置 |
| 自動整形 | 見出しや背景色を設定して一覧を見やすく整形 |
実行前

出力結果は以下のようになります👇

コード全文
以下のコードをExcelに貼り付けて実行するだけで、自動で目次シートを作成できます。
Sub FNC_全シートリンク一覧作成()
Dim ObjWB As Workbook
Dim ObjSh As Worksheet
Dim ObjFirstSh As Worksheet
Dim LngRow As Long
Dim StrLink As String
On Error GoTo ERROR_HANDLER
Application.ScreenUpdating = False
Set ObjWB = ThisWorkbook
Set ObjFirstSh = ObjWB.Sheets(1)
' 先頭シート初期化
With ObjFirstSh
.Cells.Clear
.Range("B1").Value = "シート一覧"
.Range("B1:D1").Merge
.Range("B1:D1").Font.Bold = True
.Range("B1:D1").Font.Size = 14
.Range("B1:D1").Interior.Color = RGB(230, 230, 250)
' 見出し行
.Range("B2").Value = "シート名"
.Range("C2").Value = "リンク"
.Range("D2").Value = "備考"
.Range("B2:D2").Font.Bold = True
.Range("B2:D2").Interior.Color = RGB(240, 240, 240)
End With
LngRow = 3
' 全シートを走査
For Each ObjSh In ObjWB.Sheets
If ObjSh.Index <> 1 Then
StrLink = "'" & ObjSh.Name & "'!A1"
' シート名
ObjFirstSh.Cells(LngRow, 2).Value = ObjSh.Name
' リンク
ObjFirstSh.Hyperlinks.Add _
Anchor:=ObjFirstSh.Cells(LngRow, 3), _
Address:="", _
SubAddress:=StrLink, _
TextToDisplay:="→ シートを開く"
' 備考は空欄(手入力可)
ObjFirstSh.Cells(LngRow, 4).Value = ""
LngRow = LngRow + 1
End If
Next ObjSh
' 見た目を整える
With ObjFirstSh
.Columns("B:D").AutoFit
.Activate
.Range("B1").Select
End With
MsgBox "全シート一覧(B:C:D列)を作成しました!", vbInformation
EXIT_HANDLER:
Application.ScreenUpdating = True
Exit Sub
ERROR_HANDLER:
MsgBox "エラー発生:" & Err.Description, vbCritical
Resume EXIT_HANDLER
End Sub
実行

💡 どちらの実行方法でもOK!
- 一度だけ試すなら「⚙️ 実行手順1(そのまま実行する場合)」
- 何度も使うブックなら「⚙️ 実行手順(ボタンから実行する場合)」
作業スタイルに合わせて好きな方法を選んでください✨
実行手順1(そのまま実行する場合)
1. Excelを開く
2. Alt + F11 → VBAエディタを起動
3. メニューから「挿入 → 標準モジュール」を選択
4. コードを貼り付けて保存(貼り付けコードは記事本文のマクロを使用)
5. Alt + F8 → FNC_全シートリンク一覧作成 を選択して実行
実行手順(ボタンから実行する場合)
以下のように、1枚目の「メニュー」シートに
「シートリンク作成」ボタンを配置しておくと、
クリック一つでマクロを実行できます。
手順1:マクロを登録
1.Excelを開く
2. Alt + F11 → VBAエディタを開く
3. メニューから「挿入 → 標準モジュール」を選択
4. コードを貼り付けて保存(貼り付けコードは記事本文のマクロを使用)
手順2:ボタンを配置
1. Excelの「開発タブ」から
→「挿入」→「フォームコントロールのボタン」を選択
2.「メニュー」シート上の任意の場所にドラッグして配置
3. 表示された「マクロの登録」画面で
→ FNC_全シートリンク一覧作成を選択
4. ボタンの名前を「シートリンク作成」に変更(好みの名前でOK)
応用活用例
このマクロは、さまざまな業務シーンで応用できます。
| 利用例 | 説明 |
|---|---|
| 管理台帳 | 月次や店舗別シートのリンクをまとめてジャンプできる |
| 帳票集計 | 各帳票シートへの目次として利用 |
| 見積書ブック | 顧客ごとのシートを一覧で管理 |
| レポート管理 | 各部署・日付シートへのアクセスを高速化 |
さらに便利な拡張例
下記のような機能を追加することで、より便利になります👇
| 拡張内容 | 機能概要 |
|---|---|
| E列:最終更新日時 | シートの最終更新日を自動取得 |
| F列:行数 | シートの最終行番号を取得 |
まとめ
- VBA初心者でもコピペで使える
- Excelの全シートを自動で一覧化できる
- シート名・リンク・備考欄を自動生成
- 管理ファイルの目次として業務効率が大幅アップ
免責事項
本記事のサンプルプログラムは実行を保証するものではなく、利用に伴う結果について一切の責任を負いません。




















