Ecel VBA自定义菜单和菜单栏_第1页
Ecel VBA自定义菜单和菜单栏_第2页
Ecel VBA自定义菜单和菜单栏_第3页
Ecel VBA自定义菜单和菜单栏_第4页
Ecel VBA自定义菜单和菜单栏_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Excel VBA自定义菜单和菜单栏(江羽收集整理)【目录】 TOC o 1-5 h z 前言3 HYPERLINK l bookmark2 o Current Document 一、简介3 HYPERLINK l bookmark4 o Current Document 二、命令栏 4 HYPERLINK l bookmark6 o Current Document 三、控件常量 4 HYPERLINK l bookmark8 o Current Document 四、菜单栏6 HYPERLINK l bookmark10 o Current Document Add方法应用于 Comman

2、dBars对象6 HYPERLINK l bookmark12 o Current Document 4.2返回命令栏控件的ID7 HYPERLINK l bookmark14 o Current Document 4.3确定活动菜单栏的名称7 HYPERLINK l bookmark16 o Current Document 4.4保存(内置或自定义菜单栏的)活动状态8 HYPERLINK l bookmark18 o Current Document 4.5创建自定义命令栏8 HYPERLINK l bookmark20 o Current Document 4.6显示自定义命令栏8 HY

3、PERLINK l bookmark22 o Current Document 4.7删除自定义命令栏9 HYPERLINK l bookmark24 o Current Document 4.8隐藏命令栏9 HYPERLINK l bookmark26 o Current Document 4.9显示命令栏9 HYPERLINK l bookmark28 o Current Document 4.10还原内置命令栏9 HYPERLINK l bookmark30 o Current Document 五、菜单10 HYPERLINK l bookmark32 o Current Docume

4、nt Add 方法用于 CommandBarControls 对象 10 HYPERLINK l bookmark34 o Current Document 5.2向命令栏添加自定义菜单控件11 HYPERLINK l bookmark36 o Current Document 5.3禁用命令栏上的菜单控件11 HYPERLINK l bookmark38 o Current Document 5.4启用命令栏上的菜单控件11 HYPERLINK l bookmark40 o Current Document 5.5删除命令栏上的菜单控件12 HYPERLINK l bookmark42 o

5、Current Document 5.6还原命令栏上的菜单控件12 HYPERLINK l bookmark44 o Current Document 六、命令 12 HYPERLINK l bookmark46 o Current Document 6.1向菜单控件添加分隔条13 HYPERLINK l bookmark48 o Current Document 6.2在菜单上创建自定义命令控件13 HYPERLINK l bookmark50 o Current Document 6.3在命令控件旁放置选中标记13 HYPERLINK l bookmark52 o Current Docu

6、ment 6.4禁用命令栏上的命令控件14 HYPERLINK l bookmark54 o Current Document 6.5启用命令栏上的命令控件14 HYPERLINK l bookmark56 o Current Document 6.6删除菜单上的命令控件15 HYPERLINK l bookmark58 o Current Document 6.7还原菜单上的内置命令控件15 HYPERLINK l bookmark60 o Current Document 七、子菜单15 HYPERLINK l bookmark62 o Current Document 7.1添加子菜单1

7、6 HYPERLINK l bookmark64 o Current Document 7.2向子菜单添加命令16 HYPERLINK l bookmark66 o Current Document 7.3禁用子菜单上的命令控件167.4删除子菜单上的命令7.5禁用子菜单控件7.6删除子菜单控件 八、快捷菜单栏8.1新建快捷菜单栏 九、快捷菜单171717181819 TOC o 1-5 h z HYPERLINK l bookmark80 o Current Document 9.1在快捷菜单栏上创建命令19171717181819 HYPERLINK l bookmark82 o Curr

