VBA自定義菜單和菜單欄

 

EXCEL中,我們的操作都是通過“工具欄、菜單欄、快捷菜”單實現。EXCEL通過菜單給我們提供基本操作功能之外,也爲我們提供了擴展自定義功能的接口,即自定義自己的工具欄、菜單欄。

本文着重介紹如何在 Excel 2003版本中通過編程方式自定義菜單和菜單欄方法。其中包含Excel 中管理和自定義菜單欄、菜單、命令、子菜單和快捷菜單,我將通過代碼實例分步說明。

與大家分享關於VBA實現菜單欄管理與自定義菜單欄功能的實現。

一、簡介

Microsoft Excel 2000以上版本中實現許與自定義菜單欄和菜單相關的常見任務,可以使用“自定義”對話框(見圖1.1)。但如果要實現較高級任務或爲自定義程序定製菜單欄和菜單,就需要創建 Microsoft Visual Basic for Applications (VBA) 代碼。

有關如何使用“自定義”對話框的更多信息,你可以單擊“幫助”菜單上的“Microsoft Excel 幫助”,在“Office 助手”或“搜索嚮導”中鍵入自定義菜單欄,然後單擊“搜索”查看主題。

二、命令欄

Microsoft Office 中,所有工具欄、菜單欄和快捷菜單都是被作爲“命令欄”這樣一種對象以編程方式控制的。下列所有項目在 VBA 中皆用 CommandBar 對象表示:

l 菜單欄、工具欄和快捷菜單。

l 菜單欄和工具欄上的菜單。

l 菜單、子菜單和快捷菜單上的子菜單。

您可以修改任何內置的菜單欄和工具欄,還可以創建和修改用您自己的 VBA 代碼交付的自定義工具欄、菜單欄和快捷菜單。您可以將程序功能以單個按鈕的形式放在工具欄上,或以命令名稱組的形式放在菜單上。因爲工具欄和菜單都是命令欄,所以可以使用同一類型的控件。

VBAMicrosoft 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**

* 表示 Microsoft Excel 2000 中的新增項

** 表示 Microsoft Excel 2002 中的新增項

*** 表示 Microsoft Office Excel 2003 中的新增項

四、菜單欄

菜單欄是一種命令欄。它是一種可在其中添加菜單、菜單項和子菜單的對象。

有關如何在 Excel 中管理菜單欄和菜單項的更多信息,請按照下列步驟操作:

1. 啓動 Microsoft Visual Basic 編輯器。

2. 在“幫助”菜單上,單擊“Microsoft Visual Basic 幫助”。

3. 在“Office 助手”框或“應答嚮導”框中,鍵入菜單欄,然後單擊“搜索”。

4.Excel 2003Excel 2002 中,單擊“添加和管理菜單欄和菜單項”。在 Excel 2000 中,單擊“關於菜單和工具欄”。

可以在運行時修改菜單欄及該菜單欄上的控件。對菜單欄所做的更改可能會影響菜單欄的外觀或位置。可對控件進行的更改取決於控件類型。下表列出了最常見的屬性和常用於更改控件的狀態、操作或內容的方法:

屬性或方法

用途

Add

添加菜單欄,方法是使用 CommandBars 對象集合的 Add 方法,然後爲 Menubar 參數指定 TRUE 值。

Enabled

如果 Enabled 屬性的值爲 TRUE,那麼用戶可以使用 Visual Basic 代碼使指定的菜單欄可見。如果 Enabled 屬性的值爲 FALSE,用戶就無法讓菜單欄可見。不過,菜單欄將出現在可用命令欄列表中。

Protection

使您可以通過特定用戶操作來保護菜單欄。

Position

指定新菜單欄相對於程序窗口的位置。菜單欄相對於程序窗口的位置可以是以下 MsoBarPosition 常量屬性之一:msoBarLeftmsoBarTopmsoBarRightmsoBarBottommsoBarFloatingmsoBarPopup(用於創建快捷菜單)或 msoBarMenuBar(僅用於 Apple Macintosh)。

Visible

定控件是可見的指,還是隱藏的。

4.1 Add方法應用於CommandBars對象

