WORD-VBA编程-从零开始学VBA.docx

上传人:太** 文档编号:95081107 上传时间:2023-08-16 格式:DOCX 页数:20 大小:64.70KB
返回 下载 相关 举报
WORD-VBA编程-从零开始学VBA.docx_第1页
第1页 / 共20页
WORD-VBA编程-从零开始学VBA.docx_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《WORD-VBA编程-从零开始学VBA.docx》由会员分享,可在线阅读,更多相关《WORD-VBA编程-从零开始学VBA.docx(20页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、从零开场,步入Word宏编程的世界(第一讲)工作中,经常看到许多朋友在使用Office时已经非常地熟练,但仍不敢去接触Office的VBA编程;在网 上Office的VBA编程论坛中,同样看到有朋友在其中流连了相当长的时间,但仍然不得其门而入。问一下这 两类朋友,前者觉得编程是一件很“高深的事,自己恐怕学不会;后者为了提高自己的工作效率,虽然很想 学,但自己一点编程的根基也没有,照着网上高手们的帖子做,反而越学越糊涂。当我问第二类朋友为什么 不多看看VBA的帮助文件时,“看不大懂,就像有语言障碍一样。他这样答复我。对于第一类朋友,我想说,不要被自己想象出来的“困难吓倒,如果您没有亲自尝试过,假

2、设何知道编 程会很“高深,又假设何知道自己学不会而第二类朋友如果能静下心来把根基知识补一补,相信您的问题也 会迎刃而解。那么,就让我们从最根基的知识开场,步入Office宏编程的世界吧。 文前的几点说明:1、虽说本文用到的程序在。ffice2007与。ffice2010中同样可以正常运行,但考虑到目前单位办公用机的实际 情况,本文所有的实例主要还是面向Office2003的用户;2、为了便于各位读者理清思路,防止文章涉及面太广,本文主要以。ffice2003中最常用的Word为主进展 讲述,有与其它Office套件相关联的地方,将单独说明;3、为防止学习过程中的枯燥乏味,本文没有像传统编程教材

3、那样以理论知识为线索展开,而是将不同的 知识点放到了几个不同的实例之中进展讲述。所以,把每个实例“做 一遍,细心体会每个实例的知识点,将 有助于您快速掌握VBA的编程技术;单纯地“看,则无助于您的学习。本文的宗旨是完全面向初学者!或许您还能以此为契机叩开奔向VB6.。或VB.NET的大门,说不定 您还能编出一、两个病毒玩玩儿当然仅限于玩玩儿,千万别做出什么傻事来!)!好了,下面就开场我们Word的VBA编程之旅吧,愿您旅途愉快! 实例一:“你好,世界!知识点:1、熟悉VBE的编程界面;2、什么是 VB、VBE、VBA;3、什么是过程、工程。不要以为这些知识点有多难,让我们一步一步地来。启动Wo

4、rd,指向工具宏VB编辑器,翻开VB编辑器的界面,如图1-1。“VB编辑器就是VBE, VBE是Visual Basic Editing的缩写。我们在VBE编程环境中所使用的编程语言 就是“VBA”,即Visual Basic for Applications的缩写,VBA语言是我们所熟知的VB编程语言的一个子集。VBE编辑器界面的菜单栏与工具栏就不必说了。界面左面中间部份是“工程资源管理器所在的“工程资 源管理区,每一篇Word文档中所编写的程序,Word都把它看成为一个“工程,“工程资源管理器就是 对这些工程进展管理的地方;界面左下方是“对像属性设置区,我们可以对自己要用到的对像的属性进展

