當 Excel 工作簿包含多張工作表時,建立一個可點擊的「目錄頁」能大幅提升使用者體驗。除了快速導覽,我們也可以在每張工作表加上「回到目錄」的超連結,並透過格式美化讓整體報表更具專業感。
這篇文章將延續上一篇,教你如何一鍵建立完整的工作表目錄,並為每張工作表加上「回到目錄」的按鈕,打造雙向導覽的報表架構。
功能概述
這段 VBA 程式碼可實現以下功能:- 自動建立「目錄」工作表,列出所有工作表名稱
- 為每個名稱建立可點擊的超連結
- 在每張工作表的 A1 儲存格建立「回到目錄」的超連結
- 美化目錄頁(加粗、框線、背景色)
VBA 程式碼範例
Sub CreateSheetIndexWithBackLinks()
Dim wsIndex As Worksheet
Dim ws As Worksheet
Dim i As Integer
' 建立或清空目錄工作表
On Error Resume Next
Set wsIndex = ThisWorkbook.Sheets("目錄")
If wsIndex Is Nothing Then
Set wsIndex = ThisWorkbook.Sheets.Add(Before:=Sheets(1))
wsIndex.Name = "目錄"
Else
wsIndex.Cells.Clear
End If
On Error GoTo 0
' 設定標題
With wsIndex.Range("A1")
.Value = "工作表目錄"
.Font.Bold = True
.Font.Size = 14
.Interior.Color = RGB(200, 230, 255)
End With
' 建立超連結清單
i = 3
For Each ws In ThisWorkbook.Sheets
If ws.Name <> wsIndex.Name Then
' 在目錄頁建立超連結
wsIndex.Hyperlinks.Add Anchor:=wsIndex.Cells(i, 1), _
Address:="", _
SubAddress:="'" & ws.Name & "'!A1", _
TextToDisplay:=ws.Name
' 在每張工作表的 A1 建立回到目錄的超連結
With ws.Range("A1")
.Value = "← 回到目錄"
.Font.Color = RGB(0, 102, 204)
.Font.Underline = xlUnderlineStyleSingle
ws.Hyperlinks.Add Anchor:=.Cells(1, 1), _
Address:="", _
SubAddress:="'目錄'!A1", _
TextToDisplay:="← 回到目錄"
End With
i = i + 1
End If
Next ws
' 美化目錄清單區塊
With wsIndex.Range("A3:A" & i - 1)
.Font.Size = 12
.Font.Name = "微軟正黑體"
.Interior.Color = RGB(240, 248, 255)
.Borders.LineStyle = xlContinuous
End With
wsIndex.Columns("A").AutoFit
MsgBox "目錄與回到目錄連結已建立完成", vbInformation
End Sub
程式碼詳細解說(初學者導向)
這段程式碼的目的是建立一個可導覽的目錄頁,並在每張工作表加上「回到目錄」的超連結。以下是逐段說明:
- 建立或清空目錄頁: 使用
Sheets("目錄")嘗試取得目錄頁,若不存在則新增一張並命名為「目錄」。若已存在則清空內容。 - 設定標題樣式: 在 A1 儲存格輸入「 工作表目錄」,設定字型加粗、字體大小與背景色。
- 建立工作表清單與超連結: 使用迴圈逐張處理工作表,排除目錄頁本身。每張工作表名稱都建立一個超連結,指向該工作表的 A1 儲存格。
- 在每張工作表建立「回到目錄」連結: 在每張工作表的 A1 儲存格輸入「← 回到目錄」,並建立超連結指向目錄頁的 A1。
- 美化目錄清單區塊: 對 A3 開始的清單區塊設定字體、底色與框線,並自動調整欄寬。
操作步驟與使用方式
- 將程式碼貼入 Excel 的模組中(例如 Module1)
- 執行
CreateSheetIndexWithBackLinks程式 - 程式會自動建立目錄頁與超連結,並在每張工作表加上「回到目錄」連結
應用場景與延伸建議
- 多部門報表快速導覽與回跳
- 教學範本或作業集集中管理
- 客戶資料或專案進度表快速切換
延伸功能建議:
- 加入第二欄顯示工作表描述(例如「銷售報表」、「庫存清單」)
- 自動排序工作表名稱
- 加入目錄頁的頁首圖示或公司標誌
- 將目錄頁鎖定為首頁並保護內容
常見問題 FAQ
Q1:是否可以將「回到目錄」連結放在其他位置?
可以將 ws.Range("A1") 改為其他儲存格,例如 "B1" 或 "A2"。
Q2:是否可以自動加入工作表描述?
可以在程式中加入第二欄,並手動或自動填入描述文字。
Q3:是否可以避免重複建立超連結?
目前程式會清空目錄頁並重新建立,確保不會重複。若需保留原有內容,可加入條件判斷。
結語與延伸閱讀
這段 VBA 程式碼提供了完整的「一鍵建立目錄與回到目錄連結」功能,並加入格式美化,讓報表更具專業感與可讀性。後續你可以加入描述欄、排序功能與頁面保護模組,打造完整的導覽首頁。
下一篇將介紹如何「一鍵篩選資料並匯出結果」,敬請期待【VBA 自動化教學】第 10 篇。












