目錄
概要
簡介
更多信息
本文中的示例
命令欄
控件常量
菜單欄
返回命令欄控件的 ID
確定活動(dòng)菜單欄的名稱
保存(內(nèi)置或自定義菜單欄的)活動(dòng)狀態(tài)
創(chuàng)建自定義命令欄
顯示自定義命令欄
刪除自定義命令欄
隱藏命令欄
顯示命令欄
還原內(nèi)置命令欄
菜單
向命令欄添加自定義菜單控件
禁用命令欄上的菜單控件
啟用命令欄上的菜單控件
刪除命令欄上的菜單控件
還原命令欄上的菜單控件
命令
向菜單控件添加分隔條
在菜單上創(chuàng)建自定義命令控件
在命令控件旁放置選中標(biāo)記
禁用命令欄上的命令控件
啟用命令欄上的命令控件
刪除菜單上的命令控件
還原菜單上的內(nèi)置命令控件
子菜單
添加子菜單
向子菜單添加命令
禁用子菜單上的命令控件
刪除子菜單上的命令
禁用子菜單控件
刪除子菜單控件
快捷菜單欄
新建快捷菜單欄
快捷菜單
在快捷菜單欄上創(chuàng)建命令
禁用快捷菜單欄上的命令控件
刪除快捷菜單欄上的命令
刪除快捷菜單欄
還原內(nèi)置快捷菜單欄上的命令
快捷菜單上的子菜單
在快捷菜單欄上新建子菜單
在快捷菜單欄的子菜單上創(chuàng)建命令控件
禁用快捷菜單上的子菜單項(xiàng)控件
刪除快捷菜單上的子菜單項(xiàng)控件
禁用快捷菜單上的子菜單控件
刪除快捷菜單上的子菜單控件
查找更多信息
對象瀏覽器
Microsoft 知識庫
這篇文章中的信息適用于:
[NextPage]
概要
本文介紹如何在 Microsoft Excel 2000 以及更高版本中自定義菜單和菜單欄。其中包含關(guān)于以編程方式在 Microsoft Excel 中管理和自定義菜單欄、菜單、命令、子菜單和快捷菜單的分步說明和代碼示例。
返回目錄
簡介
要在 Microsoft Excel 2000、Microsoft Excel 2002 和 Microsoft Office Excel 2003 中執(zhí)行許多與自定義菜單欄和菜單相關(guān)的常見任務(wù),請使用“自定義”對話框。要執(zhí)行更多高級任務(wù)或?yàn)樽远x程序定制菜單欄和菜單,可能需要?jiǎng)?chuàng)建 Microsoft Visual Basic for Applications (VBA) 代碼。
有關(guān)如何使用“自定義”對話框的更多信息,請單擊“幫助”菜單上的“Microsoft Excel 幫助”,在“Office 助手”或“應(yīng)答向?qū)А敝墟I入自定義菜單欄,然后單擊“搜索”以查看主題。
本文幫助您學(xué)習(xí)編寫 VBA 代碼,掌握自定義菜單欄、菜單、菜單項(xiàng)、子菜單和快捷菜單的方法。
返回目錄
更多信息
Microsoft 提供的編程示例只用于說明目的,不附帶任何明示或默示的保證。這包括但不限于對適銷性或特定用途適用性的默示保證。本文假定您熟悉所演示的編程語言和用于創(chuàng)建和調(diào)試過程的工具。Microsoft 的支持工程師可以幫助解釋某個(gè)特定過程的功能,但是他們不會(huì)修改這些示例以提供額外的功能或構(gòu)建過程以滿足您的特殊需求。
返回目錄
本文中的示例
本文中的示例在 Excel 2000、Excel 2002 和 Excel 2003 中使用 VBA 代碼來自定義菜單。要使用示例宏,請按照下列步驟操作: 1. 啟動(dòng) Excel。
2. 在“工具”菜單上,指向“宏”,然后單擊“Visual Basic 編輯器”。
3. 在“插入”菜單上,單擊“模塊”。
4. 鍵入本文中的一個(gè)宏示例,也可使用復(fù)制粘貼操作將宏示例復(fù)制到模塊表中。
5. 在“運(yùn)行”菜單上,單擊“運(yùn)行子過程/用戶窗體”。
6. 如果出現(xiàn)“宏”對話框,請單擊宏名稱,然后單擊“運(yùn)行”。
返回目錄
[NextPage]
命令欄
在 Microsoft Office 中,所有工具欄、菜單欄和快捷菜單都是被作為“命令欄”這樣一種對象以編程方式控制的。下列所有項(xiàng)目在 VBA 中皆用 CommandBar 對象表示: ? 菜單欄、工具欄和快捷菜單。
菜單欄和工具欄上的菜單。
菜單、子菜單和快捷菜單上的子菜單。
您可以修改任何內(nèi)置的菜單欄和工具欄,還可以創(chuàng)建和修改用您自己的 VBA 代碼交付的自定義工具欄、菜單欄和快捷菜單。您可以將程序功能以單個(gè)按鈕的形式放在工具欄上,或以命令名稱組的形式放在菜單上。因?yàn)楣ぞ邫诤筒藛味际敲顧?,所以可以使用同一類型的控件?/p>
在 VBA 和 Microsoft Visual Basic 中,按鈕和菜單項(xiàng)用 CommandBarButton 對象表示。顯示菜單和子菜單的彈出控件用 CommandBarPopup 對象表示。在以下示例中,名為“Menu”的控件和名為“Submenu”的控件都是用于顯示菜單和子菜單的彈出控件,并且這兩個(gè)控件是各自的控件集中唯一的 CommandBar 對象。
在 Microsoft Excel 中,菜單欄和工具欄被視為是同一種可編程對象,即 CommandBar 對象??梢允褂?CommandBar 對象中的控件來指代菜單、菜單項(xiàng)、子菜單和快捷菜單??梢栽?Type 參數(shù)中使用一個(gè)常量為每個(gè)控件指定要用于菜單、子菜單或命令的控件類型。
返回目錄
控件常量
下面是 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**
* 表示 Microsoft Excel 2000 中的新增項(xiàng)
** 表示 Microsoft Excel 2002 中的新增項(xiàng)
*** 表示 Microsoft Office Excel 2003 中的新增項(xiàng)
返回目錄
[NextPage]
菜單欄
菜單欄是一種命令欄。它是一種可在其中添加菜單、菜單項(xiàng)和子菜單的對象。
有關(guān)如何在 Excel 中管理菜單欄和菜單項(xiàng)的更多信息,請按照下列步驟操作: 1. 啟動(dòng) Microsoft Visual Basic 編輯器。
2. 在“幫助”菜單上,單擊“Microsoft Visual Basic 幫助”。
3. 在“Office 助手”框或“應(yīng)答向?qū)А笨蛑校I入菜單欄,然后單擊“搜索”。
4. 在 Excel 2003 和 Excel 2002 中,單擊“添加和管理菜單欄和菜單項(xiàng)”。在 Excel 2000 中,單擊“關(guān)于菜單和工具欄”。
可以在運(yùn)行時(shí)修改菜單欄及該菜單欄上的控件。對菜單欄所做的更改可能會(huì)影響菜單欄的外觀或位置??蓪丶M(jìn)行的更改取決于控件類型。下表列出了最常見的屬性和常用于更改控件的狀態(tài)、操作或內(nèi)容的方法:
屬性或方法 用途
Add 添加菜單欄,方法是使用 CommandBars 對象集合的 Add 方法,然后為 Menubar 參數(shù)指定 TRUE 值。
Enabled 如果 Enabled 屬性的值為 TRUE,那么用戶可以使用 Visual Basic 代碼使指定的菜單欄可見。如果 Enabled 屬性的值為 FALSE,用戶就無法讓菜單欄可見。不過,菜單欄將出現(xiàn)在可用命令欄列表中。
Protection 使您可以通過特定用戶操作來保護(hù)菜單欄。
Position 指定新菜單欄相對于程序窗口的位置。菜單欄相對于程序窗口的位置可以是以下 MsoBarPosition 常量屬性之一:msoBarLeft、msoBarTop、msoBarRight、msoBarBottom、msoBarFloating、msoBarPopup(用于創(chuàng)建快捷菜單)或 msoBarMenuBar(僅用于 Apple Macintosh)。
Visible 指定控件是可見的,還是隱藏的。
返回命令欄控件的 ID
以下代碼示例返回活動(dòng)菜單欄的 ID:
Sub Id_Control ()
Dim myId as Object
set myId = CommandBars("Worksheet Menu Bar").Controls("Tools")
MsgBox myId.Caption & Chr(13) & MyId.Id
End Sub
確定活動(dòng)菜單欄的名稱
以下代碼示例返回活動(dòng)菜單欄的名稱:
Sub MenuBars_GetName()
MsgBox CommandBars.ActiveMenuBar.Name
End Sub
保存(內(nèi)置或自定義菜單欄的)活動(dòng)狀態(tài)
您可能需要將 OriginalMenuBar 變量聲明為公共變量,這樣,子例程就可以在其他子例程(如 Auto_Close 子例程)中使用該變量。以這種方式聲明和使用該變量會(huì)將用戶的上一個(gè)菜單欄重置為初始狀態(tài)。以下示例宏重置菜單欄:
Public OriginalMenuBar as Object
Sub MenuBars_Capture()
Set OriginalMenuBar = CommandBars.ActiveMenuBar
End Sub
創(chuàng)建自定義命令欄
以下代碼示例創(chuàng)建名為 My Command Bar 的自定義命令欄:
Sub MenuBar_Create() Application.CommandBars.Add Name:="My command bar" End Sub
您還可以通過使用 Temporary:=True 參數(shù)來創(chuàng)建自定義命令欄。Temporary:=True 參數(shù)允許命令欄在您退出 Excel 時(shí)自動(dòng)重置。以下代碼使用 Temporary:=True 參數(shù)創(chuàng)建自定義命令欄:
Sub MenuBar_Create()
Application.CommandBars.Add Name:="My command bar", Temporary:=True
End Sub顯示自定義命令欄
以下示例創(chuàng)建并顯示自定義的“My Custom Bar”菜單欄,然后用它替換內(nèi)置的菜單欄:
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
隱藏命令欄
以下代碼示例從可用菜單欄列表中刪除內(nèi)置“圖表”菜單欄:
Sub MenuBar_Display()
CommandBars("Chart").Enabled = False
End Sub
顯示命令欄
以下代碼示例從可用菜單欄中添加內(nèi)置“圖表”菜單欄:
Sub MenuBar_Display()
CommandBars("Chart").Enabled = True
End Sub
還原內(nèi)置命令欄
還原菜單欄會(huì)重置(菜單和菜單項(xiàng)的)默認(rèn)控件。以下代碼示例還原內(nèi)置“圖表”菜單欄:
Sub MenuBar_Restore()
CommandBars("Chart").Reset
End Sub注意:您只能重置內(nèi)置菜單欄,不能重置自定義菜單欄。
返回目錄
[NextPage]
菜單
還原菜單欄會(huì)重置(菜單和菜單項(xiàng)的)默認(rèn)控件。以下代碼示例還原內(nèi)置“圖表”菜單欄:
Sub MenuBar_Restore()
CommandBars("Chart").Reset
End Sub注意:您只能重置內(nèi)置菜單欄,不能重置自定義菜單欄。
向命令欄添加自定義菜單控件
以下代碼示例將您通過編程方式添加的菜單名稱添加到“工作表”菜單欄中。例如,此代碼會(huì)將菜單名稱“New Menu”添加到“工作表”菜單欄中。
注意:您可以根據(jù)需要為該菜單指定任何名稱。
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
禁用命令欄上的菜單控件
禁用的菜單控件在命令欄中顯示為灰色,并且不可用。以下示例禁用“New Menu”菜單:
Sub Menu_Disable()
CommandBars("Worksheet menu bar").Controls("New &Menu").Enabled = False
End Sub
啟用命令欄上的菜單控件
以下代碼示例啟用您在“禁用命令欄上的菜單控件”一節(jié)中禁用的 New Menu 菜單:
Sub Menu_Disable()
CommandBars("Worksheet menu bar").Controls("New &Menu").Enabled = True
End Sub
刪除命令欄上的菜單控件
以下代碼示例從“工作表”菜單欄中刪除您在“向命令欄添加自定義菜單控件”一節(jié)中創(chuàng)建的“New Menu”菜單:
Sub Menu_Delete()
CommandBars("Worksheet menu bar").Controls("New &Menu").Delete
End Sub
還原命令欄上的菜單控件
以下代碼示例還原“工作表”菜單欄上的內(nèi)置“圖表”菜單欄:
Sub Menu_Restore()
Dim myMnu As Object
Set myMnu = CommandBars("Chart")
myMnu.Reset
End Sub
返回目錄
[NextPage]
命令
可以對命令進(jìn)行的修改與控件的類型有關(guān)。一般來說,按鈕要么被啟用,要么被隱藏。而編輯框、下拉列表框和組合框較為靈活一些,因?yàn)槟梢栽诹斜碇刑砑踊騽h除項(xiàng)目。另外,還可以通過查看在列表中選中的項(xiàng)目的值來確定執(zhí)行的操作。您可以將任何控件的操作更改為內(nèi)置函數(shù)或自定義函數(shù)。
下表列出了最常見的控件屬性和更改控件的狀態(tài)、操作或內(nèi)容的方法:
屬性或方法 用途
Add 向命令欄添加命令。
AddItem 向下拉列表框或組合框的下拉列表部分添加項(xiàng)目。
Style 指定按鈕上是顯示圖標(biāo)還是顯示標(biāo)題。
OnAction 指定用戶更改控件值時(shí)所運(yùn)行的過程。
Visible 指定控件是可見的,還是隱藏的。
要了解有關(guān) Excel 2003 和 Excel 2002 中菜單的更多信息,請按照下列步驟操作: 1. 啟動(dòng) Visual Basic 腳本編輯器。
2. 在“幫助”菜單上,單擊“Microsoft Visual Basic 幫助”。
3. 在“搜索幫助”框中,鍵入菜單,然后按 Enter。
4. 單擊“添加和管理菜單欄和菜單項(xiàng) (Office)”。
向菜單控件添加分隔條
以下代碼示例在“插入”菜單上的工作表命令之前添加分隔條:
Sub menuItem_AddSeparator()
CommandBars("Worksheet menu bar").Controls("Insert") _
.Controls("Worksheet").BeginGroup = True
End Sub注意:要?jiǎng)h除分隔條,請將 BeginGroup 屬性設(shè)置為 False。
在菜單上創(chuàng)建自定義命令控件
以下代碼示例在“工作表”菜單欄的“工具”菜單上創(chuàng)建名為 Custom1 的新命令,然后,當(dāng)您單擊“Custom1”時(shí),它將運(yùn)行 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
在命令控件旁放置選中標(biāo)記
以下代碼示例在 Custom1 命令未選中的情況下在其旁邊放置一個(gè)選中標(biāo)記;如果 Custom1 命令已選中,則將刪除該選中標(biāo)記:
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
禁用命令欄上的命令控件
以下代碼示例禁用您在“在菜單上創(chuàng)建自定義命令控件”一節(jié)中在“工具”菜單上創(chuàng)建的 Custom1 命令:
Sub MenuItem_Disable()
Dim myCmd as Object
Set myCmd = CommandBars("Worksheet menu bar").Controls("Tools")
myCmd.Controls("Custom1").Enabled = False
End Sub
啟用命令欄上的命令控件
以下代碼示例啟用您在“禁用命令欄上的命令控件”一節(jié)中禁用的 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
還原菜單上的內(nèi)置命令控件
要還原菜單上的命令控件,必須知道該控件的標(biāo)識 (ID) 號。要確定 ID 號,請參見“返回命令欄控件的 ID”一節(jié)。以下示例先刪除您在“刪除菜單上的命令控件”一節(jié)中刪除的“保存”命令,然后又將其還原:
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
返回目錄
[NextPage]
子菜單
當(dāng)您單擊某個(gè)命令時(shí),父菜單的一側(cè)會(huì)出現(xiàn)子菜單。作為子菜單控件的命令在其名稱右邊有一個(gè)黑色小箭頭。
添加子菜單
以下代碼示例向“工作表”菜單欄上的“工具”菜單添加名為“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
向子菜單添加命令
以下代碼示例向“NewSub”子菜單添加名為“SubItem1”的新命令,然后,當(dāng)您單擊“SubItem1”時(shí),它將運(yùn)行 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
禁用子菜單上的命令控件
以下代碼示例禁用您在“向子菜單添加命令”一節(jié)中創(chuàng)建的 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
刪除子菜單上的命令
以下示例刪除您在“向子菜單添加命令”一節(jié)中在“NewSub”子菜單上創(chuàng)建的 SubItem1 命令:
Sub SubMenu_DeleteItem()
CommandBars("Worksheet menu bar").Controls("Tools") _
.Controls("NewSub").Controls("SubItem1").Delete
End Sub
禁用子菜單控件
以下代碼示例禁用您在“添加子菜單”一節(jié)中在“工具”菜單上創(chuàng)建的“NewSub”子菜單:
Sub SubMenu_DisableSub()
CommandBars("Worksheet menu bar").Controls("Tools") _
.Controls("NewSub").Enabled = False
End Sub注意:要啟用已禁用的控件,請將 Enabled 屬性設(shè)置為 True。
刪除子菜單控件
以下代碼示例刪除您在“添加子菜單”一節(jié)中在“工具”菜單上創(chuàng)建的“NewSub”子菜單:
Sub SubMenu_DeleteSub()
CommandBars("Worksheet menu bar").Controls("Tools") _
.Controls("NewSub").Delete
End Sub
返回目錄
[NextPage]
快捷菜單欄
快捷菜單是在用戶右鍵單擊某個(gè)對象時(shí)出現(xiàn)的浮動(dòng)命令欄。快捷菜單欄可以包含與命令欄相同的控件類型,而這些控件的作用也和命令欄上控件的作用相同。在大多數(shù)程序中,您無法從程序界面創(chuàng)建或修改快捷菜單,因而必須在運(yùn)行時(shí)創(chuàng)建和修改快捷菜單。
要獲取有關(guān) Excel 2002 和 Excel 2003 中的快捷菜單的更多信息,請按照下列步驟操作: 1. 啟動(dòng) Visual Basic 腳本編輯器。
2. 在“幫助”菜單上,單擊“Microsoft Visual Basic 幫助”。
3. 在“搜索幫助”框中,鍵入快捷方式,然后按 Enter。
4. 單擊“添加和顯示快捷菜單”。
新建快捷菜單欄
以下代碼示例創(chuàng)建名為“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
注意:由于沒有添加任何控件(菜單項(xiàng)或子菜單),因此快捷菜單欄出現(xiàn)時(shí)是空的。
返回目錄
快捷菜單
當(dāng)您右鍵單擊特定的 Excel 對象時(shí)會(huì)出現(xiàn)快捷菜單欄。Excel 有很多快捷菜單欄,其中包含各種菜單。您還可以創(chuàng)建自定義快捷菜單欄和自定義內(nèi)置菜單欄。
在快捷菜單欄上創(chuàng)建命令
以下代碼示例在“myShortcutBar”快捷菜單欄上創(chuàng)建名為 Item1 的新菜單命令。當(dāng)您單擊“Item1”時(shí),它將運(yùn)行 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
禁用快捷菜單欄上的命令控件
以下代碼示例禁用您在“創(chuàng)建快捷菜單上的命令”一節(jié)中創(chuàng)建的 Item1 命令:
Sub Shortcut_DisableItem()
Set myBar = CommandBars("myShortcutBar")
myBar.Controls("Item1").Enabled = False
myBar.ShowPopup 200,200
End Sub注意:要啟用已禁用的項(xiàng)目,請將 Enabled 屬性設(shè)置為 True。
刪除快捷菜單欄上的命令
以下代碼示例刪除“myShortcutBar”快捷菜單欄上的名為 Item1 的菜單命令:
Sub Shortcut_DeleteItem()
Set myBar = CommandBars("myShortcutBar")
myBar.Controls("Item1").Delete
myBar.ShowPopup 200,200
End Sub
刪除快捷菜單欄
刪除快捷菜單欄將導(dǎo)致刪除所有菜單項(xiàng)。您無法還原已刪除的自定義菜單欄。要還原它,必須重新創(chuàng)建該菜單欄及其所有菜單項(xiàng)和子菜單。
以下代碼示例刪除您在“在快捷菜單欄上創(chuàng)建命令”一節(jié)中創(chuàng)建的“myShortCutBar”快捷菜單欄:
Sub Shortcut_DeleteShortCutBar()
CommandBars("MyShortCutBar").Delete
End Sub
還原內(nèi)置快捷菜單欄上的命令
以下代碼示例還原工作表“單元格”快捷菜單欄上的默認(rèn)命令:
Sub Shortcut_RestoreItem()
CommandBars("Cell").Reset
End Sub
返回目錄
[NextPage]
快捷菜單上的子菜單
可以在快捷菜單欄上創(chuàng)建子菜單。當(dāng)您單擊某個(gè)命令控件時(shí),父菜單的一側(cè)會(huì)出現(xiàn)子菜單。作為子菜單控件的命令在其名稱右邊有一個(gè)黑色小箭頭。
在快捷菜單欄上新建子菜單
以下示例在工作表“單元格”快捷菜單上添加名為“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注意:由于沒有添加任何菜單項(xiàng),因此該子菜單為空。
在快捷菜單欄的子菜單上創(chuàng)建命令控件
下面的宏向您在“單元格”快捷菜單上創(chuàng)建的子菜單“NewSub”中添加 SubItem1 命令。然后,當(dāng)您單擊“SubItem1”時(shí),它將運(yùn)行 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
禁用快捷菜單上的子菜單項(xiàng)控件
以下代碼示例禁用“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注意:要啟用已禁用的項(xiàng)目,請將 Enabled 屬性設(shè)置為 True。
刪除快捷菜單上的子菜單項(xiàng)控件
以下示例刪除“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注意:要啟用已禁用的項(xiàng)目,請將 Enabled 屬性設(shè)置為 True。
刪除快捷菜單上的子菜單控件
以下代碼示例刪除您在“單元格”快捷菜單欄上創(chuàng)建的“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
返回目錄
[NextPage]
查找更多信息
以下資源可以提供更多關(guān)于如何在 Excel 中自定義菜單和菜單欄的信息。
對象瀏覽器
對象瀏覽器包含特定命令的所有屬性和所有方法的完整列表。要查找此信息,請切換到 Visual Basic 編輯器(按 Alt+F11),單擊“視圖”菜單上的“對象瀏覽器”(或按 F2),在“搜索”框中鍵入控件名稱,然后按 Enter 或單擊“搜索”。
Microsoft 知識庫
Microsoft 知識庫是主要面向 Microsoft 產(chǎn)品支持服務(wù)技術(shù)支持人員的 Microsoft 產(chǎn)品信息源,同時(shí)也向 Microsoft 客戶開放。它是一個(gè)綜合性數(shù)據(jù)庫,其中包含有關(guān) Microsoft 產(chǎn)品、記錄的修復(fù)程序列表、文檔錯(cuò)誤和常見技術(shù)支持問答的詳細(xì)技術(shù)信息文章。
要連接到 Microsoft 知識庫,請?jiān)L問以下 Microsoft 網(wǎng)站,然后按照頁面上出現(xiàn)的說明進(jìn)行操作:
http://support.microsoft.com (http://support.microsoft.com/)
返回目錄
轉(zhuǎn)載請注明:本文來自:Excel吧 (www.excelba.com) 詳細(xì)出處參考:http://www.excelba.com/Art/Html/83.html