5、设 置,第四个实例中,我们将对“属性设置进展详细讲解,现在大家不必管它;界面右面大面积空白的区域是 “代码编辑区,我们编写的所有代码都放在这儿。如果看不到这个空白区域,则翻开“插入菜单,插入一 个“模块就行了。如果“工程资源管理器已有“模块,则双击模块名,就能翻开“代码编辑区。好,现在我们就在这个VBE环境下,利用VBA语言,来编写我们的第一个工程(即程序)。请在“代码编辑区中输入如下的代码:sub A ()msgbox(“你好,世界!)end sub注意,代码msgbox,你好,世界! ”) 一句中的引号与括号为英文标点。点击工具栏上的黑色三角形的“播 放键,或按下F5键运行这个程序,您将看

6、到一个弹出的消息框。如图1-2。代码讲解:sub是VB编程中申明一个过程的语句,subA()申明了一个名叫A的过程,A后面跟了一个括号,它的作用 现在大家暂时不用管它。整段程序结尾的end sub语句,表示过程“A在此完毕。每一个程序都必需有开场法上与按钮控件没有什么大的区别,朋友们就自己尝试一下其它的控件吧;3、请您制作一个窗体,上面加上两个按钮,一个按钮运行实例三中的游戏,另一个按钮退出游戏。实例四到此完毕,假设何样,有收获吗下一个实例Word版的媒体播放器,将是我们前面知识的一个 集中练习,也将是一个会让您很有“成就感的练习。还等得及吗一一从零开场,步入Word宏编程的世界(第五讲)实例

7、五:Word版的“媒体播放器知识点:1、进一步熟悉VBE的操作界面;2、学习使用窗体与控件进展编程;3、学习运用附加的控件进展编程。通过以上四个实例的学习,今天,我们终于迎来了冲动人心的时刻一一编写一个“Word版的媒体播 放器! “媒体播放器大家不会陌生吧对,就是开场一一程序一一附件一一娱乐中的“Media player播放 器!相信本实例会给您带来成就感!也算是对我们前四个实例辛苦学习的一点点回报吧!当然,在快乐之 余,千万不要忘了对本实例中知识点的学习。其实,本实例中,理论知识上的难度几乎没有,但操作上的步 骤却相当多,朋友们耐心一点。步骤一:界面的制作1、回忆实例四中的操作方法,在VB

8、E中添加一个窗体,窗体上添加两个按钮。将窗体的“Caption 属性改为“Word版媒体播放器,再分别将两个按钮的“Caption属性改为开场运行与“完毕程序。2、右击控件工具箱,选“附加控件,将“附加控件面板的滚动条拖动到最底端,然后选中 “Windows Media player”控件。确定”后,退出附加控件面板图5T。这时控件工具箱最下面 就多出了一个网格状的Windows Media player”控件。3、选中“Windows Media player控件,在窗体上按您的需要和喜好“画出它将要显示的范围。4、现在,我们就可以利用“属性对话框开场对整个窗体及窗体上所有的控件进展“美化。

9、“美 化的内容就按您自己的喜好看着办好了,反正是“设计时修改控件,不会影响最终程序的运行。我修改 了窗体和按钮的颜色,并修改了按钮上的字体以及字号和字色。最终的效果如图5-2。准备工作已就绪,开场编写代码了吧!步骤二:编写代码1、双击“开场运行按钮,在VBE自动生成的空过程中输入如下代码:Private Sub CommandButtonl_Click()MediaPlayerl. Fil eName = D: MyMpg龙珠 2. mpg End Sub(注意:office2003 及以上版本,上句代码应该是:WindowsMediaPlayerl. URL=D: MyMpg龙珠 2. mp

10、g ,这 是因为在这些版本上,MediaPlayer控件的属性与方法已略有些变化了。)代码讲解:关于“过程,就不消多说了吧MediaPlayerl就是我们在“设计时所添加的“MediaPlayer控 件。它尾巴上的“1,指它是在本窗体上的第一个“MediaPlayer控件。“FileName是 “MediaPlayerl的一个属性,这个属性的值就是将要播放的媒体文件的名称还记得为属性赋值的格式吗 这整句代码可是一个标准的赋值语句。)。等号后面大家就很清楚了一一是要播放的文件的路径与文件名。 当然,您的电脑上恐怕不会有D:MyMpg龙珠2.mpg文件的,您可要根据自己电脑上的实际情况输入这局 部