新建一個命令欄並添加到命令欄集合。返回 CommandBar 對象。

expression.Add ( Name , Position , MenuBar , Temporary )

l expression必需。該表達式返回一個 CommandBars 對象。

l NameVariant 類型)可選。新命令欄的名稱。如果忽略該參數,則爲命令欄指定默認名稱(例如:Custom 1)。

l PositionVariant 類型)可選。新命令欄的位置或類型。可以爲下表所列的 MsoBarPosition 常量之一。

常量

說明

msoBarLeftmsoBarTopmsoBarRightmsoBarBottom

指定新命令欄的左側、頂部、右側和底部座標

msoBarFloating

指定新命令欄不固定

msoBarPopup

指定新命令欄爲快捷菜單

msoBarMenuBar

僅適用於 Macintosh

l MenuBar (Variant類型)可選。設置爲 True 將以新命令欄替換活動菜單欄。默認值爲 False

l Temporary (Variant類型)可選。設置爲 True 將使新命令欄爲臨時命令欄。臨時命令欄在關閉容器應用程序時刪除。默認值爲 False

4.2返回命令欄控件的 ID

以下代碼示例返回活動菜單欄的 ID

Sub Id_Control ()

Dim myId as Object

Set myId = CommandBars("Worksheet Menu Bar").Controls("工具(&T)")

MsgBox myId.Caption & Chr(13) & MyId.Id

End Sub

4.3確定活動菜單欄的名稱

以下代碼示例返回活動菜單欄的名稱:

Sub MenuBars_GetName()

MsgBox CommandBars.ActiveMenuBar.Name

End Sub

4.4保存(內置或自定義菜單欄的)活動狀態

您可能需要將 originalMenuBar 變量聲明爲公共變量,這樣,子例程就可以在其他子例程(如 Auto_Close 子例程)中使用該變量。以這種方式聲明和使用該變量會將用戶的上一個菜單欄重置爲初始狀態。以下示例宏重置菜單欄:

Public originalMenuBar as Object

Sub MenuBars_Capture()

Set originalMenuBar = CommandBars.ActiveMenuBar

End Sub

4.5創建自定義命令欄

以下代碼示例創建名爲 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

4.6顯示自定義命令欄

以下示例創建並顯示自定義的“My Custom Bar”菜單欄,然後用它替換內置的菜單欄:

Sub MenuBar_Show()

Dim myNewBar As Object

Set myNewBar = CommandBars.Add(Name:="Custom1", Position:=msoBarFloating)

'您必須先啓用您的自定義菜單欄,然後看見它。

'使菜單欄添加到自定義對話框列表中的可用菜單欄上。

'設置菜單屬性設置爲True取代內置的菜單欄。

myNewBar.Enabled = True

myNewBar.Visible = True

End Sub

4.7刪除自定義命令欄

以下代碼示例刪除名爲“Custom 1”的自定義菜單欄:

Sub MenuBar_Delete()

CommandBars("Custom1").Delete

End Sub

4.8隱藏命令欄

以下代碼示例從可用菜單欄列表中刪除內置“圖表”菜單欄:

Sub MenuBar_Display()

CommandBars("Chart").Enabled = False

End Sub

4.9顯示命令欄

以下代碼示例從可用菜單欄中添加內置“圖表”菜單欄:

Sub MenuBar_Display()

CommandBars("Chart").Enabled = True

End Sub

4.10還原內置命令欄

還原菜單欄會重置(菜單和菜單項的)默認控件。示例代碼還原內置“圖表”菜單欄:

Sub MenuBar_Restore()

CommandBars("Chart").Reset

End Sub

注意:您只能重置內置菜單欄,不能重置自定義菜單欄。

五、菜單

5.1 Add方法用於CommandBarControls對象

新建一個 CommandBarControl 對象並添加到指定命令欄上的控件集合。

Expression.Add ( Type , Id , Parameter , Before , Temporary )

l expression必需。該表達式返回一個 CommandBarControls 對象。

l TypeVariant類型)可選。添加到指定命令欄的控件類型。可以爲下列 MsoControlType常量之一:

常量

說明

