Excel2003_VBA自定义工具栏
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Excel2003_VBA自定义工具栏
Excel2003 VBA 自定义工具栏在 Office 中通过 VBA 开发工具栏和菜单,需使用 Office 提供的 CommandBar、CommandBarButton、CommandBarComboBox 等对象,这些对象即代表工具栏、工具栏按钮和工具栏下拉框,通过这些对象可编制出各类复杂的工具栏或菜单。
mandBars 集合该集合代表 Office 所有的工具栏,可用名称或索引号指定菜单栏或工具栏,但仅可用名称指定一个菜单、快捷菜单或子菜单。
如两个或两个以上自定义菜单或子菜单名称相同,则返回第一个具有该名称的对象。
其 Add 方法用于新建一个工具栏,并返回 CommandBar 对象。
语法:expression.AddName Position MenuBar Temporary 参数说明: Name 为可选的 Variant 类型,代表新工具栏的名称。
如果省略,则使用默认的名称;Position 为可选的 Variant 类型,代表新工具栏的位置。
该参数值可通过 VBA常量进行设置,如 msoBarLeft、msoBarTop、msoBarRight、msoBarBottom 常量设置新工具栏位于软件工具栏中位置;msoBarFloating 常量代表新工具栏可移动;msoBarPopup 常量代表新工具栏为快捷菜单等;MenuBar 为可选的 Variant 类型,用于设置是否用新工具栏替换活动工具栏; Temporary 为可选的 Variant 类型,用于设置新工具栏是否暂时有效。
mandBar 对象该对象代表应用程序中的工具栏,新建工具栏的控件均以该对象为载体。
1Controls 属性:返回 CommandBarControls 对象,代表指定工具栏中的所有控件。
2NameLocal 属性:返回由应用程序版本语言所设置的工具栏名称,如对软件的内置工具栏设置会出现错误。
3Position 属性:返回或设置工具栏的位置,值可通过 VBA 常量进行设置,如msoBarLeft、msoBarTop、msoBarRight、msoBarBottom、msoBarFloating、msoBarPopup或msoBarMenu 等。
4Type 属性:返回或设置工具栏的类型,值可通过 VBA 常量进行设置,如msoBarTypeNormal工具栏为普通类型、msoBarTypeMenuBar工具栏为菜
单类型、msoBarTypePopup工具栏为弹出菜单类型等。
5Reset 方法:将内置工具栏重置为默认设置,在恢复软件原有工具栏或菜单时非常有用。
重置内置工具栏将删除其中的自定义控件并恢复其内置控件。
mandBarControls 集合该集合代表工具栏中的所有工具栏控件。
其 Add 方法用于在 CommandBarControls 集合中增加一个工具栏控件。
mandBarControl 对象该对象代表工具栏控件,对自定义工具栏控件,可使用 CommandBarButton、CommandBarComboBox 和CommandBarPopup
对象进行定义,而对软件内置的控件进行操作,而该控件又无法使用上述三个对象表示,则可使用 CommandBarControl对象。
1BeginGroup 属性:用于设置工具栏控件是否分组显示。
2Caption 属性:用于设置工具栏控件的标题文字,并可作为默认的控件屏幕提示。
3Id 属性:用于设置 CommandBarButton、CommandBarComboBox 和CommandBarControl 对象的功能,这些控件可直接设置为内置工具栏控件的 ID,这样该控件即具备了软件内置的相应功能,自定义控件的ID 属性均需设置为 1。
4Copy 方法:将工具栏控件复制到已有的工具栏中。
语法:expression.CopyBar Before 参数说明: Bar 为可选的 Variant 类型,代表目标工具栏,如果省略,则控件将复制到自身所在的工具栏;Before 为可选的Variant 类型,代表新控件在指定工具栏的位置,即新控件将添加至该位置的控件前,如果省略,则控件将复制到工具栏的末尾。
5Type 属性:返回工具栏控件的类型,可通过 VBA 常量进行引用,常用的工具栏控件类型如下表所示:本文标签:常量名称含义msoControlButton控制按钮msoControlButtonDropdown带下拉列表的按钮
msoControlButtonPopup带弹出菜单的按钮msoControlComboBox下拉组合控制框msoControlDropdown下拉列表控制框msoControlEdit文本框
msoControlExpandingGrid可扩展的表格msoControlGraphicCombo图像下拉组合框msoControlGraphicDropdown图像下拉列表框msoControlGrid表格msoControlPopup弹出菜单 mandBarButton对象该对象代表工具栏的按钮控件。
1OnAction属性:返回或设置Visual Basic代码过程名该代码过程不可使用参数,该过程将在单击按钮后运行。
2Style属性:返回或设置工具栏按钮的显示方式。
值可通过VBA常量进行设置,常用的工具栏按钮控件类型如下表所示:常量名称含义msoButtonIcon包含图标的按钮msoButtonCaption包含标题的按钮ButtonIconandCaption包含图标和标题的按钮msoButtonIconAndCaptionBelow包含图标和标题,且标题位于底部的按钮msoButtonIconAndWrapCaption包含图标和标题,且标题自动换行的按钮msoButtonWrapCaption包含标题,且标题自动换行的按钮 3TooltipText属性:返回或设置工具栏按钮控件的屏幕提示。
4FaceId属性:返回或设置工具栏按钮的图标编号,设置工具栏按钮的外观而非其功能,自定义图标的工具栏按钮,其 FaceId属性值为 0。
5CopyFace方法:将工具栏按钮控件的图标复制到剪贴板。
6PasteFace方法:将剪贴板的图标内容粘贴至工具栏按钮控件。
7Execute方法:运行工具栏控件对应的过程或内置命令。
mandBarComboBox对象该对象代表工具栏中的组合框控件。
1DropDownLines属性:返回或设置组合框控件的行数,如将其设置为 0,则控件行数将取决于列表的条目数。
2List属性:返回或设置组合框控件中某列表项的值,对内置组合框控件只读。
3OnAction属性:返回或设置Visual Basic代码过程名该代码过程不可使用参数,该过程在单击或更改组合框控件值时运行。
4Type属性:返回或设置组合框控件的显示方式。
5AddItem方法:用于在组合框控件中添加一个列表项,且该组合框控件必须为自定义的控件。
6RemoveItem方法:用于从组合框控件中删除一个列表项。
二助手对象 Office助手是一组卡通动画人物,这些助手可提供友好的信息提示,并可通过自定义对话框又称“气球”的文字格式和
控件来实现简单的交互。
1.Assistant对象该对象代表Office助手,可通过Application对象的Assistant属性返回Assistant对象。
默认助手为“大眼夹”即“Clippit”,用户可在右键单击助手后出现的快捷菜单中单击“选择助手”菜单项,在弹出的“Office助手”对话框中即可选择不同的助手。
1Animation属性:用于返回或设置Office 助手的动画效果。
如应用于 Balloon对象,则“助手”仅在显示气球时才会出现动作,可通过常量赋值,常用的常量及其含义如下表所示:常量名称代表的动作msoAnimationAppear助手出现msoAnimationBeginSpeaking
助手开始说话msoAnimationCheckingSomething助手检查动作msoAnimationDisappear助手消失msoAnimationGoodbye助手说“再
见”msoAnimationGreeting助手致欢迎的动作msoAnimationIdle助手休息的动作为默认动画效果类型msoAnimationPrinting助手打印的动作msoAnimationSaving 助手保存的动作msoAnimationSearching助手开始查找的动作msoAnimationThinking助手考虑的动作 2AssistWithAlerts属性:用于设置助手气球是否发送给应用程序警告信息。
3AssistWithHelp属性:用于设置当用户按F1 键显示帮助时助手是否出现。
4AssistWithWizards属性:用于设置助手是否提供
向导型的联机帮助。
5FeatureTips属性:用于设置助手是否更有效地提供有关应
用程序功能信息。
6GuessHelp属性:用于设置助手是否显示帮助主题列表。
7FileName
属性:用于设置助手所使用的文件名,助手文件的扩展名为“acs”,一般位于Office的安装目录下。
其中“孙悟空”为mnkyking.acs;“?笱奂小蔽狢
lippit.acs;“恋恋”为OffCat.acs;“聪聪”为Rocky.acs;“七巧板”为
Logo.acs;“小灵通”Dot.acs;“美丽家园”为MNature.acs;“F1”为F1.acs。
8NewBalloon属性:用于新建助手气球,并返回Balloon对象。
9On属性:用于设置是否使用助手。
10Sounds属性:用于设置助手是否发出与动画对应的声音。
11TipOfDay属性:用于设置每次启动Office时,助手是否显示专用的提示。
2.Balloon对象该对象代表气球,助手可在该气球中显示标题、文字和一些控件,通过NewBalloon属性可返回Balloon对象,且任意时刻仅有一个气球可视。
1BalloonType属性:用于设置助手所用的气球类型,可通过常量赋值。
创建Balloon对象时,初始值为msoBalloonTypeButtons常量。
2Button属性:用于设置助手气球底部按钮类型。
创建Balloon对象时,初始值为msoButtonSetOK。
3Icon属性:用于设置助手气球左上角的图标类型,可通过常量赋值。
4Checkboxes属性:返回BalloonCheckboxes集合,即气球中的所有复选框。
5Heading属性:用于设置助手气球中的标题。
气球标题和文本均支持包含下划线和系统调色板 16 色的文字。
如需显示包含下划线的文字,可通过“ul”、“ul 1”语法来开始下划线和“ul 0” 语法来清除下划线;如需改变文字颜色,可通过“cf number”语法,其中number常数为系统调色板支持的 16 种颜色。
6Labels 属性:返回BalloonLabels 集合,即气球中的所有标签。
7Mode属性:用于设置气球的模态,即是否在显示气球的同时允许用户在程序中继续工作。
8Text属性:用于设置助手在气球标签、复选框或直接显示部分的文字。
9Close方法:用于关闭活动的非模态气球,仅在回调过程中才可使用。
10Show方法:用于显示指定的气球对象。
3.BalloonCheckBox对象该对象代表气球中的复选框控件。
Checked属性:返回是否已选择气球中的指定复选框。
三内置对话框对象 Office使用了大量的内置对话框,在Word和Excel中提供了开发接口,使开发者可充分利用内置对话框实现很多操作,尤其在Word中可使用多种方法显示内置对话框,实现不同的功能需求,这里,我们以Word的内置对话框为例进行讲解。
1.Dialogs集合对象该集合对象代表Word或Excel中的Dialog对象集合,其中每个Dialog对象均代表一个内置对话框,无法在Dialogs集合中创建新的内置对话框,也无法添加对话框。
2.Dialog对象该对象代表内置对话框。
1CommandName属性:用于返回显示
指定内置对话框对应的过程名。
2DefaultTab属性:用于设置显示指定对话框时,其被激活的选项卡。
3Display方法:用于显示指定的内置对话框,并直至用户关闭该对话框或超时,使用显示内置对话框时,不会执行任何操作即仅用于显示,但可返回用户关闭对话框时所单击的按钮代号。
其中,返回-2,代表“关闭”按钮;返回-1,代表“确定”按钮;返回 0,代表“取消”按钮;返回大于 0 的值,则 1 代表第一个按钮,2 代表第二个按钮,以此类推。
4Execute方法:用于应用内置对话框的当前设置。
5Show方法:用于显示并执行内置对话框,即如同用户通过菜单或工具栏打开对话框,和Display方法相同,均返回用户关闭对话框时所单击的按钮代号。
6Update方法:用于更新内置对话框的参数值。
3.显示内置对话框通过VBA代码可控制内置对话框的显示,如需调用指定的内置对话框,可将Dialogs 属性通过常量进行赋值,如“DialogswdDialogFileOpen.Show”可显示Word的“打开”对话框。
在前述代码中,如将该语句的返回值赋予Dialog变量,即可通过该变量返回或设置对话框的选项,代码如下所示: Set testDialog DialogswdDialogFileOpen 合理使用内置对话
框可实现很多的功能,Word和Excel中提供接口的内置对话框非常多,限于篇幅,本文不做详细介绍,读者可参考VBA的联机帮助。
四窗体和相关控件对象VBA的编辑器和VB非常类似,因此也提供了窗体和相关的控件,但又由于Office 的特点使VBA中的窗体、控件和VB存在一些差异。
1.用户窗体知识点窗体是程序实现和用户交互的接口,通过窗体不仅可改善程序的界面友好性,而且可进一步增强、完善程序的功能。
在VBA编辑器中可创建用户窗体,在工程资源管理器中右键单击项目,在出现的菜单中选择“插入?用户窗体”命令,随后在设计界面中将显示默认窗体和控件工具箱,该控件工具箱和VB的控件工具箱很类似,如图 3 所示。
2.用户窗体常用控件虽然VBA窗体开发所用的控件和VB较为类似,但其属性和方法和VB存在一定的差异: 1标签控件:该控件用于显示不可编辑的文本,默
认属性为Caption属性,默认事件为Click事件。
2文本框控件:该控件用于显示可编辑的文本信息,是VBA开发中最常用编辑控件,默认属性为Value属性,默认事件为Change事件。
3复合框控件:该控件将列表框和文本框进行结合,用户可进行输入和列表框选择操
列表框控件:该控件用于显作,默认属性为Value属性,默认事件为Change事件。
4
示值列表,用户可选择一个或多个列表项,VBA中的列表框可通过列表形式和选项按钮或复选框的形式使用,默认属性为Value属性,默认事件为Click事件。
5复选框控件:该控件用于显示选择的状态,即允许用户从两个值如True或False 中选择一个。
如选择则将显示标记,默认属性为Value属性,默认事件为Click事件。
6选项按钮控件:该控件用于显示多选项中每一项的选择状态,默认属性为Value属性,默认事件为Click事件。
7切换按钮控件:该控件用于显示选择状态,默认属性为Value属性,默认事件为Click事件。
8框架控件:该控件用于创建功能或视觉角度的控件组,默认事件为Click事件。
9命令按钮控件:该控件用于启动、结束或中断操作,其Click事件是窗体编程中最常用的事件代码,默认属性为Value属性,默认事件为Click事件。
10表头控件:该控件用于将一系列相关控件显示为一个多表的集合,默认属性为SelectedItem属性,默认事件为Change事件。
11 多页控件:该控件用于将多页面的内容以单个控件的方式实现,在处理不同类别的大量信息时很有用,默认事件为Change事件。
12滚动条控件:该控件用于按滚动块位置,返回或设置变量值,默认属性为Value属性,默认事件为Change事件。
如需创建横向或纵向的滚动条,可在窗体设计时横向或纵向拖动滚动条控制点。
13旋转按钮控件:该控件用于增加及减少变量数值,默认属性为Value属性,默认事件为Change事件。
14图像控件:该控件用于显示图片,其支持的图片文件格式包括:bmp、cur、gif、ico、jpg和wmf等,默认事件为Click
事件。
在VBA窗体设计中,可将一些开发中使用的控件全部选择后,直接拖至工具箱中,工具箱会添加一个“控件组”,在窗体设计中可直接将该控件组放置于窗体,大大提高了效率该特点为VBA所独有。
如开发者需使用VBA标准控件箱未提供的其他控件,可右键单击工具箱,在出现的菜单中选择“附加控件”命令,在出现的对话框中进行选择即可。
3.用户窗体常用事件用户窗体的常用事件和VB窗体有一定的区别。
1Initialize事件:该事件发生在加载对象后和显示对象前,通常在该事件中初始化变量值或设置控件的属性。
2QueryClose事件:该事件发生在用户窗体关闭前,通常在该事件中检查用户窗体中未完成的操作。
cancel参数:整型,如将该参数设置未非零值,则可阻止关闭用户窗体。
Closemode参数:该参数用于获取触发QueryClose事件的原因。
3Terminate事件:该事件将所有引用的对象变量设置为Nothing常量,即删除对象的引用。
该事件发生在卸载对象后。
如非正常退出程序,则不会触发。
五类模块 VBA开发也提供了类模块结构,使开发者可将常用操作通过类进行合理封装,实现代码的复用和程序的结构化。
1.创建类模块 VBA中创建类模块非常简单,在VBA编辑器的工程资源管理器中右键单击项目,在出现的菜单中选择“插入?类模块”命令,随后在“工程资源管理器”中会出现添加的类模块,默认名称为“类1”,单击该类模块,可设置其属性,一般需设置其“Name”属性,以方便使用。
双击该类模块,即可按窗体的操作方法来输入代码。
2.类模块常用事件类模块中包含Initialize和Terminate 二个事件。
1Initialize事件:该事件用于初始化类模块所用的数据。
当程序中创建类模块时触发该事件。
2Terminate事件:当程序中类实例从内存删除时触发该事件,且该事件仅在程序正常结束时触发。