11、的内容。2、双击“完毕程序按钮,在翻开空过程中输入一一Private Sub CommandButton2_Click() Unload UserFormlEnd Sub代码讲解:这段代码如果还需要讲解的话,就请再看看实例四的后半局部内容。完成前两步代码输入后,可以将光标定位于“开场运行按钮的代码区正中间,然后按下F5键! 看到了什么假设何样,有成就感吧还没完呢!赶快“完毕程序编完最后的代码吧!3、回到Word,指向工具一一宏,翻开“宏名对话框(不要告诉我,你找不到这个对话框,在“宏 名中输入“我的播放器(没有引号),点击“创立按钮,在VBE所生成空过程中输入一一Sub我的播放器()UserF

12、orml. ShowEnd Sub本段代码与上段代码一样,也无需讲解了吧4、回到Word,翻开工具一一自定义,拖动“命令选项卡的滚动条到最底部,选中“类别窗格中 的“宏,再找到右边“命令窗格中的“我的播放器宏,左键按住它,不要让它跑掉),拖动它到“任 意的“菜单栏或“工具栏上,好,松左键,它跑不掉了(图5-3)。保证它是被选中的,再回到“命 令选项卡上,点击正中间的“更改所选内容,把它的名字“美化 一下,或者再给它添一个图标,假设 何样,帅吧!酷吧!(图5-4)5、从此之后,王子和公主就在您的Word中哦错了,应该是一一从此以后,您的Word中,就多 了一个可以播放Mpg、Mp3等等媒体的小妞

13、啊,又错了,是“小钮。当然,要播放的内容还得您自 己为它指定(写进代码中去)。 本实例的知识扩展:1、修改代码来确定媒体文件的路径及文件名不麻烦吗难道您不愿意使用“输入框2、有没有方法指定一个文件夹后,播放器就自动将这个文件夹下的媒体文件一个一个地播放出来呢 或者,将要播放的文件名写在一个文本文件中,让播放器一个一个地读出它的名字来播放呢3、如果要求您不用“设计时修改控件属性,而让您用“运行时修改控件属性的方法,来制作步 骤一中的界面,您不愿意试一试吗4、都有哪些附加控件各附加控件的作用又都是什么呢本实例至此完毕! VBA好玩吧对我们的实例六,您是否已有所期待了呢从零开场,步入Word宏编程的

14、世界(第六讲)实例六:Word中的常用对像、属性、方法和事件知识点:掌握Word中常用的对像并学习这些对像主要的属性、方法和事件。在实例四中,我们已接触了对像、属性、方法和事件的 根本概念,今天,我们就来学习一下Word中的 常见对像以及它们的属性、方法和事件。本实例的内容稍微多了一些,为了便于朋友们的理解,以下将主要 介绍Word中最重要的几个对象、属性、方法与事件。要想得到更详细的内容,朋友们可以在完全掌握本实例 后,尝试看看VBA的帮助,在帮助文件中搜索“Microsoft Nord对象即可。本实例将重点介绍以下的对象,首先理清我们今天要学习的“对像的构造层次一一Application对

15、像:即Office中您正在运行的程序本身,如Word或Excel等。Application对像是一个 应用程序中的“总对像或者说是“顶级对像。在Word中,Application对像包含了程序中可能会存在的 其它所有对象,比方:所有的Word文档Documents)、程序本身的工具栏与菜单栏(CommandBars 程序 的窗口Window)、程序的内置对话框(Dialogs)等等Documents对像:即所有Word文档的集合。该对像中每一个单独的文档,即是文档对像“Document。 在Documents对像中,可以通过引用文档名字的方法来操作一个Document对像。Document对像

