如何在 Excel 中自訂功能表和功能表列

文章翻譯 文章翻譯
文章編號: 830502 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您,如何在 Microsoft Excel 2000 及更新版本中自訂功能表和功能表列。本文包含逐步指示和程式碼範例,在 Microsoft Excel 中以程式設計方法管理和自訂功能表列、功能表、命令、子功能表和快顯功能表。

簡介

如果要執行與在 Microsoft Excel 2000、Microsoft Excel 2002 和 Microsoft Office Excel 2003 中自訂功能表列和功能表相關的多個常見工作,請使用 [自訂] 對話方塊。如果要執行其他進階工作,或是為自訂程式量身訂作功能表列和功能表,您可能會想要建立 Microsoft Visual Basic for Applications (VBA) 程式碼。

如需有關如何使用 [自訂] 對話方塊的詳細資訊,請按一下 [說明] 功能表的 [Microsoft Excel 說明],在「Office 小幫手」或「解答精靈」輸入自訂功能表列,然後按一下 [搜尋] 以檢視主題。

本文可以協助您瞭解撰寫 VBA 程式碼的技術,來自訂功能表列、功能表、功能表項目、子功能表和快顯功能表。

其他相關資訊

Microsoft 僅提供示範性的程式設計範例,不做任何明示或默示的保證。其中包括 (但不限) 其適售性與適合某特定用途之默示擔保。本文假設您對於示範所用的程式設計語言,以及用來建立和偵錯程序的工具相當熟悉。Microsoft 技術支援工程師可以協助說明特定程序的功能,但無法修改這些範例以提供附加功能或建構程序來滿足您的特定需求。

本文中的範例

本文中的範例使用 Excel 2000、Excel 2002 和 Excel 2003 的 VBA 程式碼來自訂功能表。如果要使用範例巨集,請依照下列步驟執行:
  1. 啟動 Excel。
  2. [工具] 功能表上,指向 [巨集],再按一下 [Visual Basic 編輯器]
  3. 按一下 [插入] 功能表上的 [模組]
  4. 輸入本文中其中一個巨集範例,或者您可以使用「複製貼上」作業將巨集範例複製到模組工作表。
  5. 按一下 [執行] 功能表上的 [執行 Sub 或 UserForm]
  6. 如果顯示 [巨集] 對話方塊,按一下巨集名稱,然後按一下 [執行]

命令列

在 Microsoft Office 中,工具列、功能表列和快顯功能表都是以程式設計方式控制的一種物件:命令列。在 VBA 中,會以 CommandBar 物件表示下列所有項目:
  • 功能表列、工具列和快顯功能表。
  • 功能表列和工具列上的功能表。
  • 功能表、子功能表和快顯功能表上的子功能表。
您可以修改任何內建的功能表列或任何內建的工具列,且可以建立或修改自訂工具列、功能表列和快顯功能表,以便使用 VBA 程式碼進行傳遞。您可以用工具列上個別的按鈕或是功能表上的命令群組來表示程式的功能。因為工具列和功能表都是命令列,所以您使用的是同一種控制項。

在 VBA 和 Microsoft Visual Basic 中,會以 CommandBarButton 物件表示按鈕和功能表項目。會以 CommandBarPopup 物件表示可顯示功能表和子功能表的快顯控制項。在下列範例中,名為 Menu 的控制項和名為 Submenu 控制項都是可顯示功能表和子功能表的快顯控制項。功能表和子功能表都是獨特的 CommandBar 物件,具有專屬的控制項組合。

在 Microsoft Excel,功能表列和工具列指的是同一個可程式化的物件類型,CommandBar 物件。您使用 CommandBar 物件中的控制項去參照功能表、功能表項目、子功能表和快顯功能表。您在 Type 引數中將常數與每個控制項搭配使用,以便指定您要用於功能表、子功能表或命令的控制項類型。

控制項常數