8、ent Document 9.2禁用快捷菜单栏上的命令控件19 HYPERLINK l bookmark84 o Current Document 9.3删除快捷菜单栏上的命令20 HYPERLINK l bookmark86 o Current Document 9.4删除快捷菜单栏20 HYPERLINK l bookmark88 o Current Document 9.5还原内置快捷菜单栏上的命令20 HYPERLINK l bookmark90 o Current Document 十、快捷菜单上的子菜单20 HYPERLINK l bookmark92 o Current Docu

9、ment 10.1在快捷菜单栏上新建子菜单21 HYPERLINK l bookmark94 o Current Document 10.2在快捷菜单栏的子菜单上创建命令控件21 HYPERLINK l bookmark96 o Current Document 10.3禁用快捷菜单上的子菜单项控件22 HYPERLINK l bookmark98 o Current Document 10.4删除快捷菜单上的子菜单项控件22 HYPERLINK l bookmark100 o Current Document 10.5禁用快捷菜单上的子菜单控件22 HYPERLINK l bookmark1

10、02 o Current Document 10.6删除快捷菜单上的子菜单控件23在EXCEL中,我们的操作都是通过“工具栏、菜单栏、快捷菜”单实现。EXCEL通 过菜单给我们提供基本操作功能之外,也为我们提供了扩展自定义功能的接口,即自定义自 己的工具栏、菜单栏。本文着重介绍如何在Excel 2003版本中通过编程方式自定义菜单和菜单栏方法。其中 包含Excel中管理和自定义菜单栏、菜单、命令、子菜单和快捷菜单,我将通过代码实例 分步说明。与大家分享关于VBA实现菜单栏管理与自定义菜单栏功能的实现。一、简介在Microsoft Excel 2000以上版本中实现许与自定义菜单栏和菜单相关的常

11、见任务,可 以使用“自定义”对话框(见图11)。但如果要实现较高级任务或为自定义程序定制菜单栏 和菜单,就需要创建 Microsoft Visual Basic for Applications (VBA)代码。自定熨工具栏 命令 选项(Q)在工員栏中忝加新命令:选择类别并将命令从此对诣框拖放至工晨 負别:命专迦:載电表和豹据口图选作b数窗瑩自制weSira 箱載电表和豹据口图选作b数窗瑩自制weSira 箱新菜单更改所选內容帅自走文菜单项= 自定交捲钮V重排命令.其闭图1.1有关如何使用“自定义”对话框的更多信息,你可以单击“帮助”菜单上的MicrosoftExcel自定义菜单和菜单栏 Ex

12、cel帮助”在“Office助手”或“搜索向导”中键入自定义菜单栏,然后单击“搜索” 查看主题。二、命令栏在Microsoft Office中,所有工具栏、菜单栏和快捷菜单都是被作为“命令栏”这样- 种对象以编程方式控制的。下列所有项目在VBA中皆用CommandBar对象表示:菜单栏、工具栏和快捷菜单。菜单栏和工具栏上的菜单。菜单、子菜单和快捷菜单上的子菜单。您可以修改任何内置的菜单栏和工具栏,还可以创建和修改用您自己的VBA代码交 付的自定义工具栏、菜单栏和快捷菜单。您可以将程序功能以单个按钮的形式放在工具栏上, 或以命令名称组的形式放在菜单上。因为工具栏和菜单都是命令栏,所以可以使用同一

13、类型 的控件。在 VBA 和 Microsoft Visual Basic 中,按钮和菜单项用 CommandBarButton 对象表 示。显示菜单和子菜单的弹出控件用CommandBarPopup对象表示。在以下示例中,名为 “Menu”的控件和名为“Submenu”的控件都是用于显示菜单和子菜单的弹出控件,并且 这两个控件是各自的控件集中唯一的CommandBar对象。在Microsoft Excel中,菜单栏和工具栏被视为是同一种可编程对象,即CommandBar 对象。可以使用CommandBar对象中的控件来指代菜单、菜单项、子菜单和快捷菜单。 可以在Type参数中使用一个常量为每