16、:Document对像又具许多子对像。本实例主要介绍两个 Range对象字符串对像,可 以是选定的一串字符或者是一个字符)与Selection对象(活动区域对像,可以是文档中选中的内容或者仅 仅是一个插入点);了解Paragraphs段落集合对像)。CommandBars对像:即“命令栏对像。它是Application中所有菜单栏与工具栏的集合。我们在编程 时,对菜单栏与工具栏的修改,都是通过操作“ComandBars对像来实现的。由于该对像在VBA编程中特 别重要,我们将在实例七中单独对其进展介绍。)Application 对像1、Application 对像的 Quit 方法该方法用于退出

17、应用程序fApplication) o例如:=关闭程序的代码=sub关闭程序()Application. quitEnd sub执行本段代码,就会退出正在运行的Office程序(相应的Application对像,可以是Word、Excel等)。在实际工作中,Quit方法可以用于提示用户保存所有目前翻开的文档。下面例子中,如果用户单击”是 按钮,在退出Word前,所有翻开的文档都将以Word格式进展保存。,=退出时提醒的代码=二=Sub退出时提醒保存()Dim TishiTishi=MsgBox(您要保存目前所有的文档吗,4, 提示您保存文档)If Tishi = 6 ThenApplicati

18、on. Quit SaveChanges:=wdSaveChanges, OriginalFormat:=wdWordDocumentEnd IfEnd Sub代码解释:MsgBox的参数“4与返回值“6,现在大家不会不明白了吧“4表示显示“是、否两个按钮,“6 则表示操作者选择的是“是按钮。代码SaveChanges:=wdSaveChangesz,是指进展“保存的操作;OriginalFormat: =wdWordDocument则指定保存的格式为Word的文档格式。关于“Save”方法,后面我们 将会进一步学习。2、Application 对像的 ActiveDocument 属性Act

19、iveDocument属性返回一个Document对像(即当前正在使用的“活动文档),下例显示当前活 动文档的名称:,=显示活动文档的名称=Sub显示名称0Dini nanieANameA=Application. ActiveDocument. nameMsgbox (NameA)end sub本段代码中用到了 Document对像的一个属性Name,该属性返回文档的名称。Documents 对像一)、Open方法用于翻开Documents集合中的单个Document对象Open方法的 根本语法格式:Documents对像.Open (可包含路径的文件名)。比方:翻开C盘MyFile文件夹下

20、的MyDoc. doc文档 =翻开文件=Sub翻开文件()Documents. Open (C:MyFilesMyDoc.doc )End Sub本代码演示了 Open方法的 根本使用格式。其实,Open方法的可选参数有很多,有的能指定“翻开文 档的方式为“只读,有的能指定“翻开文档时所需的密码等,参数的内容可在帮助文件中找到详细介 绍。(二)Add方法Documents对像的“Add方法,可以新建一篇空白文档,比方: =新建文档=Sub新建文档()Documents. AddEnd subAdd方法中可以使用以下参数:以何种样本模版为母版新建文档、是否将该新建的文档保存为另一个模 版、新建的

21、文档以何种类型保存Web页、电子邮件、带框架的文档等)、新建文档是否显示(即可以隐藏) 等等。参数的使用可以查找帮助文件。【三)Item方法Item方法可以通过ID集合中的序号)或名称返回集合的单个成员,例如: =显示 Documents 集合中第一篇文档的名字=Sub显示名字()Dim MingIf Documents. Count = 1 Then 如果集合中文档的个数大于或等于1,那么Ming = Documents. Item(l). Name?获得第一个文档的名称MsgBox (Ming)End IfEnd sub本例用到了 Documents对像的一个属性“Count”,该属性的作