下列是 Excel 2003 各種控制常數的清單,這些常數指定了特定功能表列控制項所使用的圖形控制項類型:
  • MsoControlActiveX*
  • MsoControlAutoCompleteCombo***
  • MsoControlButton
  • MsoControlButtonDropdown
  • MsoControlButtonPopup
  • MsoControlComboBox
  • MsoControlCustom
  • MsoControlDropdown
  • MsoControlEdit
  • MsoControlExpandingGrid
  • MsoControlGauge
  • MsoControlGenericDropdown
  • MsoControlGraphicCombo
  • MsoControlGraphicDropdown
  • MsoControlGraphicPopup
  • MsoControlGrid
  • MsoControlLabel
  • MsoControlLabelEx***
  • MsoControlOCXDropDown
  • MsoControlPane **
  • MsoControlPopup
  • MsoControlSpinner***
  • MsoControlSplitButtonMRUPopup
  • MsoControlSplitButtonPopup
  • MsoControlSplitDropdown
  • MsoControlSplitExpandingGrid
  • MsoControlWorkPane**
*=New in Microsoft Excel 2000
**= New in Microsoft Excel 2002
***=New in Microsoft Office Excel 2003

功能表列

功能表列是命令列的一種。功能表列是讓您可以在其中新增功能表、功能表項目和子功能表的一種物件。

如需有關如何在 Excel 中管理功能表列和功能表項目的詳細資訊,請依照下列步驟執行:
  1. 啟動 Microsoft Visual Basic 編輯器。
  2. [說明] 功能表上,按一下 [Microsoft Visual Basic 說明]
  3. [Office 小幫手] 方塊或 [解答精靈] 方塊中,輸入功能表列,然後按一下 [搜尋]
  4. 在 Excel 2003 和 Excel 2002 中,按一下 [新增和管理功能表列和功能表項目]。在 Excel 2000 中,按一下 [關於功能表和工具列]
您可以在執行期間,對功能表列以及功能表列上的控制項進行修改。您對功能表列所作的變更可能會影響功能表列的外觀或位置。您對控制項所作的變更將根據控制項類型而有所不同。下列表格會列出最普遍的屬性和最常用來變更狀態、動作或控制項內容的方法:
摺疊此表格展開此表格
屬性或方法目的
Add藉由使用 CommandBars 物件集合的 Add 方法,以及將 Menubar 引數的值指定為 TRUE,來新增功能表列。
Enabled如果 Enabled 屬性設定為 TRUE 值,使用者就可以使用 Visual Basic 程式碼來顯示指定的功能表列。如果 Enabled 屬性設定為 FALSE 值,使用者就無法顯示功能表列。但是,功能表列會顯示在可用的命令列清單中。
Protection可讓您保護功能表列,免於遭到特定使用者動作的修改。
Position指定新功能表列在程式視窗中的相關位置。新功能表列在程式視窗中的相關位置可能是下列其中一個 MsoBarPosition 常數屬性:msoBarLeftmsoBarTopmsoBarRightmsoBarBottommsoBarFloatingmsoBarPopup (用以建立快顯功能表) 或 msoBarMenuBar (僅適用於 Apple Macintosh)。
Visible指定要顯示或隱藏控制項。

傳回命令列控制項的識別碼

下列範例程式碼會傳回作用中功能表列的識別碼:
Sub Id_Control ()
Dim myId as Object
   set myId = CommandBars("Worksheet Menu Bar").Controls("Tools")
   MsgBox myId.Caption & Chr(13) & MyId.Id
End Sub

判斷作用中功能表列的名稱

下列範例程式碼會傳回作用中功能表列的名稱:
Sub MenuBars_GetName()
   MsgBox CommandBars.ActiveMenuBar.Name
End Sub

儲存作用狀態 (適用於內建或自訂的功能表列)

您可能想將 OriginalMenuBar 變數宣告為公開變數,以供副程式 (例如 Auto_Close 副程式) 中的其他副程式使用。以這種方法宣告和使用變數會將使用者之前的功能表列重設為原始狀態。下列範例巨集會重設功能表列:
Public OriginalMenuBar as Object

