收藏 分享(赏)

Excel的工具栏和菜单栏VBA源码实例.doc

上传人:精品资料 文档编号:8320741 上传时间:2019-06-20 格式:DOC 页数:8 大小:87KB
下载 相关 举报
Excel的工具栏和菜单栏VBA源码实例.doc_第1页
第1页 / 共8页
Excel的工具栏和菜单栏VBA源码实例.doc_第2页
第2页 / 共8页
Excel的工具栏和菜单栏VBA源码实例.doc_第3页
第3页 / 共8页
Excel的工具栏和菜单栏VBA源码实例.doc_第4页
第4页 / 共8页
Excel的工具栏和菜单栏VBA源码实例.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、工具栏和菜单栏工具栏和菜单栏的运用更多时候是伴随着加载宏和个性 Excel 界面的出现而出现。在不断加深对Excel VBA 的理解和运用,我们编程的思路渐渐会转到考虑代码的通用性和应用方案上,将代码和 Excel数据源分开。因此,制作更多具有通用功能的加载宏(不管是 xla 加载宏,还是 Com 加载宏) ,可以最大极限的发挥 VBA 编程的魅力,而不是要求用户强制启用宏。也正是因为这个原因,在我们去学习工具栏和菜单栏时,要明白的一个道理是,制作工具栏仅仅是为了加载宏等具体运用的实现,不要一味地去追求工具栏的花哨。一、几个基本概念在开始本节之前,先理解什么是命令栏?命令栏(CommandBa

2、rs ):是工具栏、菜单栏和快捷菜单的统称。工具栏:带有按钮和选项的工具条,使用这些按钮和选项可执行命令。如下图:菜单栏:标题栏下的水平栏,包括菜单名称。如下图快捷菜单:又叫弹出式菜单,鼠标右键单击。如下图。二、CommandBars 集合对象通过上面几幅图片的直观概念之后,我们接下来理解 CommandBar 集合。所有的工具栏和菜单栏代码都是围绕 Commandbars 集合展开的。CommandBarControls 集合包含三种类型控件。CommandBarButton:代表命令栏中的一个按钮控件(按钮控件:工具栏上的按钮,或菜单、子菜单或快捷菜单上的菜单项,当单击它们时会运行一条命令

3、。工具栏按钮和菜单项共享相同的属性和方法。 ) 。该控件的 Type 属性必须是 msoControlButton。 )CommandBarComboBox:代表命令栏中的一个组合框控件(组合框控件:菜单栏、工具栏、菜单、子菜单或快捷菜单上的自定义编辑框、下拉列表框或组合框。当工具栏垂直停靠时,它所包含的任何自定义组合框控件都不可见。 ) 。该控件的 Type 属性必须是 msoControlEdit、msoControlDropdown、msoControlComboBox、msoControlButtonDropdown 、msoControlSplitDropdown、msoContro

4、lOCXDropdown 、msoControlGraphicCombo 或 msoControlGraphicDropdown。 )CommandBarPopup:代表命令栏中的一个弹出式控件(弹出式控件:是菜单栏或工具栏上的内置或自定义控件,当单击它时显示菜单,或者是菜单、子菜单、或快捷菜单上的内置或自定义菜单项,当指针放在其上时显示子菜单。 ) 。该控件的 Type 属性必须是 msoControlPopup、msoControlGraphicPopup、msoControlButtonPopup、msoControlSplitButtonPopup 或 msoControlSplitB

5、uttonMRUPopup。几种常见属性,参数和方法:VisibleNameTypePostionTemporaryCaptionOnActionFaceIDStyleEnableTop/Left/Width/HightBeginGroupControlsAdd 方法Findcontrols 方法下面将通过实例来解释上述属性、参数和方法的运用。三、实例代码1、 建立一命令栏Application.CommandBars.Add 即建立了一个工具栏。一般的,我们会相应的定义一个 Commandbar 对象来操作这个自定义工具栏,如下代码:Sub AddCommandBar1() 添加一自定义工具

6、栏Dim cmdBar As CommandBarSet cmdBar = Application.CommandBars.AddEnd Sub但,Excel 好像任何变化,这是因为自定义工具栏的默认 Visible 为 False。Sub AddCommandBar2() 添加一自定义工具栏 ,并显示Dim cmdBar As CommandBarSet cmdBar = Application.CommandBars.AddcmdBar.Visible = TrueEnd Sub2、 Position 示例Position: 默认值为 msoBarFloating常量 说明msoBarLe

7、ft、msoBarTop 、msoBarRight 和 msoBarBottom 指定新命令栏的左侧、顶部、右侧和底部坐标msoBarFloating 指定新命令栏不固定msoBarPopup 指定新命令栏为快捷菜单msoBarMenuBar 仅适用于 Macintosh 机Sub AddCommandBar3()Dim cmdBar As CommandBarSet cmdBar = Application.CommandBars.Add(, , , Temporary:=True)With cmdBar.Name = “My Bar“.Visible = True.Position = m

8、soBarTopEnd WithEnd SubSub AddCommandBar4()Dim cmdBar As CommandBarSet cmdBar = Application.CommandBars.Add(Name:=“My Bar“, Position:=msoBarTop, Temporary:=True)cmdBar.Visible = TrueEnd Sub为了避免出现重复的自定义工具栏,常规的代码写法是先删除工具栏后,再添加。Sub AddCommandBar5()Dim cmdBar As CommandBarCall DeleteCommandBarSet cmdBar

