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

上传人:微*** 文档编号:119940846 上传时间:2022-07-16 格式:DOCX 页数:5 大小:22.92KB
收藏 版权申诉 举报 下载
Excel的工具栏和菜单栏VBA源码实例_第1页
第1页 / 共5页
Excel的工具栏和菜单栏VBA源码实例_第2页
第2页 / 共5页
Excel的工具栏和菜单栏VBA源码实例_第3页
第3页 / 共5页
资源描述:

《Excel的工具栏和菜单栏VBA源码实例》由会员分享,可在线阅读,更多相关《Excel的工具栏和菜单栏VBA源码实例(5页珍藏版)》请在装配图网上搜索。

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

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

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

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

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

6、 CommandBarEnd Sub但,Excel好像任何变化,这是因为自定义工具栏的默认Visible为False。Sub AddCommandBar2()添加一自定义工具栏 ,并显示Dim cmdBar As CommandBarcmdBar.Visible = TrueEnd Sub2、Position 示例Position:默认值为 msoBarFloating常量说明msoBarLeft、msoBarTop、msoBarRight和 msoBarBottom 指定新命令栏的左侧、顶部、右侧和底部坐标 msoBarFloating指定新命令栏不固定 msoBarPopup指定新命令栏为

7、快捷菜单 msoBarMenuBar 仅适用于 Macintosh 机Sub AddCommandBar3()Dim cmdBar As CommandBarWith cmdBar.Name = My Bar.Visible = True.Position = msoBarTopEnd WithEnd SubSub AddCommandBar4()Dim cmdBar As CommandBarcmdBar.Visible = TrueEnd Sub为了避免出现重复的自定义工具栏,常规的代码写法是先删除工具栏后,再添加。Sub AddCommandBar5()Dim cmdBar As Com

8、mandBarCall DeleteCommandBarcmdBar.Visible = TrueEnd SubSub DeleteCommandBar。On Error Resume NextApplication.CommandBars(My Bar).DeleteEnd Sub3、 CommandBar Controls Type 示例 接下来我们介绍 CommandBarControl对象CommandBarControl 对象与 CommandBarButton 、 CommandBarComboBox 以及 CommandBarPopup 对象具有同样的属性和方法.Sub AddC

9、mdCtlType()Dim cmdBar As CommandBarDim cmdBtn As CommandBarButtonDim cmdCombo As CommandBarComboBoxDim cmdPop As CommandBarPopupCall DeleteCtlWith cmdBar.Visible = TrueSet cmdBtn = .Controls.Add(Type:=msoControlButton)With cmdBtn.Caption = Button.Style = msoButtonCaptionEnd WithSet cmdPop = .Control

10、s.Add(Type:=msoControlPopup)With cmdPop.Caption = PopupEnd WithSet cmdCombo = .Controls.Add(Type:=msoControlComboBox)With cmdCombo.Caption = ComboEnd WithEnd WithEnd SubSub DeleteCtl()On Error Resume NextApplication.CommandBars(CommandControl Type).DeleteEnd Sub4、 Width、Height 示例Sub AddButtonHight()

11、Dim cmdBar As CommandBarDim cmdBtn As CommandBarButtonCall DeleteBtnWith 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(cmd

12、Btn Type).DeleteOn Error GoTo 0End Sub5、 内置 FacelD、OnAction 和 Style 在 CommandBarButton 中的示例Sub AddCmdButton()Dim cmdBar As CommandBarDim cmdBtn As CommandBarButtonDim cmdBtn2 As CommandBarButtonCall DeleteBtnWith cmdBar.Visible = TrueSet cmdBtn = .Controls.Add(Type:=msoControlButton)With cmdBtn.Capt

13、ion = 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 Button1 testEnd S

14、ubSub ButtonShow2()MsgBox Button2 testEnd 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 CommandBarButtonCall Delet

15、eMenuBarSet cmdBar = Application.CommandBars(WorkSheet Menu Bar)Set cmdBar = Application.CommandBarsWith cmdBarSet cmdMenu = .Controls.Add(Type:=msoControlPopup, temporary:=True)With cmdMenu.Caption = My MenuSet cmdBtn = .Controls.Add(Type:=msoControlButton)With cmdBtn.Caption = Iteml.OnAction = Ite

16、mlAction.Faceld = 12End WithEnd WithEnd WithEnd SubSub Item1Action()MsgBox Menu Item testEnd SubSub DeleteMenuBar()On Error Resume NextApplication.CommandBars.Controls(My Menu).Delete|End Sub9、利用内置命令制作自己的菜单Sub AddMenuBar2()Dim cmdBar As CommandBarDim cmdMenu As CommandBarPopupDim cmdBtn As CommandBa

17、rButtonDim 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 = My MenuSet cmdBtn = .Controls.Add(Type:=mso

18、ControlButton) 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.xIa

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!