msoControlButton

命令按鈕

msoControlEdit

文本框

msoControlDropdown

下拉列表

msoControlComboBox

組合框

msoControlPopup

彈出菜單

l IdVariant 類型)可選。指定內置控件的整數。如果該參數爲1 ,或者忽略該參數,將在命令欄中添加一個空的指定類型的自定義控件。

l ParameterVariant 類型)可選。對於內置控件,該參數用於容器應用程序運行命令。對於自定義控件,可以使用該參數向 Visual Basic 過程傳遞信息,或用其存儲控件信息(類似於第二個 Tag 屬性值)。

l BeforeVariant 類型)可選。表示新控件在命令欄上位置的數字。新控件將插入到該位置控件之前。如果忽略該參數,控件將添加到指定命令欄的末端。

l TemporaryVariant 類型)可選。設置爲True 將使新命令欄爲臨時命令欄。臨時命令欄在關閉容器應用程序時刪除。默認值爲 False

5.2向命令欄添加自定義菜單控件

以下代碼示例將您通過編程方式添加的菜單名稱添加到“工作表”菜單欄中。例如,此代碼會將菜單名稱“New Menu”添加到“工作表”菜單欄中。

注意:您可以根據需要爲該菜單指定任何名稱。

Sub Menu_Create()

Dim myMnu As Object

Set myMnu = CommandBars("Worksheet menu bar").Controls. _

Add(Type:=msoControlPopup, before:=3)

With myMnu

' "&" 用以指定快捷鍵字符 (相當於Alt+M).

.Caption = "New &Menu"

End With

End Sub

5.3禁用命令欄上的菜單控件

禁用的菜單控件在命令欄中顯示爲灰色,並且不可用。以下示例禁用“New Menu”菜單:

Sub Menu_Disable()

CommandBars("Worksheet menu bar").Controls("New &Menu").Enabled = False

End Sub

5.4啓用命令欄上的菜單控件

以下代碼示例啓用您在“禁用命令欄上的菜單控件”一節中禁用的 New Menu 菜單:

Sub Menu_Disable()

CommandBars("Worksheet menu bar").Controls("New &Menu").Enabled = True

End Sub

5.5刪除命令欄上的菜單控件

以下代碼示例從“工作表”菜單欄中刪除您在“向命令欄添加自定義菜單控件”一節中創建的“New Menu”菜單:

Sub Menu_Delete()

CommandBars("Worksheet menu bar").Controls("New &Menu").Delete

End Sub

5.6還原命令欄上的菜單控件

以下代碼示例還原“工作表”菜單欄上的內置“圖表”菜單欄:

Sub Menu_Restore()

Dim myMnu As Object

Set myMnu = CommandBars("Chart")

myMnu.Reset

End Sub

六、命令

可以對命令進行的修改與控件的類型有關。一般來說,按鈕要麼被啓用,要麼被隱藏。而編輯框、下拉列表框和組合框較爲靈活一些,因爲您可以在列表中添加或刪除項目。另外,還可以通過查看在列表中選中的項目的值來確定執行的操作。您可以將任何控件的操作更改爲內置函數或自定義函數。

下表列出了最常見的控件屬性和更改控件的狀態、操作或內容的方法:

屬性或方法

用途

Add

向命令欄添加命令。

AddItem

向下拉列表框或組合框的下拉列表部分添加項目。

Style

指定按鈕上是顯示圖標還是顯示標題。

OnAction

指定用戶更改控件值時所運行的過程。

Visible

指定控件是可見的,還是隱藏的。

要了解有關 Excel 2003Excel 2002 中菜單的更多信息,請按照下列步驟操作:

1. 啓動 Visual Basic 腳本編輯器。

2. 在“幫助”菜單上,單擊“Microsoft Visual Basic 幫助”。

3. 在“搜索幫助”框中,鍵入菜單,然後按 Enter

4. 單擊“添加和管理菜單欄和菜單項 (Office)”。

6.1向菜單控件添加分隔條

以下代碼示例在“插入”菜單上的工作表命令之前添加分隔條:

Sub menuItem_AddSeparator()