14、个控件指定要用于菜单、子菜单或命令的控件类型。三、控件常量下面是Excel 2003中的各种控件常量的列表,这些常量指定用于特定菜单栏控件的图 形控件类型:MsoControlActiveX*MsoControlAutoCompleteCombo*MsoControlButtonExcel自定义菜单和菜单栏MsoControlButtonDropdownMsoControlButtonPopupMsoControlComboBoxMsoControlCustomMsoControlDropdownMsoControlEditMsoControlExpandingGridMsoControlGa

15、ugeMsoControlGenericDropdownMsoControlGraphicComboMsoControlGraphicDropdownMsoControlGraphicPopupMsoControlGridMsoControlLabelMsoControlLabelEx*MsoControlOCXDropDownMsoControlPane *MsoControlPopupMsoControlSpinner*MsoControlSplitButtonMRUPopupMsoControlSplitButtonPopupMsoControlSplitDropdownMsoContr

16、olSplitExpandingGridMsoControlWorkPane*表示 Microsoft Excel 2000中的新增项*表示 Microsoft Excel 2002中的新增项* 表示 Microsoft Office Excel 2003 中的新增项四、菜单栏菜单栏是一种命令栏。它是一种可在其中添加菜单、菜单项和子菜单的对象。有关如何在Excel中管理菜单栏和菜单项的更多信息,请按照下列步骤操作:启动 Microsoft Visual Basic 编辑器。在“帮助”菜单上,单击“Microsoft Visual Basic帮助”。在“Office助手”框或“应答向导”框中,键

17、入菜单栏,然后单击“搜索”在Excel2003和Excel2002中,单击“添加和管理菜单栏和菜单项”。在Excel2000中,单击“关于菜单和工具栏”。可以在运行时修改菜单栏及该菜单栏上的控件。对菜单栏所做的更改可能会影响菜单栏的外观或位置。可对控件进行的更改取决于控件类型。下表列出了最常见的属性和常用于更改控件的状态、操作或内容的方法:属性或方法用途Add添加菜单栏,方法是使用CommandBars对象集合的Add 方法,然后为Menubar参数指定TRUE值。Enabled如果Enabled属性的值为 TRUE,那么用户可以使用 Visual Basic代码使指定的菜单栏可见。如果Ena

18、bled属性 的值为FALSE,用户就无法让菜单栏可见。不过,菜单栏 将出现在可用命令栏列表中。Protection使您可以通过特定用户操作来保护菜单栏。Position指定新菜单栏相对于程序窗口的位置。菜单栏相对于程序 窗口的位置可以是以下 MsoBarPosition常量属性之一: msoBarLeft、msoBarTop、msoBarRight、msoBarBottom、 msoBarFloating、msoBarPopup (用于创建快捷菜单)或 msoBarMenuBar (仅用于 Apple Macintosh)oVisible定控件是可见的指,还是隐藏的。4.1 Add方法应用于

19、CommandBars对象新建一个命令栏并添加到命令栏集合。返回CommandBar对象。expression.Add ( Name , Position , MenuBar , Temporary )expression必需。该表达式返回一个CommandBars对象。Name (Variant类型)可选。新命令栏的名称。如果忽略该参数,则为命令栏指定默认名称(例如:Custom 1)。 Position (Variant类型)可选。新命令栏的位置或类型。可以为下表所列的MsoBarPosition 常量之一。常量说明msoBarLeft、msoBarTop、msoBarRight 和 ms

20、oBarBottom指定新命令栏的左侧、顶部、右侧和底部坐标msoBarFloating指定新命令栏不固定msoBarPopup指定新命令栏为快捷菜单msoBarMenuBar仅适用于Macintosh机MenuBar (Variant类型)可选。设置为True将以新命令栏替换活动菜单栏。默认值为False。Temporary (Variant类型)可选。设置为True将使新命令栏为临时命令栏。临时命令栏在关闭容器应用程序时删除。默认值为Falseo4.2返回命令栏控件的ID以下代码示例返回活动菜单栏的ID:Sub Id_Control ()Dim myId as ObjectSet myId

