Excel个性化菜单攻略大全.docx
- 文档编号:30017387
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:19
- 大小:20.67KB
Excel个性化菜单攻略大全.docx
《Excel个性化菜单攻略大全.docx》由会员分享,可在线阅读,更多相关《Excel个性化菜单攻略大全.docx(19页珍藏版)》请在冰豆网上搜索。
Excel个性化菜单攻略大全
Excel个性化菜单攻略大全!
要在Excel2003中执行许多与自定义菜单栏和菜单相关的常见任务,请使用“自定义”对话框。
要执行更多高级任务或为自定义程序定制菜单栏和菜单,可能需要创建MicrosoftVisualBasicforApplications(VBA)代码。
有关如何使用“自定义”对话框的更多信息,请单击“帮助”菜单上的“MicrosoftExcel帮助”,在“Office助手”或“应答向导”中键入自定义菜单栏,然后单击“搜索”以查看主题。
本文帮助您学习编写VBA代码,掌握自定义菜单栏、菜单、菜单项、子菜单和快捷菜单的方法。
Microsoft提供的编程示例只用于说明目的,不附带任何明示或默示的保证。
这包括但不限于对适销性或特定用途适用性的默示保证。
本文假定您熟悉所演示的编程语言和用于创建和调试过程的工具。
Microsoft的支持工程师可以帮助解释某个特定过程的功能,但是他们不会修改这些示例以提供额外的功能或构建过程以满足您的特殊需求。
命令栏
在MicrosoftOffice中,所有工具栏、菜单栏和快捷菜单都是被作为“命令栏”这样一种对象以编程方式控制的。
下列所有项目在VBA中皆用CommandBar对象表示:
1.菜单栏、工具栏和快捷菜单。
2.菜单栏和工具栏上的菜单。
3.菜单、子菜单和快捷菜单上的子菜单。
您可以修改任何内置的菜单栏和工具栏,还可以创建和修改用您自己的VBA代码交付的自定义工具栏、菜单栏和快捷菜单。
您可以将程序功能以单个按钮的形式放在工具栏上,或以命令名称组的形式放在菜单上。
因为工具栏和菜单都是命令栏,所以可以使用同一类型的控件。
在VBA和MicrosoftVisualBasic中,按钮和菜单项用CommandBarButton对象表示。
显示菜单和子菜单的弹出控件用CommandBarPopup对象表示。
在以下示例中,名为“Menu”的控件和名为“Submenu”的控件都是用于显示菜单和子菜单的弹出控件,并且这两个控件是各自的控件集中唯一的CommandBar对象。
在MicrosoftExcel中,菜单栏和工具栏被视为是同一种可编程对象,即CommandBar对象。
可以使用CommandBar对象中的控件来指代菜单、菜单项、子菜单和快捷菜单。
可以在Type参数中使用一个常量为每个控件指定要用于菜单、子菜单或命令的控件类型。
u控件常量
ü下面是Excel2003中的各种控件常量的列表,这些常量指定用于特定菜单栏控件的图形控件类型:
?
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**
*表示MicrosoftExcel2000中的新增项
ü**表示MicrosoftExcel2002中的新增项
ü***表示MicrosoftOfficeExcel2003中的新增项
菜单栏
菜单栏是一种命令栏。
它是一种可在其中添加菜单、菜单项和子菜单的对象。
下表列出了最常见的属性和常用于更改控件的状态、操作或内容的方法:
属性或方法用途。
Add添加菜单栏,方法是使用CommandBars对象集合的Add方法,然后为Menubar参数指定TRUE值。
Enabled如果Enabled属性的值为TRUE,那么用户可以使用VisualBasic代码使指定的菜单栏可见。
如果Enabled属性的值为FALSE,用户就无法让菜单栏可见。
不过,菜单栏将出现在可用命令栏列表中。
Protection使您可以通过特定用户操作来保护菜单栏。
Position指定新菜单栏相对于程序窗口的位置。
菜单栏相对于程序窗口的位置可以是以下MsoBarPosition常量属性之一:
msoBarLeft、msoBarTop、msoBarRight、msoBarBottom、msoBarFloating、msoBarPopup(用于创建快捷菜单)或msoBarMenuBar(仅用于AppleMacintosh)。
Visible指定控件是可见的,还是隐藏的。
返回命令栏控件的ID
以下代码示例返回活动菜单栏的ID:
SubId_Control()
DimmyIdasObject
setmyId=CommandBars("WorksheetMenuBar").Controls("Tools")
MsgBoxmyId.Caption&Chr(13)&MyId.Id
EndSub
确定活动菜单栏的名称
以下代码示例返回活动菜单栏的名称:
SubMenuBars_GetName()
MsgBoxCommandBars.ActiveMenuBar.Name
EndSub
保存(内置或自定义菜单栏的)活动状态
您可能需要将OriginalMenuBar变量声明为公共变量,这样,子例程就可以在其他子例程(如Auto_Close子例程)中使用该变量。
以这种方式声明和使用该变量会将用户的上一个菜单栏重置为初始状态。
以下示例宏重置菜单栏:
PublicOriginalMenuBarasObject
SubMenuBars_Capture()
SetOriginalMenuBar=CommandBars.ActiveMenuBar
EndSub
创建自定义命令栏
以下代码示例创建名为MyCommandBar的自定义命令栏:
SubMenuBar_Create()Application.CommandBars.AddName:
="Mycommandbar"EndSub
您还可以通过使用Temporary:
=True参数来创建自定义命令栏。
Temporary:
=True参数允许命令栏在您退出Excel时自动重置。
以下代码使用Temporary:
=True参数创建自定义命令栏:
SubMenuBar_Create()
Application.CommandBars.AddName:
="Mycommandbar",Temporary:
=True
EndSub显示自定义命令栏
以下示例创建并显示自定义的“MyCustomBar”菜单栏,然后用它替换内置的菜单栏:
SubMenuBar_Show()
DimmyNewBarAsObject
SetmyNewBar=CommandBars.Add(Name:
="Custom1",Position:
=msoBarFloating)
’Youmustfirstenableyourcustommenubarbeforeyoumakeitvisible.
’Enablingamenubaraddsittothelistofavailablemenubarson
’theCustomizedialogbox.
’Settingthemenubarproperty
toTruereplacesthebuilt-inmenubar.
myNewBar.Enabled=True
myNewBar.Visible=True
EndSub
删除自定义命令栏
以下代码示例删除名为“Custom1”的自定义菜单栏:
SubMenuBar_Delete()
CommandBars("Custom1").Delete
EndSub
隐藏命令栏
以下代码示例从可用菜单栏列表中删除内置“图表”菜单栏:
SubMenuBar_Display()
CommandBars("Chart").Enabled=False
EndSub
显示命令栏
以下代码示例从可用菜单栏中添加内置“图表”菜单栏:
SubMenuBar_Display()
CommandBars("Chart").Enabled=True
EndSub
还原内置命令栏
还原菜单栏会重置(菜单和菜单项的)默认控件。
以下代码示例还原内置“图表”菜单栏:
SubMenuBar_Restore()
CommandBars("Chart").Reset
EndSub注意:
您只能重置内置菜单栏,不能重置自定义菜单栏。
菜单
还原菜单栏会重置(菜单和菜单项的)默认控件。
以下代码示例还原内置“图表”菜单栏:
SubMenuBar_Restore()
CommandBars("Chart").Reset
EndSub注意:
您只能重置内置菜单栏,不能重置自定义菜单栏。
向命令栏添加自定义菜单控件
以下代码示例将您通过编程方式添加的菜单名称添加到“工作表”菜单栏中。
例如,此代码会将菜单名称“NewMenu”添加到“工作表”菜单栏中。
注意:
您可以根据需要为该菜单指定任何名称。
SubMenu_Create()
DimmyMnuAsObject
SetmyMnu=CommandBars("Worksheetmenubar").Controls._
Add(Type:
=msoControlPopup,before:
=3)
WithmyMnu
’The"&"denotesashortcutkeyassignment(Alt+Minthiscase).
.Caption="New&Menu"
EndWith
EndSub
禁用命令栏上的菜单控件
禁用的菜单控件在命令栏中显示为灰色,并且不可用。
以下示例禁用“NewMenu”菜单:
SubMenu_Disable()
CommandBars("Worksheetmenubar").Controls("New
&Menu").Enabled=False
EndSub
启用命令栏上的菜单控件
以下代码示例启用您在“禁用命令栏上的菜单控件”一节中禁用的NewMenu菜单:
SubMenu_Disable()
CommandBars("Worksheetmenubar").Controls("New&Menu").Enabled=True
EndSub
删除命令栏上的菜单控件
以下代码示例从“工作表”菜单栏中删除您在“向命令栏添加自定义菜单控件”一节中创建的“NewMenu”菜单:
SubMenu_Delete()
CommandBars("Worksheetmenubar").Controls("New&Menu").Delete
EndSub
还原命令栏上的菜单控件
以下代码示例还原“工作表”菜单栏上的内置“图表”菜单栏:
SubMenu_Restore()
DimmyMnuAsObject
SetmyMnu=CommandBars("Chart")
myMnu.Reset
EndSub
命令
可以对命令进行的修改与控件的类型有关。
一般来说,按钮要么被启用,要么被隐藏。
而编辑框、下拉列表框和组合框较为灵活一些,因为您可以在列表中
添加或删除项目。
另外,还可以通过查看在列表中选中的项目的值来确定执行的操作。
您可以将任何控件的操作更改为内置函数或自定义函数。
下表列出了最常见的控件属性和更改控件的状态、操作或内容的方法:
属性或方法用途
Add向命令栏添加命令。
AddItem向下拉列表框或组合框的下拉列表部分添加项目。
Style指定按钮上是显示图标还是显示标题。
OnAction指定用户更改控件值时所运行的过程。
Visible指定控件是可见的,还是隐藏的。
向菜单控件添加分隔条
以下代码示例在“插入”菜单上的工作表命令之前添加分隔条:
SubmenuItem_AddSeparator()
CommandBars("Worksheetmenubar").Controls("Insert")_
.Controls("Worksheet").BeginGroup=True
EndSub注意:
要删除分隔条,请将BeginGroup属性设置为False。
在菜单上创建自定义命令控件
以下代码示例在“工作表”菜单栏的“工具”菜单上创建名为Custom1的新命令,然后,当您单击“Custom1”时,它将运行Code_Custom1宏:
SubmenuItem_Create()
WithCommandBars("Worksheetmenubar").Controls("Tools")
.Controls.Add(Type:
=msoControlButton,Before:
=1).Caption="Custom1"
.Controls("Custom1").OnAction="Code_Custom1"
EndWith
EndSub
在命令控件旁放置选中标记
以下代码示例在Custom1命令未选中的情况下在其旁边放置一个选中标记;如果Custom1命令已选中,则将删除该选中标记:
SubmenuItem_checkMark()
DimmyPopupasObject
SetmyPopup=CommandBars("Worksheetmenubar").Controls("Tools")
IfmyPopup.Controls("Custom1").State=msoButtonDownThen
’Removecheckmarknexttomenuitem.
myPopup.Controls("Custom1").State=msoButtonUp
MsgBox"Custom1isnowunchecked"
Else
’Addcheckmarknexttomenuitem.
myPopup.Controls("Custom1").State=msoButtonDown
MsgBox"Custom1isnowchecked"
EndIf
EndSub
禁用命令栏上的命令控件
以下代码示例禁用您在“在菜单上创建自定义命令控件”一节中在“工具”菜单上创建的Custom1命令:
SubMenuItem_Disable()
DimmyCmdasObject
SetmyCmd=CommandBars("Worksheetmenubar").Controls("Tools")
myCmd.Controls("Custom1").Enabled=False
EndSub
启用命令栏上的命令控件
以下代码示例启用您在“禁用命令栏上的命令控件”一节中禁用的Custom1命令:
SubMenuItem_Enable()
DimmyCmdasObject
SetmyCmd=CommandBars("Worksheetmenubar").Controls("Tools")
myCmd.Controls("Custom1").Enabled=True
EndSub
删除菜单上的命令控件
以下代码示例删除“文件”菜单上的“保存”命令:
SubmenuItem_Delete()
DimmyCmdAsObject
SetmyCmd=CommandBars("Worksheetmenubar").Controls("File")
myCmd.Controls("Save").Delete
EndSub
还原菜单上的内置命令控件
要还原菜单上的命令控件,必须知道该控件的标识(ID)号。
要确定ID号,请参见“返回命令栏控件的ID”一节。
以下示例先删除您在“删除菜单上的命令控件”一节中删除的“保存”命令,然后又将其还原:
SubmenuItem_Restore()
DimmyCmdAsObject
SetmyCmd=CommandBars("Worksheetmenubar").Controls("File")
’Id3referstotheSavemenuitemcontrol.
myCmd.Controls.AddType:
=msoControlButton,ID:
=3,Before:
=5
EndSub
子菜单
当您单击某个命令时,父菜单的一侧会出现子菜单。
作为子菜单控件的命令在其名称右边有一个黑色小箭头。
添加子菜单
以下代码示例向“工作表”菜单栏上的“工具”菜单添加名为“NewSub”的新子菜单:
SubSubMenu_Create()
DimnewSubasObject
SetnewSub=CommandBars("Worksheetmenubar").Controls("Tools")
WithnewSub
.Controls.Add(Type:
=msoControlPopup,Before:
=1).Caption="NewSub"
EndWith
EndSub
向子菜单添加命令
以下代码示例向“NewSub”子菜单添加名为“SubItem1”的新命令,然后,当您单击“SubItem1”时,它将运行Code_SubItem1宏:
SubSubMenu_AddItem()
DimnewSubItemasObject
SetnewSubItem=CommandBars("Worksheetmenubar")_
.Controls("Tools").Controls("NewSub")
WithnewSubItem
.Controls.Add(Type:
=msoControlButton,Before:
=1).Caption="SubItem1"
.Controls("SubItem1").OnAction="Code_SubItem1"
EndWith
EndSub
禁用子菜单上的命令控件
以下代码示例禁用您在“向子菜单添加命令”一节中创建的SubItem命令:
SubSubMenu_DisableItem()
CommandBars("Worksheetmenubar").Controls("Tools")_
.Controls("NewSub").Controls("SubItem1").Enabled=False
EndSub
以下代码示例启用同一SubItem命令:
SubSubMenu_DisableItem()
CommandBars("Worksheetmenubar").Controls("Tools")_
.Controls("NewSub").Controls("SubItem1").Enabled=True
EndSub
删除子菜单上的命令
以下示例删除您在“向子菜单添加命令”一节中在“NewSub”子菜单上创建的SubItem1命令:
SubSubMenu_DeleteItem()
CommandBars("Worksheetmenubar").Controls("Tools")_
.Controls("NewSub").Controls("SubItem1").Delete
EndSub
禁用子菜单控件
以下代码示例禁用您在“添加子菜单”一节中在“工具”菜单上创建的“NewSub”子菜单:
SubSubMenu_DisableSub()
CommandBars("Worksheetmenubar").Controls("Tools")_
.Controls("NewSub").Enabled=False
EndSub注意:
要启用已禁用的控件,请将Enabled属性设置为True。
删除子菜单控件
以下代码示例删除您在“添加子菜单”一节中在“工具”菜单上创建的“NewSub”子菜单:
SubSubMenu_DeleteSub()
CommandBars("Worksheetmenubar").Controls("Tools")_
.Controls("NewSub").Delete
EndSub
快捷菜单栏快捷菜单是在用户右键单击某个对象时出现的浮动命令栏。
快捷菜单栏可以包含与命令栏相同的控件类型,而这些控件的作用也和命令栏上控件的作用相同。
在大多数程序中,您无法从程序界面创建或修改快捷菜单,因而必须在运行时创建和修改快捷菜单。
新建快捷菜单栏
以下代码示例创建名为“myShortcutBar”的快捷菜单栏:
SubShortcut_Create()
DimmyShtCtBarasObject
SetmyShtCtBar=CommandBars.Add(Name:
="myShortcutBar",_
Position:
=msoBarPopup)
‘Thisdisplaystheshortcutmenubar.
‘200,200referstothescreenpositioninpixelsasxandycoordinates.
myShtCtBar.ShowPopup200,200
EndSub
注意:
由于没有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Excel 个性化 菜单 攻略 大全