CommandBars("Worksheet menu bar").Controls("插入(&I)") _

.Controls("工作表(&W)").BeginGroup = True

End Sub

注意:要刪除分隔條,請將 BeginGroup 屬性設置爲 False

6.2在菜單上創建自定義命令控件

以下代碼示例在“工作表”菜單欄的“工具”菜單上創建名爲 Custom1 的新命令,然後,當您單擊“Custom1”時,它將運行 Code_Custom1 宏:

Sub menuItem_Create()

With CommandBars("Worksheet menu bar").Controls("工具(&T)")

.Controls.Add(Type:=msoControlButton, Before:=1).Caption = "Custom1"

.Controls("Custom1").OnAction = "Code_Custom1"

End With

End Sub

6.3在命令控件旁放置選中標記

以下代碼示例在 Custom1 命令未選中的情況下在其旁邊放置一個選中標記;如果 Custom1 命令已選中,則將刪除該選中標記:

Sub menuItem_checkMark()

Dim myPopup as Object

Set myPopup = CommandBars("Worksheet menu bar").Controls("工具(&T)")

If myPopup.Controls("Custom1").State = msoButtonDown Then

' 刪除選中標記旁邊的菜單項。

myPopup.Controls("Custom1").State = msoButtonUp

MsgBox "Custom1 is now unchecked"

Else

'添加複選標記旁邊的菜單項。

myPopup.Controls("Custom1").State = msoButtonDown

MsgBox "Custom1 is now checked"

End If

End Sub

6.4禁用命令欄上的命令控件

以下代碼示例禁用您在“在菜單上創建自定義命令控件”一節中在“工具”菜單上創建的 Custom1 命令:

Sub MenuItem_Disable()

Dim myCmd as Object

Set myCmd = CommandBars("Worksheet menu bar").Controls("工具(&T)")

myCmd.Controls("Custom1").Enabled = False

End Sub

6.5啓用命令欄上的命令控件

以下代碼示例啓用您在“禁用命令欄上的命令控件”一節中禁用的 Custom1 命令:

Sub MenuItem_Enable()

Dim myCmd as Object

Set myCmd = CommandBars("Worksheet menu bar").Controls("工具(&T)")

myCmd.Controls("Custom1").Enabled = True

End Sub

6.6刪除菜單上的命令控件

以下代碼示例刪除“文件”菜單上的“保存”命令:

Sub menuItem_Delete()

Dim myCmd As Object

Set myCmd = CommandBars("Worksheet menu bar").Controls("文件(&F)")

myCmd.Controls("保存(&S)").Delete

End Sub

6.7還原菜單上的內置命令控件

要還原菜單上的命令控件,必須知道該控件的標識 (ID) 號。要確定 ID 號,請參見“返回命令欄控件的 ID”一節。以下示例先刪除您在“刪除菜單上的命令控件”一節中刪除的“保存”命令,然後又將其還原:

Sub menuItem_Restore()

Dim myCmd As Object

Set myCmd = CommandBars("Worksheet menu bar").Controls("文件(&F)")

' Id 3 爲保存子菜單項ID.

myCmd.Controls.Add Type:=msoControlButton, ID:=3, Before:=5

End Sub

七、子菜單

當您單擊某個命令時,父菜單的一側會出現子菜單。作爲子菜單控件的命令在其名稱右邊有一個黑色小箭頭。

7.1添加子菜單

以下代碼示例向“工作表”菜單欄上的“工具”菜單添加名爲“NewSub”的新子菜單:

Sub SubMenu_Create()

Dim newSub as Object

Set newSub = CommandBars("Worksheet menu bar").Controls("工具(&T)")

With newSub

.Controls.Add(Type:=msoControlPopup, Before:=1).Caption="NewSub"

End With

End Sub

7.2向子菜單添加命令

以下代碼示例向“NewSub”子菜單添加名爲“SubItem1”的新命令,然後,當您單擊“SubItem1”時,它將運行 Code_SubItem1 宏:

Sub SubMenu_AddItem()

Dim newSubItem as Object

Set newSubItem = CommandBars("Worksheet menu bar") _

.Controls("工具(&T)").Controls("NewSub")

