分享

使用Visual?Basic?编辑器-

 nxhujiee 2010-04-30
 

上面已讲到,Word 在VBA 编程语言中把宏录制为一系列的 Word 命令,然后在 Visual Basic 编辑器中打开已录制的宏,修改其中的指令。也可用 Visual Basic 编辑器创建包括 Visual Basic 指令的很灵活和强有力的宏,而那些指令是无法采用录制的方法的。
    在Word 中打开Visual Basic 编辑器的方法是:指向【工具】菜单中的【宏】菜单项,然后从其级联菜单中单击【Visual Basic 编辑器】命令,即可打开如图11-2 所示的Visual Basic 编辑器。
使用Visual
注意:
    假如用此命令打不开Visual Basic 编辑器,说明文档和Normal 模板可能已被宏病毒感染了,因为一般的宏病毒都会把【Visual Basic 编辑器】命令屏蔽。此时能够把当前用户的Normal 模板删除,用没有被感染的Normal 代替或不要Normal 模板,然后再重新打开Word,就能够打开Visual Basic 编辑器。
    下面简单介绍一下Visual Basic 编辑器的方法。

11.2.1 利用好窗口
    Visual Basic 编辑器中根据不同的对象,配置了不同的窗口。假如能恰当地使用这些窗口,能够使编程效率有极大的提高。Visual Basic 编辑器中主要的窗口包括代码窗口、立即窗口、本地窗口、对象浏览器、工程资源管理器、属性窗口、监控窗口连同工具箱和用户窗体窗口等。

11.2.1.1 【代码】窗口
    能够使用【代码】窗口来编写、显示连同编辑Visual Basic【代码】。打开各模块的代码窗口后,能够查看不同窗体或模块中的代码,并且在他们之间做复制连同粘贴的动作。如图11-3 所示。
使用Visual
    能够按照下列所述的方式,来打开【代码】窗口:

  • 在工程窗口中,能够选择一个窗体或模块,然后选择【查看代码】按钮使用Visual
  • 在【用户窗体】窗口中,能够双击控件或窗体;也能够从【视图】菜单中选择【代码窗口】,或按下F7 键。
    在【代码】窗口中能够将所选文本拖动到当前代码窗口中的不同位置,也能够拖动到其他的【代码】窗口或立即窗口连同监控窗口,甚至【回收站】中。
    在【代码】窗口中,左上角的下拉列表框为【对象】框,用来显示所选对象的名称。用户能够按下列表框中的右边箭头,来显示此窗体中的对象。
    【对象】框右边的下拉列表框为【过程/事件】框,他列出了【窗体】或【对象】框所含控件中的任何 Visual Basic 的事件。当选择了一个事件,则和事件名称相关的事件过程就会显示在代码窗口中。
    假如在【对象】框中显示的是【通用】,则【过程】框会列出任何声明,连同为此窗体所创建的常规过程。假如正在编辑模块中的代码,则【过程】框会列出任何模块中的常规过程。在上述两实例中,在【过程】框中所选的过程都会显示在代码窗口中。
    模块中的任何过程会出现在一个单一滚动条的列表中,他们是按名称的字母来排列的。能够从代码窗口上端的下拉式列表中选取一个过程,此时指针会移到所选过程的第一行代码上面。
    将拆分栏向下拖放,能够将代码窗口分隔成两个水平窗格,两者都具备滚动条。能够在同一时间查看代码中的不同部分。显示在对象框连同【过程/事件】框中的信息,是以当前拥有焦点的窗格之内的代码为准。将拆分栏拖放到窗口的顶部或下端,或双击拆分栏,都能够关闭一个窗格。
    代码窗口的左边的灰色区域为边界标识条,在此会显示出边界标识,在边界标识条上单击鼠标,能够在对应的行上添加断点。
    单击【过程查看】图标,能够显示所选的过程,同一时间只能在【代码】窗口中显示一个过程。
    单击【全模块查看】图标,显示模块中全部的代码。

11.2.1.2 【立即窗口】
    【立即窗口】在中断模式时会自动打开,且其内容是空的。用户能够在窗口中执行如下操作:
  • 键入或粘贴一行代码,然后按下Enter 键来执行该代码。
  • 从【立即窗口】中复制并粘贴一行代码到【代码】窗口中,但是【立即窗口】中的代码是不能存储的。
    【立即窗口】在调试程式过程中很有用,用户假如要测试某个语法或查看某个变量的值,就需要用到【立即窗口】。因为在【立即窗口】中,输入一行语句后按Enter 键即可执行,如图11-4 所示。
