萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 軟體知識 >  >> 影像處理 >> 綜合

Word 自訂右鍵選單完全指南:新增常用指令、修改內建選單、VBA 進階客製化

Word 自訂右鍵選單完全指南:新增常用指令、修改內建選單、VBA 進階客製化

Word 右鍵選單(捷徑選單)是最高頻的操作入口,但預設選單缺少「選擇性貼上」、「頁面設定」等常用指令,需多層選單點擊。透過自訂右鍵選單,可將高頻指令前置,大幅提升編輯效率。本文提供 UI 介面法與 VBA 進階法兩種方案。

方法一:透過「自訂」對話框修改(無需程式碼,適用 Word 2010 及以上)

  1. 右鍵點選功能區空白處 → 選擇「自訂功能區」→ 在右側「自訂功能區」下方點選「鍵盤快速鍵:自訂」旁的「自訂」按鈕(或「檔案」→「選項」→「自訂功能區」→ 左下角「自訂」按鈕)。
  2. 在「自訂」對話框中,選擇「工具列」索引標籤 → 捲動至「捷徑選單」類別 → 選取「文字」(預設右鍵選單名稱)。
  3. 左側「命令」清單中,依類別(如「編輯」、「檔案」、「格式」)尋找欲新增指令:
  • 「編輯」→「選擇性貼上」
  • 「檔案」→「頁面設定」
  • 「編輯」→「清除格式」
  • 「檢視」→「切換欄位代碼」
  1. 將指令從左側清單**拖曳**至右側「文字」捷徑選單預覽區的適當位置(可拖曳排序)。
  2. 若要移除內建指令:在右側預覽區選取該指令 → 按 Delete 或右鍵「移除」。
  3. 點選「關閉」→「確定」完成設定。

⚠️ 注意:Word 365/2021 介面略有不同,若找不到「工具列」索引標籤,請在「自訂」對話框中選擇「命令」索引標籤,類別選「所有命令」,直接搜尋指令名稱拖曳至右鍵選單預覽區。

方法二:VBA 程式碼客製化(完全控制、可部署至範本/加巨集)

適用於需標準化部署至團隊、動態依條件顯示選單項目、新增自訂巨集指令的進階需求。

核心物件模型

  • CommandBars("Text"):預設文字右鍵選單。
  • CommandBars("Cell"):表格儲存格右鍵選單。
  • CommandBarControls:選單項目集合。
  • CommandBarButton:按鈕型選單項目。
  • CommandBarPopup:子選單(彈出式選單)。

範例:新增「選擇性貼上」與「頁面設定」至文字右鍵選單頂端

Sub CustomizeContextMenu()
    Dim cbar As CommandBar
    Dim ctl As CommandBarButton
    
    ' 取得文字右鍵選單
    Set cbar = Application.CommandBars("Text")
    
    ' 避免重複新增:先移除同標籤項目
    On Error Resume Next
    cbar.Controls("我的選擇性貼上").Delete
    cbar.Controls("我的頁面設定").Delete
    On Error GoTo 0
    
    ' 新增「選擇性貼上」按鈕(放第 1 位)
    Set ctl = cbar.Controls.Add(msoControlButton, , , 1)
    With ctl
        .Caption = "我的選擇性貼上"
        .FaceId = 22  ' 圖示 ID:貼上圖示
        .OnAction = "PasteSpecialDialog"  ' 內建命令名稱
        .TooltipText = "彈出選擇性貼上對話框"
    End With
    
    ' 新增「頁面設定」按鈕(放第 2 位)
    Set ctl = cbar.Controls.Add(msoControlButton, , , 2)
    With ctl
        .Caption = "我的頁面設定"
        .FaceId = 51  ' 圖示 ID:頁面設定圖示
        .OnAction = "FilePageSetup"  ' 內建命令名稱
        .TooltipText = "開啟頁面設定對話框"
    End With
    
    ' 新增分隔線(第 3 位)
    cbar.Controls.Add msoControlSplit, , , 3
    
    MsgBox "右鍵選單客製化完成,重新啟動 Word 生效"
End Sub

' 也可直接呼叫內建對話框的巨集
Sub PasteSpecialDialog()
    Dialogs(wdDialogEditPasteSpecial).Show
End Sub

部署方式

  1. 將代碼放入 `Normal.dotm`(全域生效)或專用樣板/加巨集(.dotm/.dotx)中。
  2. 在 `AutoExec` 或 `Document_Open` 事件中呼叫 `CustomizeContextMenu` 自動套用。
  3. 團隊部署:將加巨集檔放入共用網路路徑,透過群組原則或登入腳本複製至使用者 `%AppData%\Microsoft\Word\Startup\` 目錄。

常見內建命令名稱對照表(OnAction 參數)

功能命令名稱FaceId 建議
選擇性貼上PasteSpecialDialog / EditPasteSpecial22
頁面設定FilePageSetup51
清除格式ClearFormatting213
切換欄位代碼ViewFieldCodes345
字數統計ToolsWordCount158
修訂/追蹤修訂ToolsRevisionMarks198

更多 FaceId 可用「巨集編輯器」→「立即視窗」輸入 `?Application.CommandBars.GetPressedFaceId` 查詢,或參考線上 FaceId 完整列表。

進階:動態選單(依選取內容顯示/隱藏項目)

Sub Auto_UpdateContextMenu()
    Dim cbar As CommandBar, ctl As CommandBarControl
    Set cbar = Application.CommandBars("Text")
    
    ' 範例:若選取內容包含表格,顯示「表格屬性」;否則隱藏
    For Each ctl In cbar.Controls
        If ctl.Caption = "我的表格屬性" Then
            ctl.Visible = (Selection.Information(wdWithInTable) = True)
        End If
    Next ctl
End Sub

在 `WindowSelectionChange` 事件中呼叫上述程序,實現右鍵選單隨選取內容動態調整。

總結

  • 個人輕量調整: 用方法一 UI 介面拖曳,即時生效,無需程式碼。
  • 團隊標準化/進階邏輯: 用方法二 VBA,可版本控管、自動部署、動態適配。
  • 備份習慣: 修改前匯出 `Normal.dotm` 備份,或將客製化封裝於獨立加巨集,避免更新遺失。
copyright © 萬盛學電腦網 all rights reserved