9、 = Application.CommandBars.Add(Name:=“My Bar“, Position:=msoBarTop, Temporary:=True)cmdBar.Visible = TrueEnd SubSub DeleteCommandBar()On Error Resume NextApplication.CommandBars(“My Bar“).DeleteEnd Sub3、 CommandBar Controls Type 示例接下来我们介绍 CommandBarControl 对象CommandBarControl 对象与 CommandBarButton、Co

10、mmandBarComboBox 以及 CommandBarPopup 对象具有同样的属性和方法.Sub AddCmdCtlType()Dim cmdBar As CommandBarDim cmdBtn As CommandBarButtonDim cmdCombo As CommandBarComboBoxDim cmdPop As CommandBarPopupCall DeleteCtlSet cmdBar = Application.CommandBars.Add(Name:=“CommandControl Type“, Temporary:=True)With cmdBar.Vis

11、ible = TrueSet cmdBtn = .Controls.Add(Type:=msoControlButton)With cmdBtn.Caption = “Button“.Style = msoButtonCaptionEnd WithSet cmdPop = .Controls.Add(Type:=msoControlPopup)With cmdPop.Caption = “Popup“End WithSet cmdCombo = .Controls.Add(Type:=msoControlComboBox)With cmdCombo.Caption = “Combo“End W

12、ithEnd WithEnd SubSub DeleteCtl()On Error Resume NextApplication.CommandBars(“CommandControl Type“).DeleteEnd Sub4、 Width、Height 示例Sub AddButtonHight()Dim cmdBar As CommandBarDim cmdBtn As CommandBarButtonCall DeleteBtnSet cmdBar = Application.CommandBars.Add(Name:=“cmdBtn Type“, temporary:=True)Wit

13、h cmdBar.Visible = TrueSet cmdBtn = .Controls.Add(Type:=msoControlButton)With cmdBtn.Caption = “Hight Show“.Style = msoButtonCaption.Height = 50End WithEnd WithEnd SubSub DeleteBtn()On Error Resume NextApplication.CommandBars(“cmdBtn Type“).DeleteOn Error GoTo 0End Sub5、 内置 FaceID、OnAction 和 Style 在

14、 CommandBarButton 中的示例Sub AddCmdButton()Dim cmdBar As CommandBarDim cmdBtn As CommandBarButtonDim cmdBtn2 As CommandBarButtonCall DeleteBtnSet cmdBar = Application.CommandBars.Add(Name:=“cmdBtn Type“, Temporary:=True)With cmdBar.Visible = TrueSet cmdBtn = .Controls.Add(Type:=msoControlButton)With cm

15、dBtn.Caption = “Button1“.FaceId = 12.OnAction = “ButtonShow1“.Style = msoButtonIconAndCaptionEnd WithSet cmdBtn2 = .Controls.Add(Type:=msoControlButton)With cmdBtn2.Caption = “Button2“.FaceId = 13.OnAction = “ButtonShow2“.Style = msoButtonIconAndCaptionEnd WithEnd WithEnd SubSub ButtonShow1()MsgBox

16、“Button1 test“End SubSub ButtonShow2()MsgBox “Button2 test“End Sub6、 利用个性图案制作自己的 FaceID参考:AddCustomICO.xls7、 CommandBar Type 示例:Popup参考:CommandBar Popup1.xls、CommandBar Popup2.xls、CommandBar Popup Form.xls8、 建立一菜单栏Sub AddMenuBar()Dim cmdBar As CommandBarDim cmdMenu As CommandBarPopupDim cmdBtn As Co

17、mmandBarButtonCall DeleteMenuBarSet cmdBar = Application.CommandBars(“WorkSheet Menu Bar“)Set cmdBar = Application.CommandBars(1)With cmdBarSet cmdMenu = .Controls.Add(Type:=msoControlPopup, temporary:=True)With cmdMenu.Caption = “My Menu“Set cmdBtn = .Controls.Add(Type:=msoControlButton)With cmdBtn

18、.Caption = “Item1“.OnAction = “Item1Action“.FaceId = 12End WithEnd WithEnd WithEnd SubSub Item1Action()MsgBox “Menu Item test“End SubSub DeleteMenuBar()On Error Resume NextApplication.CommandBars(1).Controls(“My Menu“).DeleteEnd Sub9、 利用内置命令制作自己的菜单Sub AddMenuBar2()Dim cmdBar As CommandBarDim cmdMenu

19、 As CommandBarPopupDim cmdBtn As CommandBarButtonDim cmdBuiltInBtn As CommandBarButtonDim cmdBuiltInBtn2 As CommandBarPopupCall DeleteMenuBarSet cmdBar = Application.CommandBars(“WorkSheet Menu Bar“)With cmdBarSet cmdMenu = .Controls.Add(Type:=msoControlPopup, temporary:=True)With cmdMenu.Caption =

20、“My Menu“Set cmdBtn = .Controls.Add(Type:=msoControlButton)With cmdBtn.Caption = “Item1“.OnAction = “Item1Action“.FaceId = 12End WithSet cmdBuiltInBtn = .Controls.Add(Type:=msoControlButton, ID:=18)Set cmdBuiltInBtn2 = .Controls.Add(10, 30017)End WithEnd WithEnd Sub10、恢复工具栏初始状态参考:Reset CommandBar.xls11、列出 CommandBars & CommandControls ID & FaceID参考:ListAllFaceID1.xls、ListAllFaceID2.xls、ListAllFaceID3.xls、ListAllFaceID-Crdotlin.xls12、工具栏练习讲解参考:ProtectSheet.xla

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报