2、使用Visual Basic 编辑器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上面已经讲到,Word在VBA编程语言中把宏录制为一系列的Word命令,然后在Visual Basic编辑器中打开已录制的宏,修改其中的指令。也可用Visual Basic编辑器创建包括Visual Basic指令的非常灵活和强有力的宏,而那些指令是无法采用录制的方法的。
在Word中打开Visual Basic编辑器的方法是:指向【工具】菜单中的【宏】菜单项,然后从其级联菜单中单击【Visual Basic编辑器】命令,即可打开如图11-2所示的Visual Basic编辑器。
注意:
如果用此命令打不开Visual Basic编辑器,说明文档和Normal模板可能已经被宏病毒感染了,因为一般的宏病毒都会把【VisualBasic编辑器】命令屏蔽。此时可以把当前用户的Normal模板删除,用没有被感染的Normal代替或者不要Normal模板,然后再重新打开Word,就可以打开Visual Basic编辑器。
下面简单介绍一下Visual Basic编辑器的方法。
11.2.1利用好窗口
Visual Basic编辑器中根据不同的对象,设置了不同的窗口。如果能恰当地使用这些窗口,可以使编程效率有极大的提高。VisualBasic编辑器中主要的窗口包括代码窗口、立即窗口、本地窗口、对象浏览器、工程资源管理器、属性窗口、监视窗口以及工具箱和用户窗体窗口等。
11.2.1.1【代码】窗口
可以使用【代码】窗口来编写、显示以及编辑Visual Basic【代码】。打开各模块的代码窗口后,可以查看不同窗体或模块中的代码,并且在它们之间做复制以及粘贴的动作。如图11-3所示。
可以按照下列所述的方式,来打开【代码】窗口:
∙在工程窗口中,可以选择一个窗体或模块,然后选择【查看代码】按钮。
∙在【用户窗体】窗口中,可以双击控件或窗体;也可以从【视图】菜单中选择【代码窗口】,或者按下F7键。
在【代码】窗口中可以将所选文本拖动到当前代码窗口中的不同位置,也可以拖动到其他的【代码】窗口或者立即窗口以及监视窗口,甚至【回收站】中。
在【代码】窗口中,左上角的下拉列表框为【对象】框,用来显示所选对象的名称。用户可以按下列表框中的右边箭头,来显示此窗体中的对象。
【对象】框右边的下拉列表框为【过程/事件】框,它列出了【窗体】或【对象】框所含控件中的所有Visual Basic的事件。当选择了一个事件,则与事件名称相关的事件过程就会显示在代码窗口中。
如果在【对象】框中显示的是【通用】,则【过程】框会列出所有声明,以及为此窗体所创建的常规过程。如果正在编辑模块中的代码,则【过程】框会列出所有模块中的常规过程。在上述两实例中,在【过程】框中所选的过程都会显示在代码窗口中。
模块中的所有过程会出现在一个单一滚动条的列表中,它们是按名称的字母来排列的。可以从代码窗口上端的下拉式列表中选取一个过程,此时指针会移到所选过程的第一行代码上面。
将拆分栏向下拖放,可以将代码窗口分隔成两个水平窗格,两者都具有滚动条。可以在同一时间查看代码中的不同部分。显示在对象框以及【过程/事件】框中的信息,是以当前拥有焦点的窗格之内的代码为准。将拆分栏拖放到窗口的顶部或下端,或者双击拆分栏,都可以关闭一个窗格。
代码窗口的左边的灰色区域为边界标识条,在此会显示出边界标识,在边界标识条上单击鼠标,可以在
对应的行上添加断点。
单击【过程查看】图标,可以显示所选的过程,同一时间只能在【代码】窗口中显示一个过程。
单击【全模块查看】图标,显示模块中全部的代码。
11.2.1.2【立即窗口】
【立即窗口】在中断模式时会自动打开,且其内容是空的。用户可以在窗口中执行如下操作:
∙键入或粘贴一行代码,然后按下Enter键来执行该代码。
∙从【立即窗口】中复制并粘贴一行代码到【代码】窗口中,但是【立即窗口】中的代码是不能存储的。
【立即窗口】在调试程序过程中非常有用,用户如果要测试某个语法或者查看某个变量的值,就需要用到【立即窗口】。因为在【立即窗口】中,输入一行语句后按Enter键即可执行,如图11-4所示。
【立即窗口】可以拖放到屏幕中的任何地方,除非已经在【选项】对话框中的【可连接的】选项卡内,将它设定为停放窗口。
可以按下关闭框来关闭一个窗口。如果关闭框不是可见的,可以先双击窗口标题行,让窗口变成可见的。注意:
在中断模式下,立即窗口中的语句,是根据显示在过程框的内容或范围来执行的。举例来说,如果键入Print variablename,则输出的就是局域变量的值。这和在程序中止时Print方法在正在执行的过程产生一样。
11.2.1.3【本地窗口】
可自动显示出所有在当前过程中的变量声明及变量值。若【本地窗口】为可见的,则每当从执行方式切换到中断模式或是操纵堆栈中的变量时,它就会自动地重建显示,如图11-5所示。
下面介绍窗口中各对象的意义:
【调用堆栈】按钮:打开【调用堆栈】对话框,它会列出调用堆栈中的过程,如图11-6所示。
【表达式】:列出变量的名称,不能在此编辑数据。
列表中的第一个变量是一个特殊的模块变量,可用来扩充显示出当前模块中的所有模块层次变量。对于类模块,会定义一个系统变量
【值】:列出所有变量的值。所有的数值变量都应该有一个值,而字符串变量则可以有空值。
当按下【值】字段中的一个值,指针就会变成“I”形,且值会被点划线包围。可以编辑一个值,并且按下ENTER键,向上键,向下键,TAB键,SHIFT+TAB键或用鼠标在屏幕上单击,使编辑生效。如果这个值是非法的,则所编辑的字段的值会以突出显示,并且会出现一个错误信息框来提示,此时可以按下ESC 键来中止更改。
拥有子变量的变量可以被扩充或折叠起来。折叠起来的变量不会显示一个值,而变量每一次会显示一个值,并且出现在变量的左边。
【类型】:列出变量的类型,不能在此编辑数据。