22、用是“返回指定集合的中所有工程的个 数,本实例是返回了 “已翻开的所有文档的个数。事实上,“Count属性不单只是Documents对像的属 性,其它的对像如Document、CommandBars等对像都具有这个属性。Document 对像(一)Close 方法本方法用于关闭指定的文档。其 根本格式为:“对像.Close”这里之所以写的“对像而没有写 “Document,是因为“Close方法其实是很多对像都有的方法,而且在使用时格式都一样)。下例将关闭并保存活动文档。,=二关闭并保存文档=二=Sub关闭并保存文档()ActiveDocument. Close SaveChanges:=wd

23、SaveChangesEnd Sub【二)Range 方法Range方法在Document对象中可以通过使用指定的开场和完毕字符位置,返回一个Range对象(Range 对象在下面再做介绍。)。语句格式如下:对像.Range (Start, End)关键字Start是为了指定Range开场的位置;关键字End是为了指定Range完毕的位置。具体应用请看 下面的实例。本实例,将活动文档中的前150个字符设置为青绿色。,二二二二二更改颜色=二=sub更改颜色()ActiveDocument. Range(Start:=0, End:=150). Font. Color = RGB(0, 255,

24、0)End Sub代码中将Font (字体)、Color (字色)属性值指定为RGB颜色设置的参数。【三)Save方法Save方法用于保存指定的文档或模版。其 根本格式为:对像. Save (参数)。Save方法其实也不仅 仅只是Document对像的方法,它同时也是Application与Documents对像的方法。本方法参数中最重要的是 “指定保存方式的参数一一“NoPrompt。如果“NoPrompt二True , Word将自动保存所有文档并且不提 醒用户;如果“NoPrompt二False,则当一篇文档在上次存盘后进展了修改时,Word就会提醒用户将文档保 存为另一个。下例保存Do