Sub MenuBars_Capture()
   Set OriginalMenuBar = CommandBars.ActiveMenuBar
End Sub

建立自訂命令列

下列範例程式碼會建立自訂命令列並將其命名為 My Command Bar
Sub MenuBar_Create() Application.CommandBars.Add Name:="My command bar" End Sub

您也可以使用 Temporary:=True 引數來建立自訂命令列。Temporary:=True 引數在您結束 Excel 時,自動重設命令列。下列程式碼使用 Temporary:=True 引數建立自訂命令列:
Sub MenuBar_Create()
Application.CommandBars.Add Name:="My command bar", Temporary:=True
End Sub

顯示自訂命令列

下列範例會建立並顯示 My Custom Bar 自訂功能表列,然後取代內建的功能表列:
Sub MenuBar_Show()
Dim myNewBar As Object
   Set myNewBar = CommandBars.Add(Name:="Custom1", Position:=msoBarFloating)
   ' You must first enable your custom menu bar before you make it visible.
   ' Enabling a menu bar adds it to the list of available menu bars on
   ' the Customize dialog box.
' Setting the menubar property to True replaces the built-in menu bar.
   myNewBar.Enabled = True
   myNewBar.Visible = True
End Sub

刪除自訂命令列

下列範例程式碼會刪除 Custom 1 這個自訂功能表列:
Sub MenuBar_Delete()
   CommandBars("Custom1").Delete
End Sub

隱藏命令列

下列範例程式碼會從可用的功能表列清單中移除內建的 [圖表] 功能表列:
Sub MenuBar_Display()
   CommandBars("Chart").Enabled = False
End Sub

顯示命令列

下列範例程式碼會在可用的功能表列清單中加入內建的 [圖表] 功能表列:
Sub MenuBar_Display()
   CommandBars("Chart").Enabled = True
End Sub

還原內建命令列

還原功能表列將會重設預設的控制項 (包括功能表和功能表項目)。下列範例程式碼會重設內建的 Chart 功能表列:
Sub MenuBar_Restore()
   CommandBars("Chart").Reset
End Sub
注意 您只可以重設內建的功能表列,而無法重設自訂的功能表列。

功能表

還原功能表列將會重設預設的控制項 (包括功能表和功能表項目)。下列範例程式碼會還原內建的 Chart 功能表列:

Sub MenuBar_Restore()
   CommandBars("Chart").Reset
End Sub
注意 您只可以重設內建的功能表列,而無法重設自訂的功能表列。

將自訂功能表控制項新增到命令列

下列範例程式碼會將您以程式設計方式所新增功能表的名稱新增至 [工作表] 功能表列。例如,這段程式碼將功能表名稱 New Menu 新增至 [工作表] 功能表列。

注意 您可以隨意為這個功能表命名。
Sub Menu_Create()
Dim myMnu As Object
   Set myMnu = CommandBars("Worksheet menu bar").Controls. _
      Add(Type:=msoControlPopup, before:=3)
   With myMnu
   ' The "&" denotes a shortcut key assignment (Alt+M in this case).
      .Caption = "New &Menu"
   End With
End Sub

停用命令列上的功能表控制項

已停用的功能表控制項會呈現暗灰色,而且無法從命令列上取用。下列範例會停用 [新功能表] 功能表:
Sub Menu_Disable()
   CommandBars("Worksheet menu bar").Controls("New &Menu").Enabled = False
End Sub

啟用命令列上的功能表控制項

下列範例程式碼會將您在<停用命令列上的功能表控制項>一節中停用的 New Menu 功能表重新啟用。
Sub Menu_Disable()
   CommandBars("Worksheet menu bar").Controls("New &Menu").Enabled = True
End Sub

刪除命令列上的功能表控制項

下列程式碼範例會將您在<將自訂功能表控制項新增到命令列>一節中所建立的 New Menu 功能表從 [工作表] 功能表列上刪除:
Sub Menu_Delete()
   CommandBars("Worksheet menu bar").Controls("New &Menu").Delete