使用Visual
    【立即窗口】能够拖放到屏幕中的任何地方,除非已在【选项】对话框中的【可连接的】选项卡内,将他设定为停放窗口。
    能够按下关闭框来关闭一个窗口。假如关闭框不是可见的,能够先双击窗口标题行,让窗口变成可见的。
注意:
    在中断模式下,立即窗口中的语句,是根据显示在过程框的内容或范围来执行的。举例来说,假如键入Print variablename,则输出的就是局域变量的值。这和在程式中止时Print 方法在正在执行的过程产生相同。

11.2.1.3 【本地窗口】
    可自动显示出任何在当前过程中的变量声明及变量值。若【本地窗口】为可见的,则每当从执行方式转换到中断模式或是操纵堆栈中的变量时,他就会自动地重建显示,如图 11-5 所示。
使用Visual
    下面介绍窗口中各对象的意义:
    【调用堆栈】按钮:打开【调用堆栈】对话框,他会列出调用堆栈中的过程,如图11-6 所示。
使用Visual
    【表达式】:列出变量的名称,不能在此编辑数据。
    列表中的第一个变量是个特别的模块变量,可用来扩充显示出当前模块中的任何模块层次变量。对于类模块,会定义一个系统变量。对于常规模块,第一个变量是 。全局变量连同其他工程中的变量,都不能从【本地窗口】中访问。
    【值】:列出任何变量的值。任何的数值变量都应该有一个值,而字符串变量则能够有空值。
    当按下【值】字段中的一个值,指针就会变成 “I”形,且值会被点划线包围。能够编辑一个值,并且按下 ENTER 键,向上键,向下键,TAB 键,SHIFT+TAB 键或用鼠标在屏幕上单击,使编辑生效。假如这个值是非法的,则所编辑的字段的值会以突出显示,并且会出现一个错误信息框来提示,此时能够按下 ESC 键来中止更改。
    拥有子变量的变量能够被扩充或折叠起来。折叠起来的变量不会显示一个值,而变量每一次会显示一个值,并且出现在变量的左边。
    【类型】:列出变量的类型,不能在此编辑数据。

11.2.1.4 对象浏览器
    显示出对象库连同工程的过程的可用类、属性、方法、事件及常数变量。用户能够用他来搜索及使用既有的对象,或是来源于其他应用程式的对象。单击【视图】菜单中的【对象浏览器】命令或按F2 键,即可显示如图11-7 所示的【对象浏览器】对话框。
使用Visual
    【搜索文本】框包含要用来做搜索的字符串。能够键入或选择所要的字符串。搜索文本框中包含最后四次输入的搜索字符串,直到关闭此工程为止。在键入字符串时,能够使用标准的 Visual Basic 通配符。假如要查找完全相符的字符串,能够用快捷菜单中的【全字匹配】命令。
    输入搜索的字符串完毕后单击【搜索】使用Visual按钮,即可激活类或属性、方法、事件或常数等符合在【搜索文本】框中键入字符串的库搜索,并且打开有适当信息列表的【搜索结果】框。
    假如单击【显示/隐藏搜索结果】按钮使用Visual,能够打开或隐藏【搜索结果】框。【搜索结果】框改变成显示从【工程/库】列表中所选出的工程或库的搜索结果。搜索结果会默认地按类型创建组并从 A 到 Z 排列。

11.2.1.5 工程资源管理器
    工程资源管理器是Visual Basic 编辑器中用以显示VBA 项目成员的窗口。VBA 项目成员是指和用户文档相关的用户自定义窗体(Form)、模块(Modules)和Office 2000 对象(Microsoft Object)等。窗体、模块和Office 2000 对象等的集合构成了VBA 项目。VBA 项目成员以树形结构显示,以便于用户查看和使用VBA 项目及其成员。工程资源管理器显示和用户在Office 2000 中打开的每一个文档相关的VBA 项目。例如,在Word 2000 中,若用户打开了三个文档,那么工程资源管理器将显示和这三个文档有关的VBA 项目,如图11-8 所示。