21、 = CommandBars(Worksheet Menu Bar).Controls(工具(&T)MsgBox myId.Caption & Chr(13) & MyId.IdEnd Sub43确定活动菜单栏的名称以下代码示例返回活动菜单栏的名称:Sub MenuBars_GetName()MsgBox CommandBars.ActiveMenuBar.Name44保存(内置或自定义菜单栏的)活动状态您可能需要将OriginalMenuBar变量声明为公共变量,这样,子例程就可以在其他子 例程(如Auto_Close子例程)中使用该变量。以这种方式声明和使用该变量会将用户的上 一个菜单栏重

22、置为初始状态。以下示例宏重置菜单栏:Public OriginalMenuBar as ObjectSub MenuBars_Capture()Set OriginalMenuBar = CommandBars.ActiveMenuBarEnd Sub45创建自定义命令栏以下代码示例创建名为My Command Bar的自定义命令栏:Sub MenuBar_Create()Application.CommandBars.Add Name:=My command barEnd Sub您还可以通过使用Temporary:=True参数来创建自定义命令栏Temporary:=True参数 允许命令栏

23、在您退出Excel时自动重置。以下代码使用Temporary:=True参数创建自定义 命令栏:Sub MenuBar_Create()Application.CommandBars.Add Name:=My command bar, Temporary:=TrueEnd Sub4.6显示自定义命令栏以下示例创建并显示自定义的“My Custom Bar”菜单栏,然后用它替换内置的菜单栏:Sub MenuBar_Show()Dim myNewBar As ObjectSet myNewBar = CommandBars.Add(Name:=Customl, Position:=msoBarFl

24、oating)您必须先启用您的自定义菜单栏,然后看见它。使菜单栏添加到自定义对话框列表中的可用菜单栏上。设置菜单属性设置为True取代内置的菜单栏。myNewBar.Enabled = TruemyNewBar.Visible = TrueEnd Sub4.7删除自定义命令栏以下代码示例删除名为“ Custom 1”的自定义菜单栏:Sub MenuBar_Delete()CommandBars(Custom1).DeleteEnd Sub4.8隐藏命令栏以下代码示例从可用菜单栏列表中删除内置“图表”菜单栏:Sub MenuBar_Display()CommandBars(Chart).Enab

25、led = FalseEnd Sub4.9显示命令栏以下代码示例从可用菜单栏中添加内置“图表”菜单栏:Sub MenuBar_Display()CommandBars(Chart).Enabled = TrueEnd Sub4. 10还原内置命令栏还原菜单栏会重置(菜单和菜单项的)默认控件。示例代码还原内置“图表”菜单栏:Sub MenuBar_Restore()CommandBars(Chart).ResetEnd Sub注意:您只能重置内置菜单栏,不能重置自定义菜单栏。五、菜单5.1 Add 方法用于 CommandBarControls 对象新建一个CommandBarControl对象

26、并添加到指定命令栏上的控件集合。Expression.Add ( Type , Id , Parameter , Before , Temporary )expression必需。该表达式返回一个CommandBarControls对象。Type ( Variant类型)可选。添加到指定命令栏的控件类型。可以为下列MsoControlType 常量之一:常量说明msoControlButton命令按钮msoControlEdit文本框msoControlDropdown下拉列表msoControlComboBox组合框msoControlPopup弹出菜单Id (Variant类型)可选。指定

27、内置控件的整数。如果该参数为1 ,或者忽略该 参数,将在命令栏中添加一个空的指定类型的自定义控件。Parameter( Variant类型)可选。对于内置控件,该参数用于容器应用程序运行 命令。对于自定义控件,可以使用该参数向Visual Basic过程传递信息,或用其 存储控件信息(类似于第二个Tag属性值)。Before(Variant类型)可选。表示新控件在命令栏上位置的数字。新控件将插入 到该位置控件之前。如果忽略该参数,控件将添加到指定命令栏的末端。Temporary (Variant类型)可选。设置为True将使新命令栏为临时命令栏。临时命令栏在关闭容器应用程序时删除。默认值为Fa

28、lse。5.2向命令栏添加自定义菜单控件以下代码示例将您通过编程方式添加的菜单名称添加到“工作表”菜单栏中。例如,此 代码会将菜单名称“New Menu”添加到“工作表”菜单栏中。注意:您可以根据需要为该菜单指定任何名称。Sub Menu_Create()Dim myMnu As ObjectSet myMnu = CommandBars(Worksheet menu bar).Controls.Add(Type:=msoControlPopup, before:=3)With myMnu&用以指定快捷键字符(相当于Alt+M).Caption = New & MenuEnd WithEnd

29、Sub53禁用命令栏上的菜单控件禁用的菜单控件在命令栏中显示为灰色,并且不可用。以下示例禁用“New Menu”菜单:Sub Menu_Disable()CommandBars(Worksheet menu bar).Controls(New &Menu).Enabled = FalseEnd Sub54启用命令栏上的菜单控件以下代码示例启用您在“禁用命令栏上的菜单控件” 一节中禁用的New Menu菜单:Sub Menu_Disable()CommandBars(Worksheet menu bar).Controls(New &Menu).Enabled = TrueEnd Sub55删除

30、命令栏上的菜单控件以下代码示例从“工作表”菜单栏中删除您在“向命令栏添加自定义菜单控件”一节中 创建的“ New Men u”菜单:Sub Menu_Delete()CommandBars(Worksheet menu bar).Controls(New & Menu).DeleteEnd Sub5.6还原命令栏上的菜单控件以下代码示例还原“工作表”菜单栏上的内置“图表”菜单栏:Sub Menu_Restore()Dim myMnu As ObjectSet myMnu = CommandBars(Chart)myMnu.ResetEnd Sub六、命令可以对命令进行的修改与控件的类型有关。一

31、般来说,按钮要么被启用,要么被隐藏。 而编辑框、下拉列表框和组合框较为灵活一些,因为您可以在列表中添加或删除项目。另外, 还可以通过查看在列表中选中的项目的值来确定执行的操作。您可以将任何控件的操作更改 为内置函数或自定义函数。F表列出了最常见的控件属性和更改控件的状态、操作或内容的方法:属性或方法用途Add向命令栏添加命令。AddItem向下拉列表框或组合框的下拉列表部分添加项目。Style指定按钮上是显示图标还是显示标题。OnAction指定用户更改控件值时所运行的过程。OnActionVisible指定控件是可见的,还是隐藏的。要了解有关Excel 2003和Excel 2002中菜单的

32、更多信息,请按照下列步骤操作:启动 Visual Basic脚本编辑器。在“帮助”菜单上,单击“Microsoft Visual Basic帮助”。在“搜索帮助”框中,键入菜单,然后按Entero单击“添加和管理菜单栏和菜单项(Office)”。6.1向菜单控件添加分隔条以下代码示例在“插入”菜单上的工作表命令之前添加分隔条:Sub menuItem_AddSeparator()CommandBars(Worksheet menu bar).Controls(插入(&I) _.Controls(” 工作表(&W).BeginGroup = TrueEnd Sub注意:要删除分隔条,请将Begi

33、nGroup属性设置为False。6.2在菜单上创建自定义命令控件以下代码示例在“工作表”菜单栏的“工具”菜单上创建名为Customl的新命令,然 后,当您单击“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_Custom1End Wit

34、hEnd Sub6.3在命令控件旁放置选中标记以下代码示例在Custom1命令未选中的情况下在其旁边放置一个选中标记;如果Customl命令已选中,则将删除该选中标记:Sub menuItem_checkMark()Dim myPopup as ObjectSet myPopup = CommandBars(Worksheet menu bar).Controls(工 具(&T)If myPopup.Controls(Custom1).State = msoButtonDown Then删除选中标记旁边的菜单项。myPopup.Controls(Custom1).State = msoButt

35、onUpMsgBox Custom1 is now uncheckedElse添加复选标记旁边的菜单项。myPopup.Controls(Custom1).State = msoButtonDownMsgBox Custom1 is now checkedEnd IfEnd Sub6.4禁用命令栏上的命令控件以下代码示例禁用您在“在菜单上创建自定义命令控件”一节中在“工具”菜单上创建 的Custom1命令:Sub MenuItem_Disable()Dim myCmd as ObjectSet myCmd = CommandBars(Worksheet menu bar).Controls(工

36、具(&T) myCmd.Controls(Custom1).Enabled = FalseEnd Sub6.5启用命令栏上的命令控件以下代码示例启用您在“禁用命令栏上的命令控件” 一节中禁用的Custom1命令:Sub MenuItem_Enable()Dim myCmd as ObjectSet myCmd = CommandBars(Worksheet menu bar).Controls(工具(&T)myCmd.Controls(Customl).Enabled = TrueEnd Sub6.6删除菜单上的命令控件以下代码示例删除“文件”菜单上的“保存”命令:Sub menuItem_D

37、elete()Dim myCmd As ObjectSet myCmd = CommandBars(Worksheet menu bar).Controls(文件(&F) myCmd.Controls(” 保存(&S).DeleteEnd Sub6.7还原菜单上的内置命令控件要还原菜单上的命令控件,必须知道该控件的标识(ID)号。要确定ID号,请参见“返回命令栏控件的ID” 一节。以下示例先删除您在“删除菜单上的命令控件” 一节中删除的“保存”命令,然后又将其还原:Sub menuItem_Restore()Dim myCmd As ObjectSet myCmd = CommandBars(

38、Worksheet menu bar).Controls(文件(&F) Id 3为保存子菜单项ID号.myCmd.Controls.Add Type:=msoControlButton, ID:=3, Before:=5End Sub七、子菜单当您单击某个命令时,父菜单的一侧会出现子菜单。作为子菜单控件的命令在其名称右 边有一个黑色小箭头。7.1添加子菜单以下代码示例向“工作表”菜单栏上的“工具”菜单添加名为NewSub”的新子菜单:Sub SubMenu_Create()Dim newSub as ObjectSet newSub = CommandBars(Worksheet menu b

39、ar).Controls(工具(&T)With newSub.Controls.Add(Type:=msoControlPopup, Before:=l).Caption=NewSubEnd WithEnd Sub7.2向子菜单添加命令以下代码示例向“NewSub”子菜单添加名为“SubItem1”的新命令,然后,当您单击 “SubItem1” 时,它将运行 Code_SubItem1 宏:Sub SubMenu_AddItem()Dim newSubItem as ObjectSet newSubItem = CommandBars(Worksheet menu bar) _.Control

40、s(” 工具(&T).Controls(NewSub)With newSubItem.Controls.Add(Type:=msoControlButton, Before:=1).Caption = SubItem1 .Controls(SubItem1).0nAction = Code_SubItem1End WithEnd Sub73禁用子菜单上的命令控件以下代码示例禁用您在“向子菜单添加命令” 一节中创建的SubItem命令:Sub SubMenu_DisableItem()CommandBars(Worksheet menu bar).Controls(工具(&T) _.Contro

41、ls(NewSub).Controls(SubItem1).Enabled = False以下代码示例启用同一 SubItem命令:Sub SubMenu_DisableItem()CommandBars(Worksheet menu bar).Controls(工具(&T) _ .Controls(NewSub).Controls(SubIteml).Enabled = TrueEnd Sub74删除子菜单上的命令以下示例删除您在“向子菜单添加命令”一节中在“NewSub”子菜单上创建的SubItem1 命令:Sub SubMenu_DeleteItem()CommandBars(Works

42、heet menu bar).Controls(工具(&T) _ .Controls(NewSub).Controls(SubItem1).DeleteEnd Sub75禁用子菜单控件以下代码示例禁用您在“添加子菜单”一节中在“工具”菜单上创建的“NewSub”子 菜单:Sub SubMenu_DisableSub()CommandBars(Worksheet menu bar).Controls(工具(&T) _.Controls(NewSub).Enabled = FalseEnd Sub注意:要启用已禁用的控件,请将Enabled属性设置为True。76删除子菜单控件以下代码示例删除您在

43、“添加子菜单”一节中在“工具”菜单上创建的“NewSub”子 菜单:Sub SubMenu_DeleteSub()CommandBars(Worksheet menu bar).Controls(工具(&T).Controls(NewSub).DeleteEnd Sub八、快捷菜单栏快捷菜单是在用户右键单击某个对象时出现的浮动命令栏。快捷菜单栏可以包含与命令 栏相同的控件类型,而这些控件的作用也和命令栏上控件的作用相同。在大多数程序中,您 无法从程序界面创建或修改快捷菜单,因而必须在运行时创建和修改快捷菜单。要获取有关Excel 2002和Excel 2003中的快捷菜单的更多信息,请按照下列

44、步骤操作:启动 Visual Basic脚本编辑器。在“帮助”菜单上,单击“ Microsoft Visual Basic帮助”。在“搜索帮助”框中,键入快捷方式,然后按Entero单击“添加和显示快捷菜单”&1新建快捷菜单栏以下代码示例创建名为“myShortcutBar”的快捷菜单栏:Sub Shortcut_Create()Dim myShtCtBar as ObjectSet myShtCtBar = CommandBars.Add(Name:=myShortcutBar, _Position:=msoBarPopup)这显示快捷菜单栏。200, 200指的是屏幕上的位置的像素为X和Y

45、坐标.myShtCtBar.ShowPopup 200,200注意:由于没有添加任何控件(菜单项或子菜单),因此快捷菜单栏出现时是空的。九、快捷菜单当您右键单击特定的Excel对象时会出现快捷菜单栏。Excel有很多快捷菜单栏,其 中包含各种菜单。您还可以创建自定义快捷菜单栏和自定义内置菜单栏。9.1在快捷菜单栏上创建命令以下代码示例在“myShortcutBar”快捷菜单栏上创建名为Iteml的新菜单命令。当您 单击“Iteml”时,它将运行Code_Item1宏:Sub Shortcut_AddItem()Dim myBar as ObjectSet myBar = CommandBars

46、(myShortcutBar)With myBar.Controls.Add (Type:=msoControlButton, before:=1).Caption = Item1.Controls(Item1).0nAction = Code_Item1End WithmyBar.ShowPopup 200,200End Sub92禁用快捷菜单栏上的命令控件以下代码示例禁用您在“创建快捷菜单上的命令” 一节中创建的Item1命令:Sub Shortcut_DisableItem()Set myBar = CommandBars(myShortcutBar) myBar.Controls(It

47、em1).Enabled = False myBar.ShowPopup 200,200注意:要启用已禁用的项目,请将Enabled属性设置为True。93删除快捷菜单栏上的命令以下代码示例删除“myShortcutBar”快捷菜单栏上的名为Iteml的菜单命令:Sub Shortcut_DeleteItem()Set myBar = CommandBars(myShortcutBar)myBar.Controls(Item1).DeletemyBar.ShowPopup 200,200End Sub94删除快捷菜单栏删除快捷菜单栏将导致删除所有菜单项。您无法还原已删除的自定义菜单栏。要还原它

48、, 必须重新创建该菜单栏及其所有菜单项和子菜单。以下代码示例删除您在“在快捷菜单栏上创建命令”一节中创建的“ myShortCutBar”快捷菜单栏:Sub Shortcut_DeleteShortCutBar()CommandBars(MyShortCutBar).DeleteEnd Sub95还原内置快捷菜单栏上的命令以下代码示例还原工作表“单元格”快捷菜单栏上的默认命令:Sub Shortcut_RestoreItem()CommandBars(Cell).ResetEnd Sub十、快捷菜单上的子菜单可以在快捷菜单栏上创建子菜单。当您单击某个命令控件时,父菜单的一侧会出现子菜 单。作为子菜单控件的命令在其名称右边有一个黑色小箭头。101在快捷菜单栏

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论