End Sub

還原命令列上的功能表控制項

下列範例程式碼會還原 [工作表] 功能表列上的 [圖表] 內建功能表列:
Sub Menu_Restore()
Dim myMnu As Object
   Set myMnu = CommandBars("Chart")
   myMnu.Reset
End Sub

命令

對於命令,您所能修改的範圍取決於控制項類型而定。一般而言,按鈕不是被啟用,就是被隱藏。編輯方塊、下拉式清單和下拉式清單方塊更為靈活,因為您可以從清單中新增或移除項目。此外,您可以檢視從清單中選取項目的值,藉以判斷所執行的動作。您可以變更任何控制項的動作,使其執行內建功能或自訂功能。

下列表格會列出控制項最常見的屬性和變更狀態、動作或控制項內容的方法:
摺疊此表格展開此表格
屬性或方法目的
Add將命令新增到命令列。
AddItem將項目新增到下拉式清單方塊的下拉式清單部分。
Style指定按鈕圖像是否要顯示圖示或字幕。
OnAction指定程序在使用者變更控制項的數值時執行。
Visible指定要顯示或隱藏控制項。

如需有關 Excel 2003 和 Excel 2002 中功能表的詳細資訊,請依照下列步驟執行:
  1. 啟動 Visual Basic 指令碼編輯器。
  2. [說明] 功能表上,按一下 [Microsoft Visual Basic 說明]
  3. [搜尋說明] 方塊中輸入功能表,然後按下 ENTER。
  4. 按一下 [新增和管理功能表列和功能表項目 (Office)]

將分隔線新增到功能表控制項

下列範例程式碼會在 [插入] 功能表上的 [工作表] 命令之前新增分隔線:
Sub menuItem_AddSeparator()
   CommandBars("Worksheet menu bar").Controls("Insert") _
   .Controls("Worksheet").BeginGroup = True
End Sub
注意 如果要移除分隔線,請將 BeginGroup 屬性設定為 False

建立功能表上的自訂命令控制項

下列範例程式碼會在 [工作表] 功能表列的 [工具] 功能表上建立 Custom1 新命令;如果您按一下 [Custom1],就會執行 Code_Custom1 巨集:
Sub menuItem_Create()
   With CommandBars("Worksheet menu bar").Controls("Tools")
      .Controls.Add(Type:=msoControlButton, Before:=1).Caption = "Custom1"
      .Controls("Custom1").OnAction = "Code_Custom1"
   End With
End Sub

在命令控制項旁邊置入核取記號

下列範例程式碼會在尚未選取 Custom1 命令時,在其旁邊置入核取記號;如果已經選取 Custom1 命令,則會移除核取記號:
Sub menuItem_checkMark()
Dim myPopup as Object

   Set myPopup = CommandBars("Worksheet menu bar").Controls("Tools")
   If myPopup.Controls("Custom1").State = msoButtonDown Then
      ' Remove check mark next to menu item.
      myPopup.Controls("Custom1").State = msoButtonUp
      MsgBox "Custom1 is now unchecked"
      Else
        ' Add check mark next to menu item.
         myPopup.Controls("Custom1").State = msoButtonDown
         MsgBox "Custom1 is now checked"
    End If
End Sub

停用命令列上的命令控制項

下列範例程式碼會停用<在功能表上建立自訂命令控制項>一節中建立於 [工具] 功能表上的 Custom1 命令:
Sub MenuItem_Disable()
Dim myCmd as Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("Tools")
   myCmd.Controls("Custom1").Enabled = False
End Sub

啟用命令列上的命令控制項

下列範例程式碼會將您在<停用命令列上的命令控制項>一節中停用的 Custom1 命令重新啟用:
Sub MenuItem_Enable()
Dim myCmd as Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("Tools")
   myCmd.Controls("Custom1").Enabled = True
End Sub

刪除功能表上的命令控制項

