可以對命令進行的修改與控件的類型有關。一般來說,按鈕要麼被啟用,要麼被隱藏。而編輯框、下拉列表框和組合框較為靈活一些,因為您可以在列表中添加或刪除項目。另外,還可以通過查看在列表中選中的項目的值來確定執行的操作。您可以將任何控件的操作更改為內置函數或自定義函數。
下表列出了最常見的控件屬性和更改控件的狀態、操作或內容的方法:
屬性或方法
用途
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("插入(&I)") _
.Controls("工作表(&W)").BeginGroup = True
End Sub
注意:要刪除分隔條,請將 BeginGroup 屬性設置為 False。
以下代碼示例在“工作表”菜單欄的“工具”菜單上創建名為 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
以下代碼示例在 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
以下代碼示例禁用您在“在菜單上創建自定義命令控件”一節中在“工具”菜單上創建的 Custom1 命令:
Sub MenuItem_Disable()
Dim myCmd as Object
Set myCmd = CommandBars("Worksheet menu bar").Controls("工具(&T)")
myCmd.Controls("Custom1").Enabled = False
End Sub
以下代碼示例啟用您在“禁用命令欄上的命令控件”一節中禁用的 Custom1 命令:
Sub MenuItem_Enable()
Dim myCmd as Object
Set myCmd = CommandBars("Worksheet menu bar").Controls("工具(&T)")
myCmd.Controls("Custom1").Enabled = True
End Sub
以下代碼示例刪除“文件”菜單上的“保存”命令:
Sub menuItem_Delete()
Dim myCmd As Object
Set myCmd = CommandBars("Worksheet menu bar").Controls("文件(&F)")
myCmd.Controls("保存(&S)").Delete
End Sub
要還原菜單上的命令控件,必須知道該控件的標識 (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