25、cuments集合中的每一文档(本例没有举“Document对像的例子),并且保存文档时不 提示用户。Sub保存文档集合()Documents. Save NoPrompt:=True, OriginalFormat:=wdOriginalDocumentFormatEnd sub【四)SaveAs方法该方法主要的作用是“用新的文件名或新的格式(非*.doc格式)来保存指定文档。本方法对应“文 件菜单中的“另存为对话框。其语法及主要参数为:Document对像.SaveAs (文件名FileName”, “准备保存的格式FileFormat,翻开文档时的密码 Password。参数FileFo

26、rmat的常量可在帮助文档中找到。下面的代码,将活动文档存为RTF格式(即“写字版文档的格式),并将文件名改为“Text”。=另存文档=Sub另存为格式()ActiveDocument. SaveAs FileName:二Text ,Fi1eFormat:=wdFormatRTFEnd subRange对像即字符串对像,Range对像的方法非常之多,以下主要介绍常用的Copy方法与Paste方法。Copy方法的作用是将所选内容复制到系统剪贴板,Paste方法是将剪贴板中的内容粘贴到目标位置。本例复制活动文档的第一段,并将该段落粘贴到文档的末尾。,=复制与粘贴例=Sub复制与粘贴例UDim my

27、RangeActiveDocument. Paragraphs(1). Range. CopySet myRange = ActiveDocument. Range(Start:=ActiveDocument. Content. End - 1, End:=ActiveDocument. Content. End - 1)myRange. PasteEnd sub本例代码较长,重点的地方解释如下:“Paragraphs”是Document对像的一个子对像,即“段落对像,其后跟的参数“1,表示引用文档 的第一段。(“Paragraphs”对像也是“Document对像中一个重要的子对像,本文本拟

28、介绍,但考虑到内 容的长短,故省略。本对像的内容请参考帮助文件。)“Set语句是一个赋值语句,与我们前面学习的“Dim相关联,“Dim的作用是申明一个变量,而 “Set语句是将“对一个对像的引用赋给一个变量。本例中其实是为了找出文章完毕的“点,而将“能 够找出该点的语句赋给了变量my Range o“Content”是Document对像的一个属性,它返回Document对像的所有文字。本段代码中运用 “End关键字,来找出文字的结尾处,并用“End1 将结尾向后移动了一位。代码如果在一行中写不下,可以用一个下划线“来连接前后的代码,本例中“Set这句较长,可以 使用这个连接符。Selecti

29、on 对像即活动区域对像,Selection对像的方法也非常多,以下介绍常用的“InsertFile方法,该方法能插 入指定文档的全部或局部内容。其语法为:对像. InsertFile(要插入的文章名FileName)FileName参数必须指定,如果没有指定路径,则Word将文档路径设为当前路径。实例:在活动文档中插入另一个文档,文档插入到您当前光标所在的位置(即“Selection对像处)。,=插入文档例=Sub插入文档例)Dim MyDocMyDoc=InputBox( “请输入您要插入的文章路径及文章名如果选取消就需要错误调试。 Selection.InsertFile FileNam

30、e:=MyDoc End Sub在实际工作中,我们经常需要将一个文件夹下的所有文档合并到一篇文档中来,如果使用Word “插入 菜单中的“插入文件命令,一旦文档数量太多,则会非常麻烦。其实,运用一个变量取得文件的名称,并 使用循环语句重复运行本段代码,就会使这项工作变得简单。本实例的知识扩展:请尽量熟悉帮助文件中所有对像的属性、方法与事件。实例六到此完毕,本实例内容较多,愿朋友们通过本实例,既能熟悉这几个重要对像的使用方法,又能 以此作为自己熟悉VBA帮助文件的一个台阶。毕竟,本文不可能涉及VBA的方方面面,更多的内容需要大家 从“帮助中去获得。如果大家能够熟练掌握本实例中的内容,那么,再看帮

31、助文件,将不会再是一件难事。从零开场,步入Word宏编程的世界(第七讲)实例七:自定义Word的命令栏知识点:1、菜单栏与工具栏知识根基;2、“运行时修改菜单栏与工具栏。Office组件中的每一个程序,都有菜单栏和工具栏,而且任何Office程序中的菜单栏与工具栏在VBA 中的对像都是ComandBar/,对像。所以,本实例可以用于所有Off ice程序。很多朋友在学习VBA的过程中,感到“自定义命令栏这部份内容难以掌握,原因就在于没有弄清 “ComandBaJ对像构造的层次性。好了,下面让我们静下心来,开场一一一、ComandBars对像与ComandBar”对像“ComandBar对像就是

32、“命令栏对像,在Application (程序)中无论是菜单栏还是工具栏,都是一 个“ComandBar对像。我们在编程时,对菜单栏与工具栏的修改,都是通过操作ComandBar,/对像来实现 的。举一个实例,比方从“文件菜单到“帮助菜单为止的那个命令栏,按住“文件菜单左边有一个竖 线的地方,就可以把这个命令栏拖离原位置。这个“命令栏就是一个ComandBar,z对像。现在我们已经知 道什么是命令栏“ComandBar”对像了,那什么是“ComandBars”对像呢既然尾巴上有字母“s, uCoinandBcirs,/对像肯定就是所有命令栏的集合了!一)CommandBars 对像的 Add

33、方法Add方法,用于创立一个新的命令栏这个命令栏既可以是菜单栏,也可以是工具栏。)。本方法的格式为:对像.Add (“新命令栏的名称Name,“新命令栏所在的位置Position”, “新命令 的作用时期Temporary)。参数解释:Position 参数有六个常数:umsoBarLeft, msoBarTop, msoBarRight, msoBarBottom,/这四个常数指定 新命令栏左右和上下的坐标;“msoBarFloating说明新命令栏是可移动的;umsoBarPopup,/说明新命令 栏是一个快捷菜单。Temporary:如果Temporary二True,则新命令栏会在程序关