下列範例程式碼會刪除 [檔案] 功能表上的 [儲存檔案] 命令:
Sub menuItem_Delete()
Dim myCmd As Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("File")
   myCmd.Controls("Save").Delete
End Sub

還原功能表上的內建命令控制項

如果要還原功能表上的命令控制項,您必須知道控制項的識別碼 (ID)。如果要判斷識別碼,請參閱<傳回命令列控制項的識別碼>一節。下列範例會刪除,然後再還原您在<刪除功能表上的命令控制項>一節中刪除的 [儲存] 命令:
Sub menuItem_Restore()
Dim myCmd As Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("File")
   ' Id 3 refers to the Save menu item control.
   myCmd.Controls.Add Type:=msoControlButton, ID:=3, Before:=5
End Sub

子功能表

當您按一下某個命令時,子功能表就會顯示在父功能表旁邊。命令是一種子功能表控制項,具有小型黑色箭頭,位於命令名稱的右邊。

新增子功能表

下列範例程式碼會建立新的 NewSub 子功能表,新增至 [工作表] 功能表列上的 [工具] 功能表中:
Sub SubMenu_Create()
Dim newSub as Object
   Set newSub = CommandBars("Worksheet menu bar").Controls("Tools")
   With newSub
      .Controls.Add(Type:=msoControlPopup, Before:=1).Caption="NewSub"
   End With
End Sub

將命令新增到子功能表

下列範例程式碼會將 SubItem1 新命令新增至 NewSub 子功能表;如果您按一下 [SubItem1],就會執行 Code_SubItem1 巨集:
Sub SubMenu_AddItem()
Dim newSubItem as Object
   Set newSubItem = CommandBars("Worksheet menu bar") _
   .Controls("Tools").Controls("NewSub")
   With newSubItem
      .Controls.Add(Type:=msoControlButton, Before:=1).Caption = "SubItem1"
      .Controls("SubItem1").OnAction = "Code_SubItem1"
   End With
End Sub

停用子功能表上的命令控制項

下列範例程式碼會停用您在<將命令新增到子功能表>一節中所建立的 SubItem 命令:

Sub SubMenu_DisableItem()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Controls("SubItem1").Enabled = False
End Sub


下列範例會啟用相同的 SubItem 命令:
Sub SubMenu_DisableItem()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Controls("SubItem1").Enabled = True
End Sub

刪除子功能表上的命令

下列範例會刪除您在<將命令新增到子功能表>一節中建立於 NewSub 子功能表上的 SubItem1 命令:
Sub SubMenu_DeleteItem()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Controls("SubItem1").Delete
End Sub

停用子功能表控制項

下列範例程式碼會停用您在<新增子功能表>一節中建立於 [工具] 功能表上的 NewSub 子功能表:
Sub SubMenu_DisableSub()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Enabled = False
End Sub
注意 如果要啟用已停用的控制項,請將 Enabled 屬性設定為 True

刪除子功能表控制項

下列範例程式碼會刪除您在<新增子功能表>一節中建立於 [工具] 功能表上的 NewSub 子功能表:
Sub SubMenu_DeleteSub()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Delete
End Sub

快顯功能表列

快顯功能表是浮動命令列,每當使用者用滑鼠右鍵按一下物件時便會出現。快顯功能表列可以包含與命令列相同的控制項類型,控制項表現出的行為會與命令列上的控制項相同。在大多數的程式中,您都無法從程式的介面建立或修改快顯功能表。因此,您必須在執行期間建立和修改快顯功能表。

如需有關 Excel 2002 和 Excel 2003 中快顯功能表的詳細資訊,請依照下列步驟執行:
  1. 啟動 Visual Basic 指令碼編輯器。
  2. [說明] 功能表上,按一下 [Microsoft Visual Basic 說明]
  3. [搜尋說明] 方塊中輸入 shortcut,然後按下 ENTER。
  4. 按一下 [新增和顯示快顯功能表]

建立新的快顯功能表列