With newSubItem

.Controls.Add(Type:=msoControlButton, Before:=1).Caption = "SubItem1"

.Controls("SubItem1").OnAction = "Code_SubItem1"

End With

End Sub

7.3禁用子菜單上的命令控件

以下代碼示例禁用您在“向子菜單添加命令”一節中創建的 SubItem 命令:

Sub SubMenu_DisableItem()

CommandBars("Worksheet menu bar").Controls("工具(&T)") _

.Controls("NewSub").Controls("SubItem1").Enabled = False

End Sub

以下代碼示例啓用同一 SubItem 命令:

Sub SubMenu_DisableItem()

CommandBars("Worksheet menu bar").Controls("工具(&T)") _

.Controls("NewSub").Controls("SubItem1").Enabled = True

End Sub

7.4刪除子菜單上的命令

以下示例刪除您在“向子菜單添加命令”一節中在“NewSub”子菜單上創建的 SubItem1 命令:

Sub SubMenu_DeleteItem()

CommandBars("Worksheet menu bar").Controls("工具(&T)") _

.Controls("NewSub").Controls("SubItem1").Delete

End Sub

7.5禁用子菜單控件

以下代碼示例禁用您在“添加子菜單”一節中在“工具”菜單上創建的“NewSub”子菜單:

Sub SubMenu_DisableSub()

CommandBars("Worksheet menu bar").Controls("工具(&T)") _

.Controls("NewSub").Enabled = False

End Sub

注意:要啓用已禁用的控件,請將 Enabled 屬性設置爲 True

7.6刪除子菜單控件

以下代碼示例刪除您在“添加子菜單”一節中在“工具”菜單上創建的“NewSub”子菜單:

Sub SubMenu_DeleteSub()

CommandBars("Worksheet menu bar").Controls("工具(&T)") _

.Controls("NewSub").Delete

End Sub

八、快捷菜單欄

快捷菜單是在用戶右鍵單擊某個對象時出現的浮動命令欄。快捷菜單欄可以包含與命令欄相同的控件類型,而這些控件的作用也和命令欄上控件的作用相同。在大多數程序中,您無法從程序界面創建或修改快捷菜單,因而必須在運行時創建和修改快捷菜單。

要獲取有關Excel 2002Excel 2003中的快捷菜單的更多信息,請按照下列步驟操作:

1. 啓動 Visual Basic 腳本編輯器。

2. 在“幫助”菜單上,單擊“Microsoft Visual Basic 幫助”。

3. 在“搜索幫助”框中,鍵入快捷方式,然後按 Enter

4. 單擊“添加和顯示快捷菜單”。

8.1新建快捷菜單欄

以下代碼示例創建名爲“myShortcutBar”的快捷菜單欄:

Sub Shortcut_Create()

Dim myShtCtBar as Object

Set myShtCtBar = CommandBars.Add(Name:="myShortcutBar", _

Position:=msoBarPopup)

' 這顯示快捷菜單欄。

' 200, 200指的是屏幕上的位置的像素爲XY座標.

myShtCtBar.ShowPopup 200,200

End Sub

注意:由於沒有添加任何控件(菜單項或子菜單),因此快捷菜單欄出現時是空的。

九、快捷菜單

當您右鍵單擊特定的 Excel 對象時會出現快捷菜單欄。Excel 有很多快捷菜單欄,其中包含各種菜單。您還可以創建自定義快捷菜單欄和自定義內置菜單欄。

9.1在快捷菜單欄上創建命令

以下代碼示例在“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

9.2禁用快捷菜單欄上的命令控件

以下代碼示例禁用您在“創建快捷菜單上的命令”一節中創建的 Item1 命令:

Sub Shortcut_DisableItem()

Set myBar = CommandBars("myShortcutBar")

myBar.Controls("Item1").Enabled = False

myBar.ShowPopup 200,200

End Sub

注意:要啓用已禁用的項目,請將 Enabled 屬性設置爲 True

9.3刪除快捷菜單欄上的命令

以下代碼示例刪除“myShortcutBar”快捷菜單欄上的名爲 Item1 的菜單命令:

Sub Shortcut_DeleteItem()

Set myBar = CommandBars("myShortcutBar")

myBar.Controls("Item1").Delete

myBar.ShowPopup 200,200

End Sub

9.4刪除快捷菜單欄

刪除快捷菜單欄將導致刪除所有菜單項。您無法還原已刪除的自定義菜單欄。要還原它,必須重新創建該菜單欄及其所有菜單項和子菜單。

以下代碼示例刪除您在“在快捷菜單欄上創建命令”一節中創建的“myShortCutBar”快捷菜單欄:

Sub Shortcut_DeleteShortCutBar()

CommandBars("MyShortCutBar").Delete

End Sub

9.5還原內置快捷菜單欄上的命令

以下代碼示例還原工作表“單元格”快捷菜單欄上的默認命令:

Sub Shortcut_RestoreItem()

CommandBars("Cell").Reset

End Sub

十、快捷菜單上的子菜單

可以在快捷菜單欄上創建子菜單。當您單擊某個命令控件時,父菜單的一側會出現子菜單。作爲子菜單控件的命令在其名稱右邊有一個黑色小箭頭。

10.1在快捷菜單欄上新建子菜單

以下示例在工作表“單元格”快捷菜單上添加名爲“NewSub”的新子菜單:

Sub ShortcutSub_Create()

CommandBars("Cell").Controls.Add(Type:=msoControlPopup, before:=1) _

.Caption = "NewSub"

'顯示快捷菜單欄。

' 200, 200指的是屏幕上的位置的像素爲XY座標。

CommandBars("Cell").ShowPopup 200, 200

End Sub

注意:由於沒有添加任何菜單項,因此該子菜單爲空。

10.2在快捷菜單欄的子菜單上創建命令控件

下面的宏向您在“單元格”快捷菜單上創建的子菜單“NewSub”中添加 SubItem1 命令。然後,當您單擊“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"

'點擊時subItem1 將運行Code_SubItem1宏。

.Controls("subItem1").OnAction = "Code_SubItem1"

End With

'顯示快捷菜單欄。

' 200, 200指的是屏幕上的位置的像素爲XY座標

CommandBars("Cell").ShowPopup 200, 200

End Sub

10.3禁用快捷菜單上的子菜單項控件

以下代碼示例禁用“NewSub”子菜單上的 SubItem1 命令:

Sub ShortcutSub_DisableItem()

CommandBars("Cell").Controls("NewSub") _

.Controls("subItem1").Enabled = False

'顯示快捷菜單欄。

' 200, 200指的是屏幕上的位置的像素爲XY座標

CommandBars("Cell").ShowPopup 200, 200

End Sub

注意:要啓用已禁用的項目,請將 Enabled 屬性設置爲 True

10.4刪除快捷菜單上的子菜單項控件

以下示例刪除“NewSub”子菜單上的 SubItem1 命令:

Sub ShortcutSub_DeleteItem()

CommandBars("Cell").Controls("NewSub").Controls("subItem1").Delete

'顯示快捷菜單欄。

' 200, 200指的是屏幕上的位置的像素爲XY座標

CommandBars("Cell").ShowPopup 200, 200

End Sub

10.5禁用快捷菜單上的子菜單控件

以下代碼示例禁用“單元格”快捷菜單欄上的“NewSub”子菜單:

Sub ShortcutSub_DisableSub()

CommandBars("Cell").Controls("NewSub").Enabled = False

'顯示快捷菜單欄。

' 200, 200指的是屏幕上的位置的像素爲XY座標

CommandBars("Cell").ShowPopup 200, 200

End Sub

注意:要啓用已禁用的項目,請將 Enabled 屬性設置爲 True

10.6刪除快捷菜單上的子菜單控件

以下代碼示例刪除您在“單元格”快捷菜單欄上創建的“NewSub”子菜單:

Sub ShortcutSub_DeleteSub()

CommandBars("Cell").Controls("NewSub").Delete

'顯示快捷菜單欄。

' 200, 200指的是屏幕上的位置的像素爲XY座標

CommandBars("Cell").ShowPopup 200, 200

End Sub

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章