使用Visual
    在图11-8 所示的工程资源管理器中,每一个文档构成了一个单独的VBA 项目。和文档相关的模块、工作表、窗体等均被视为一个单独的对象(VBA 项目成员)。工程资源管理器允许用户方便地选择要使用的对象。在用户选择了要编辑的对象以后,Visual Basic 编辑器自动打开相关的工具。例如,当用户选择了一个窗体时,该窗体连同窗体工具栏将显示在屏幕上;当用户选择了ThisDocument 对象时,ThisWorkbook 代码窗口将显示在屏幕上。
    工程资源管理器为用户提供了以下两种选择和编辑对象的方法:
  • 双击要选择的对象。
  • 首先单击要选择的对象,然后单击鼠标右键,在弹出的快捷菜单中选择【查看代码】或【查看对象】命令。

11.2.1.6 【属性】窗口
    【属性】窗口用来查看和配置对象的属性。例如,用户能够使用【属性】窗口配置和查看用户创建的窗体、Word 模板等对象的属性。在【视图】菜单中单击【属性窗口】命令可显示【属性】窗口。在【属性】窗口中仅仅显示和选择的对象相关的属性。【属性】窗口被划分为左右两部分:和当前对象相关的属性显示在左半部分,对应的属性值显示在右半部分,如图11-9 所示。
使用Visual

[NextPage]


    要选择一个对象,能够直接从【属性】窗口顶端的下拉列表中选取,也能够在工程资源管理器中选取然后返回到【属性】窗口。要改变一个对象的属性,应首先在【属性】窗口的左半部分选择该属性,然后在右半部分单击并编辑该属性值。有些属性值被限定在一个预定义的列表中。在这种情况下,属性值文本框将由一下拉列表框替代。

11.2.1.7 【监控窗口】
    当工程中有监控表达式定义时,就会自动出现【监控窗口】,如图11-10 所示。
使用Visual
    用户能够在【监控窗口】中拖动一个选取的变量,到【立即窗口】中。
    能够编辑一个值,并且按下 Enter 键,向上键,向下键,Tab 键, Shift+Tab 键或用鼠标在屏幕上单击,使编辑生效。假如这个值是无效的,则编辑字段会保持在作用中,并且值会以突出显示,且会出现一个消息框来描述这个错误。能够按下 ESC 键来中止更改。假如在进入中断模式时,监控表达式的内容不在范围内,则当前的值并不会显示出来。
    假如用户要在添加监控表达式定义时,能够在【监控窗口】中单击右键,然后在弹出的快捷菜单中选择【添加监控】命令即可弹出如图11-11 所示的【添加监控】对话框。
使用Visual

11.2.2 自定义Visual Basic 编辑器

11.2.2.1 配置编辑器自动功能
    在Visual Basic 编辑器中,有一些自动功能能够使用户在编程时很方便快捷。要配置编辑器自动功能,请单击【工具】菜单中的【选项】菜单项,并在弹出的【选项】对话框中选择【编辑器】选项卡,如图11-12 所示。
使用Visual
    在【代码配置】选项组中,能够进行配置的项目及其意义为:

  • 自动语法检测??决定 Visual Basic 是否在输入一行代码之后自动修正语法。
  • 需要变量声明??决定在模块中是否需要明显的变量声明。选择这个选项会在任一新模块的标准声明中添加 Option Explicit 语句。
  • 自动显示列出成员??显示一列表,其包含的信息能够逻辑地完成当前插入点的 语句。
  • 自动显示快速信息??显示所键入函数及其参数的信息。
  • 自动显示数据提示??显示出指针所在位置的变量值。只能在中断模式下使用。
  • 自动缩进??定位代码的第一行;任何接下来的代码会在该定位点开始。
  • Tab 宽度??配置定位点宽度,范围从 1 到 32 个空格;默认值是 4 个空格。
    在【窗口配置】选项组中,能够配置的项目及其意义为:
  • 编辑时可拖放文本??能够在当前代码中,从【代码】窗口拖放元素到【立即窗口】或【监控窗口】。
  • 默认为查看任何模块??配置新模块的默认状态,在【代码】窗口中查看过程,单一滚动列表或是一次只看一个过程。这不会改变当前已打开模块的视图方式。
  • 过程分隔符??能够显示或隐藏【代码】窗口中出现在每个过程尾端的分隔符条。
11.2.2.2 配置编辑器格式
    在【选项】对话框中,选择【编辑器格式】选项卡能够指定 Visual Basic 代码的外观。如图11-13 所示。
使用Visual
    在【代码颜色】列表框中选择要设定的文本样式,然后配置其相应的字体和颜色即可,其效果能够在预览框中查看。

11.2.2.3 配置通用选项
    有一些关于窗体的网格、错误捕获方式、编译方式等选项,能够在【选项】对话框中的【通用】选项卡中配置,如图11-14 所示。