下列範例程式碼會建立新的快顯功能表列,並命名為 myShortcutBar

Sub Shortcut_Create()
Dim myShtCtBar as Object
   Set myShtCtBar = CommandBars.Add(Name:="myShortcutBar", _
   Position:=msoBarPopup)
   ‘ This displays the shortcut menu bar.
   ‘ 200, 200 refers to the screen position in pixels as x and y coordinates.
   myShtCtBar.ShowPopup 200,200
End Sub

注意 由於尚未將控制項 (功能表項目或子功能表) 新增到快顯功能表列,所以快顯功能表列呈現空白。

快顯功能表

每當您用滑鼠右鍵按一下特定的 Excel 物件時,快顯功能表列就會出現。Excel 有許多快顯功能表列,還有許多功能表可供使用。您也可以建立自訂快顯功能表列以及自訂內建功能表列。

建立快顯功能表列上的命令

下列範例程式碼會在 myShortcutBar 快顯功能表列上建立新的 Item1 功能表命令;如果您按一下 [Item1],就會執行 Code_Item1 巨集:
Sub Shortcut_AddItem()
Dim myBar as Object
   Set myBar = CommandBars("myShortcutBar")
   With myBar
      .Controls.Add (Type:=msoControlButton, before:=1).Caption = "Item1"
      .Controls("Item1").OnAction = "Code_Item1"
   End With
   myBar.ShowPopup 200,200
End Sub

停用快顯功能表列上的命令控制項

下列範例程式碼會停用您在<建立快顯功能表列上的命令>一節中所建立的 Item1 命令:
Sub Shortcut_DisableItem()
   Set myBar = CommandBars("myShortcutBar")
   myBar.Controls("Item1").Enabled = False
   myBar.ShowPopup 200,200
End Sub
注意 如果要啟用已停用的項目,請將 Enabled 屬性設定為 True

刪除快顯功能表列上的命令

下列範例程式碼會刪除 myShortcutBar 快顯功能表列上的 Item1 功能表命令:
Sub Shortcut_DeleteItem()
   Set myBar = CommandBars("myShortcutBar")
   myBar.Controls("Item1").Delete
   myBar.ShowPopup 200,200
End Sub

刪除快顯功能表列

刪除快顯功能表列會移除所有項目。您無法還原已經刪除的自訂功能表列。如果要還原該項目,您必須重新建立它和所有功能表項目及子功能表。

下列範例程式碼會刪除您在<建立快顯功能表列上的命令>一節中所建立的 myShortCutBar 快顯功能表列:
Sub Shortcut_DeleteShortCutBar()
   CommandBars("MyShortCutBar").Delete
End Sub

還原內建快顯功能表列上的命令

下列範例程式碼會還原工作表 [儲存格] 快顯功能表列上的預設命令:
Sub Shortcut_RestoreItem()
   CommandBars("Cell").Reset
End Sub

快顯功能表上的子功能表

您可以在快顯功能表列上建立子功能表。當您按一下命令控制項時,子功能表就會顯示在父功能表旁邊。命令是一種子功能表控制項,具有小型黑色箭頭,位於其名稱的右邊。

建立快顯功能表列上的子功能表

下列範例會在工作表 [儲存格] 快顯功能表上建立新的 NewSub 子功能表:
Sub ShortcutSub_Create()
   CommandBars("Cell").Controls.Add(Type:=msoControlPopup, before:=1) _
   .Caption = "NewSub"
    ' This displays the shortcut menu bar.
    ' 200, 200 refers to the screen position in pixels as x and y coordinates.
   CommandBars("Cell").ShowPopup 200, 200
End Sub
注意 由於尚未將功能表項目新增到子功能表,所以子功能表呈現空白。

在快顯功能表列上的子功能表中建立命令控制項