34、闭时,同时被删除(也就是说,该命令栏只 是暂时有效);如果Temporary=False,则不会被删除(Office程序默认为False。)另外,Office组件中 的Word与Outlook会忽略此参数,因此在退出Word或Outlook应用程序之前,您必须手工删除所有临时添 加到CommandBars集合中的ComandBar对像。以下实例创立了一个名叫“新工具栏的命令栏。 =创立一个命令栏=Sub创立一个命令栏()CommandBars. Add (Name:二新工具栏,Position:=msoBarTop, Temporary: =True). Visible = TrueEnd S

35、ub代码中的“Visible=True”表示将创立的工具栏显示出来,如果“Visible=False则会创立一个隐 藏的工具栏(“Visible是很多对像的属性。)o “Position:二msoBarTop则表示新建的命令栏居于程序的 顶部。如图7-1。二)在CommandBars对像中引用CommandBar对像在CommandBars对像中引用CommandBar对像常用的方法有两种。第一种:我们在针对某一个菜单项进展操作时,可以直接引用这个菜单项的名称来调用它。如: CommandBars (View)对应视图菜单、CommandBars ( Text)对应右键弹出菜单等等。请看实例,

36、=使视图菜单失效=sub使视图菜单失效()CommandBars(View). Enabled = FalseEnd subEnabled属性是很多对像的属性,它的作用是决定对像在应用程序中的状态。本实例中,如果属性值为 True,那么激活指定的命令栏或命令栏控件;如果属性值为False,则该命令栏控件将失效。运行本代码查 看效果之后,可将Enabled的值改为True,再次运行,将视图菜单恢复过来。使视图菜单失效的效果如图 7-3 o第二种:我们在对许多菜单项进展操作时,如果像前例那样一个一个写知名称的话会很麻烦,所以可以 使用菜单所对应的ID号来调用它。请看实例一一本实例隐藏程序中ID号在

37、前80位的命令栏。,=隐藏命令栏=Sub隐藏命令栏0Dim a, bb=80 定义最后的ID值a二1 定义初始ID值Do 进展循环a=a + 1 累加ID值Application. CommandBars (a). Enabled = True 隐藏 ID 值对应的命令栏If a = b Then 在a=80时,准备退出循环Exit DoElseEnd IfLoop继续循环本程序应该不难理解,其实这个用这个方法隐藏命令栏是很傻的,特别是在不知道哪个命令栏对应哪个 ID号的时候,用For Next循环是更好的选择关于“For Next循环的知识可在帮助文件中找到。)。 二、aCommandBar

38、Contro 1 对象与 aCommandBarControls对像CommandBarContro 1对象代表命令栏中的命令按钮,uCommandBarContro 1 s集合则是单个命令栏 中所有命令按钮的集合。用CommandBar对像的“Controls”属性可返回CommandBarContro 1s集合,格 式是“命令栏名 Controls属性二该命令栏的CommandBarContro 1s集合。“ComniandBarControls集合对像包含了一个菜单栏或工具栏中所有的命令按钮。根据命令按钮的不同 特点,它们又可以具体分为:按钮对像CommandBarButton),表示命

39、令栏是的一个上的命令按钮。弹出式控件(CommandBarPopup对象),该对像又可以返回一个CommandBar对像。组合框控件(CommandBarComboBox),该对像代表命令栏中的一个组合框。下面的实例,用“CommandBarContros对像的Add方法,在菜单栏上添加了一个子菜单。Sub添加子菜单()Dim ZicaidanSet Zicaidan = Application. CommandBars(36). Controls. Add(msoControlPopup, , , , True) Zicaidan. Caption = 添加的菜单End Sub代码中的App

40、lication. CommandBars (36) 是利用ID号找到“文件菜单所在的CommandBar命令栏 该命令栏所对应的II)值为“36,关于假设何找到各命令栏对应的ID号,下文有述。);“Caption属 性,是定义CommandBarControlz,对像的文字标签。以上实例既然已添加了子菜单,又应该假设何为子菜单添加命令按钮呢以下实例在运行时添加菜单,并为菜单添加两个按钮,一个是“CommandBarButton命令按钮;一个是 “CommandBarPopup,z弹出式控件,然后又为CommandBarPopup弹出式控件再添加一个按钮。修改上述代码为:Sub添加菜单与子按钮