使用Visual
    在【窗体网格配置】选项组中,能够确定窗体在编辑时的外观。选中【显示网格】复选框,就确定了要显示网格。并在【宽度】框和【高度】框中确定窗体上网格的宽度(2 到 60 点)和高度(2 到 60 点)。
    假如选中【对齐控件到网格】复选框,能够自动将控件的外缘放在网格上。
    假如选中【项目折叠收起时隐藏窗口】复选框,确定当一工程在工程资源浏览器中折叠后工程、UserForm、对象或模块窗口是否应自动关闭。
    假如选中【在丢失当前状态前通知】复选框,确定是否会收到一消息,通知在运行的工程中所需要的动作将引起任何模块级变量被重置。
    假如在 Visual Basic 研发环境处理错误,能够配置【错误捕获】选项,此选项会影响任何在此配置改变后所激活的 Visual Basic 实例。
  • 发生错误则中断??任何使工程进入中断模式的错误,无论是否有活动的错误处理及无论代码是否在类模块中。
  • 在类模块中中断??任何在类模块中,使项目在生成错误的类模块的代码行处,进入中断模式的无法处理错误。
  • 碰到未处理的错误时中断??假如有一个活动的错误处理,这个错误会被捕获而不进入中断模式。假如没有活动的错误处理,这个错误会使工程进入中断模式。类模块中的无法处理错误,使工程在使用到对象类中在违反过程的代码行处进入中断模式。
    用户还能够对【编译方式】进行配置:
    选中【请求时编译】复选框,确定工程在开始前是否要完全编译,或只编译需要的代码,以便让应用程式尽快开始执行。
    选中【后台编译】复选框,确定在运行时,是否用空闲时间在后台完成工程的编译。后台编译能够改善运行时的执行速度。这个特性只有在选定【请求时编译】的情形下才能 使用。

11.2.2.4 设定可连接的窗口
    用户能够选出要连接的窗口。连接发生在当窗口附加到其他可连接的窗口或应用程式窗口的边缘时。当移动一可连接的窗口时,该窗口很快地移向此位置。能够移动一个非可连接的窗口到屏幕上的任何地方,并将他留在那里。要设定可连接的窗口,在【选项】对话框中选中【可连接的】选项卡,如图11-15 所示。
使用Visual
    选择要使他可连接的窗口,并清除不要的那些。

11.2.3 配置工程的安全性
    尽管在大多数情况下,我们允许用户访问自己所创建的模块;但是为了防止他人篡改、运行已创建的模块,就必须对模块进行保护。在本节中,将学习VBA 有哪些安全措施和怎样进行安全措施配置连同怎样调整权限等内容。
    为了保护所创建的VBA 模块,能够采取下面三种方法:
  • 调整模块属性,使其中代码不能被读或编辑。
  • 为模块配置密码。
  • 创建用户和组帐户,在此基础上为模块配置权限(这只适用于Access)。
    能够在Visual Basic 编辑器中配置工程项目(Project)的保护,其具体步骤如下:
    (1)打开Visual Basic 编辑器,用鼠标右键单击想要保护的工程项目,用鼠标左键单击【Project 属性】,弹出【Project?工程属性】对话框,
    (2)在对话框中,选择【保护】选项卡,如图11-16 所示。
使用Visual
    (3)选中【查看时锁定工程】复选框,这样其他人就不能查看或编辑。
    (4)在【密码】文本框中键入配置的密码。
    (5)在【确认密码】文本框中,再次键入密码以确认,然后,单击【确定】按钮。
    这样密码配置完成。当下一次查看或编辑工程时,屏幕将显示【Project 密码】对话框并需要输入密码。

11.2.4 配置条件编译参数
    用户能够使用条件编译的方式,来选择性地运行代码块,例如,调试语句会去比较对于相同的程式任务使用不同方法的速度,或是通过不同的语言来本地化一个应用程式。
    可利用 #Const 指令在代码中声明一个条件编译常数。并且能够利用#If...Then...#Else 指令来指示代码块做条件编译。下列示例中是以 conDebug 变量为基础来运行调试代码或产生代码。
    在声明区声明公用编辑常数。
#Const conDebug = 1
Sub SelectiveExecution()
#If conDebug = 1 Then
. ’用调试语句运行代码。
#Else
. ’ 运行常规代码。
#End If
End Sub
    用户能够在工程属性对话框中配置条件编译参数,如图11-17 所示。
使用Visual

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多