下列巨集會將 SubItem1 命令新增至您在 [儲存格] 快顯功能表上建立的 NewSub 子功能表中;如果您按一下 [SubItem1],就會執行 Code_SubItem1 巨集:
Sub ShortcutSub_AddItem()
Dim newSubItem as Object
   Set newSubItem = CommandBars("Cell").Controls("NewSub”)
   With newSubItem
      .Controls.Add(Type:=msoControlButton, before:=1).Caption = "subItem1"
      ' This will run the subItem1_Code macro when subItem1 is clicked.
      .Controls("subItem1").OnAction = "Code_subItem1"
   End With
   ' This displays the Cell shortcut menu bar.
   ' 200, 200 refers to the screen position in pixels as x and y coordinates
   CommandBars("Cell").ShowPopup 200, 200
End Sub

停用快顯功能表上的子功能表項目控制項

下列範例程式碼會停用 NewSub 子功能表上的 SubItem1 命令:
Sub ShortcutSub_DisableItem()
   CommandBars("Cell").Controls("NewSub") _
   .Controls("subItem1").Enabled = False
   ' This displays the Cell shortcut menu bar.
   ' 200, 200 refers to the screen position in pixels as x and y coordinates.
   CommandBars("Cell").ShowPopup 200, 200
End Sub
注意 如果要啟用已停用的項目,請將 Enabled 屬性設定為 True

刪除快顯功能表上的子功能表項目控制項

下列範例會刪除 NewSub 子功能表上的 SubItem1 命令:
Sub ShortcutSub_DeleteItem()
   CommandBars("Cell").Controls("NewSub").Controls("subItem1").Delete
   ' This displays the Cell shortcut menu bar.
   ' 200, 200 refers to the screen position in pixels as x and y coordinates.
   CommandBars("Cell").ShowPopup 200, 200
End Sub

停用快顯功能表上的子功能表控制項

下列範例程式碼會停用 [儲存格] 快顯功能表列上的 NewSub 子功能表:
Sub ShortcutSub_DisableSub()
   CommandBars("Cell").Controls("NewSub").Enabled = False
   ' This displays the Cell shortcut menu bar.
   ' 200, 200 refers to the screen position in pixels as x and y coordinates.
   CommandBars("Cell").ShowPopup 200, 200
End Sub
注意 如果要啟用已停用的項目,請將 Enabled 屬性設定為 True

刪除快顯功能表上的子功能表控制項

下列範例程式碼會刪除您在 [儲存格] 快顯功能表列上所建立的 NewSub 子功能表:
Sub ShortcutSub_DeleteSub()
   CommandBars("Cell").Controls("NewSub").Delete
   ' This displays the Cell shortcut menu bar.
   ' 200, 200 refers to the screen position in pixels as x and y coordinates.
   CommandBars("Cell").ShowPopup 200, 200
End Sub

尋找其他資訊

您可以利用下列資源,找到有關如何在 Excel 中自訂功能表和功能表列的詳細資訊。

物件瀏覽器

「物件瀏覽器」包含了特定命令的所有屬性與方法的完整清單。如果要尋找這份資訊,請切換到 Visual Basic 編輯器 (按下 ALT+F11),按一下 [檢視] 功能表 (或按下 F2) 的 [瀏覽物件],在 [搜尋] 方塊中輸入控制項名稱,然後按下 ENTER 或按一下 [搜尋]

Microsoft 知識庫

「Microsoft 知識庫」對「Microsoft 技術支援處」專業人員而言,是主要的 Microsoft 產品資訊來源。Microsoft 的客戶也可以使用「Microsoft 知識庫」。這個詳盡的資料庫包含了詳細的文件,其中包含有關 Microsoft 產品的技術資訊、所記載的修正程式清單、說明文件錯誤以及技術支援常見問題的解答。

如果要連線到「Microsoft 知識庫」,請造訪下列 Microsoft 網站,然後依照網頁上顯示的指示執行:
http://support.microsoft.com

屬性

文章編號: 830502 - 上次校閱: 2006年2月20日 - 版次: 4.1
這篇文章中的資訊適用於:
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
關鍵字:?
kbhowtomaster KB830502
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com