41、()Dim ZCDDim ZADim ZAADim FCDSet ZCD = Application. CommandBars(36). Controls. Add(msoControlPopup, , , , True)ZCD. Caption=添加的菜单Set ZA = ZCD.Controls. Add (msoControlButton, 1, , , True)ZA. Caption = 这是命令按钮Set ZAA = ZCD.Controls. Add(msoControlPopup, 1, , , True)ZAA. Caption = 这是弹出按钮Set FCD = ZAA.

42、Controls. Add(msoControlButton, 1, , , True)FCD. Caption 二分按钮End Sub运行效果假设何以上我们做的工作就是“运行时修改命令栏。那么,假设何为我们所自定义的命令按 钮指定运行的命令呢这就要用到按钮的“OnAction属性。再次修改上述程序,请注意,这次我们修改后的 程序是由两段代码组成的一一,=二=程序的主体部份=Sub命令按钮的使用()Dini ZCDDim ZADim ZAADim FCDSet ZCD = Application.CommandBars(36). Controls. Add(msoControlPopup, ,

43、 , , True)ZCD. Caption = 添加的菜单Set ZA = ZCD.Controls. Add(msoControlButton, 1, , , True)ZA. Caption二这是命令按钮ZA. OnAction二删除菜单调用下面的“删除菜单过程Set ZAA = ZCD.Controls. Add(msoControlPopup, 1, , , True)ZAA. Caption二这是弹出按钮Set FCD = ZAA.Controls. Add(msoControlButton, 1, , , True)FCD. Caption = 分按钮FCD. OnAction二

44、删除菜单,调用下面的“删除菜单过程End Sub,一=下面是要调用的程序=Sub删除菜单0Application. CommandBars (36). Controls (添加的菜单).DeleteEnd Sub第二段代码中的“Delete语句是CommandBarControls对像的一个方法,它的作用就是删除对像。请看 图 7-1 o到此为止,我们就已经学习了关于“运行时自定义菜单的 根本知识,具体的运用,还要朋友们在实 际工作中多多体验。本实例的知识扩展:1、关于代码保存的地方一一我们从VBA的“工程资源管理器中可以看到,无论您什么时候翻开文档,都会有一个叫“Normal. dot 的模

45、版存在,它就是Word的全局模版。如果没有必要,我们就应该尽量把代码保存到文档自身当中,而不要 保存到Normal模版中。假设何在文档与模版间进展代码的交换呢您可以通过“工具一一“宏一一 “宏 名一一“管理器对话框进展控制。2、当Normal模版中的命令栏被修改之后,有时需要我们将它恢复到程序“原始时的状态,该假设何 办呢当然,学习到现在,您应该已能使用代码来实现,但更快捷的方法是一一在Win98中,您只需进入 “C:WindowsApplication DataMicrosoftTemplates,/中删除模版即可;在 win2000 中,相应的地址为 “C:Documents and Se

46、ttings用户名Application DataMicrosoftTemplatesz,中。这个删除模版的方法 也可以用来对付一些Word的宏病毒(因为宏病毒的代码一般都放在全局模版当中。)。3、以下附一段实用程序,该程序用于找出所有命令栏的ID号并同时找出各命令按钮在命令栏中的ID号。 本段代码使用了 For循环,For循环是VBA编程中一个用处非常广泛的语句,本语句就算是我们的一个自学 内容吧同时也可以试一试自己是否已掌握了使用VBA帮助文件的方法。Sub枚举菜单及按钮()For i = 1 To CommandBars. CountSelection.TypeText i & :& CommandBars(i). NameSelection. TypeParagraphFor a = 1 To CommandBars(i). Controls. CountSelection.TypeText

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com