控件与用户窗体.ppt

上传人:s****8 文档编号:66860668 上传时间:2022-12-21 格式:PPT 页数:54 大小:377.50KB
返回 下载 相关 举报
控件与用户窗体.ppt_第1页
第1页 / 共54页
控件与用户窗体.ppt_第2页
第2页 / 共54页
点击查看更多>>
资源描述

《控件与用户窗体.ppt》由会员分享,可在线阅读,更多相关《控件与用户窗体.ppt(54页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第四章第四章 VBA编程编程v序言序言v4.1 宏宏v4.2 控件与用户窗体控件与用户窗体v4.3 对象、属性、方法和事件对象、属性、方法和事件v4.4 VBA语法基础语法基础v4.5 过程过程v4.6 流程控制语句流程控制语句v4.7 VBA应用程序的优化应用程序的优化v4.8 信息及代码的保护信息及代码的保护v4.9 应用举例应用举例章目录节目录序言序言vVBA(VisualBasicforApplications)是MicrosoftOffice系列的内置编程语言,是非常流行的应用程序开发语言VB(VisualBasic)的子集。它“寄生于”Office应用程序,是OfficeXP套装软

2、件的一个十分重要的组件。它功能强大,面向对象(OOP),非常适合入门级学习。利用它可以实现繁琐、机械的日常工作的自动化,从而极大提高用户的办公效率。vVBA和VB的主要区别是:1.VB用于创建标准的应用程序,VBA是使已有的应用程序(Office)自动化。2.VB具有自己的开发环境,VBA寄生于已有的应用程序(Office)。3.VB开发出的应用程序可以是可执行文件(*.EXE),VBA开发的程序必须依赖于它的“父”应用程序(Office)。章目录节目录v用VBA可以实现如下一些功能:1.使重复的任务自动化。2.自定义工具栏、菜单和界面。3.简化模板的使用。4.自定义Office,使其成为开发

3、平台。5.创建报表。6.对数据进行复杂的操作和分析。v用Office作为开发平台的主要优点:1.Office本身功能强大,包括打印、文件处理、格式化和文本编辑等。2.Office应用软件及其VBA内置大量函数、语句、方法等,功能非常丰富。3.Office界面熟悉,便于软件推广应用。4便于发布。只需要发布含有VBA代码的文档,无需考虑运行环境,因为Office是普遍配备的应用软件。5利用宏可以实现部分程序设计自动化,大大提高软件开发效率。章目录节目录4.1 宏宏v宏(Macro)是一组VBA语句。可以理解为一个程序段,或一个子程序。在OfficeXP中,宏可以直接编写,也可以通过录制形成。录制宏

4、,实际上就是将一系列操作过程记录下来并由系统自动转换为VBA语句。这是目前最简单的编程方法,也是VBA最有特色的地方。v4.1.1 宏的录制与执行宏的录制与执行v4.1.2 宏的编辑宏的编辑v4.1.3 为宏指定快捷键为宏指定快捷键v4.1.4 指定宏保存的位置指定宏保存的位置v4.1.5 将宏指定给按钮将宏指定给按钮 v4.1.6 将宏指定给图片或工具栏按钮将宏指定给图片或工具栏按钮章目录节目录v4.1.1 宏的录制与执行宏的录制与执行下面录制一个非常简单的宏,它的功能是将当前选中的单元格背景下面录制一个非常简单的宏,它的功能是将当前选中的单元格背景置成蓝色。如下步骤:置成蓝色。如下步骤:进

5、入进入Excel。在在“工具工具|宏宏”菜单中选菜单中选“录制新宏录制新宏”项。项。在在“录制新宏录制新宏”对话框中输入宏名对话框中输入宏名“填充颜色填充颜色”,单击,单击“确定确定”按按钮。此时,屏幕上显示出钮。此时,屏幕上显示出“停止录制停止录制”工具栏。工具栏。在在“格式格式”工具栏中单击工具栏中单击“填充颜色填充颜色”按钮右边的三角标志,选择按钮右边的三角标志,选择蓝色。蓝色。单击单击“停止录制停止录制”工具栏按钮,结束宏录制过程。也可以选择工具栏按钮,结束宏录制过程。也可以选择“工工具具|宏宏|停止录制停止录制”菜单结束宏录制。录制完一个宏后就可以执行它了菜单结束宏录制。录制完一个宏

6、后就可以执行它了。v4.1.2 宏的编辑宏的编辑对已经存在的宏,我们可以查看代码,也可以进行编辑修改。对已经存在的宏,我们可以查看代码,也可以进行编辑修改。选择选择“工具工具|宏宏|宏宏”菜单,在菜单,在“宏宏”对话框中选择列表中的对话框中选择列表中的“填充颜填充颜色色”,单击单击“编辑编辑”按钮。可以按钮。可以在在VBA的编辑器窗口修改宏。的编辑器窗口修改宏。编辑宏同样非常简单。同时我们知道,通过编辑宏可以删除多余的语编辑宏同样非常简单。同时我们知道,通过编辑宏可以删除多余的语句,提高运行速度,也可以加入判断或循环等无法录制的语句,增加宏句,提高运行速度,也可以加入判断或循环等无法录制的语句

7、,增加宏的功能。的功能。许多过程可以用录制宏来完成。但录制的宏无判断或循环能力,人机许多过程可以用录制宏来完成。但录制的宏无判断或循环能力,人机交互能力差,即用户无法进行输入,计算机无法给出提示,无法显示对交互能力差,即用户无法进行输入,计算机无法给出提示,无法显示对话框,无法显示自定义窗体。因此,需要对录制的宏进行编辑修改。话框,无法显示自定义窗体。因此,需要对录制的宏进行编辑修改。章目录节目录v4.1.3 为宏指定快捷键为宏指定快捷键快捷键即快速执行某项操作的组合键。例如:CTRL+C在许多程序中代表“复制”命令。当给宏指定了快捷键后,就可以用快捷键来执行宏,而不必通过“工具”菜单。可以在

8、创建宏时指定快捷键,也可以在创建后再指定。v注意:当包含宏的工作簿打开时,为宏指定快捷键会覆盖原有快捷键的功能。因此,在定义新的快捷键时,尽量避开系统已定义的常用快捷键。v4.1.4 指定宏保存的位置指定宏保存的位置宏可保存在三种位置:当前工作簿、新工作簿和个人宏工作簿。将宏保存在当前工作簿或新工作簿,只有该工作簿打开时,相应的宏才可以用。个人宏工作簿是为宏而设计的一种特殊的具有自动隐藏特性的工作簿。第一次将宏创建到个人宏工作簿时,会创建名为“PERSONAL.XLS的新文件。如果该文件存在,则每当EXCEL启动时会自动将此文件打开并隐藏在活动工作簿后面。在“窗口”菜单中选择“取消隐藏”后,可

9、以发现它的存在。节目录章目录v4.1.5 将宏指定给按钮将宏指定给按钮 VBA主要的目标是为自动化提供一个易于操作的界面。“按钮”是最常见的界面组成元素之一。通过使用“窗体”工具栏,可以为工作簿中的工作表添加按钮。在创建完一个按钮后,可以为它指定宏,然后就可以通过单击按钮来执行宏了。此后,单击按钮就可以运行该宏。在按钮上右击鼠标,可改变大小或标题。v4.1.6 将宏指定给图片或工具栏按钮将宏指定给图片或工具栏按钮除了将宏指定给按钮外,还可以指定给图片和工具栏按钮。指定宏到图片十分简单,用“插入|图片”菜单或其他方法在当前工作表放置图片后,右击图片,在快捷菜单中选“指定宏”即可进行设置。将宏指定

10、给“工具栏按钮”,可按如下步骤进行:在Excel中,选择“工具|自定义”菜单,显示“自定义”对话框。在“命令”卡中,从“类别”列表框中选择“宏”,从“命令”列表框中将“自定义按钮”拖动到任意一个工具栏上。右击该按钮,选择“指定宏”,显示“指定宏”对话框。选择需要的宏名并单击“确定”按钮。单击“关闭”按钮,关闭“自定义”对话框。章目录节目录4.2 控件与用户窗体控件与用户窗体v4.2.1 控件控件在Excel工具栏上单击鼠标右键,从快捷菜单中选择“窗体”,显示出“窗体”工具栏,其中有16个控件,9个可放到工作表上。1标签:用于表现静态文本。2分组框:用于组合其它控件。3按钮:用于执行宏命令。4复

11、选框:它是一个选择控件,通过单击可以选择和取消选择,可以多项选择。5选项按钮:通常几个选项按钮组合在一起使用,在一组中只能选择一个选项按钮。6列表框:用于显示多个选项并从中选择。7组合框:用于显示多个选项并从中选择。可以选择其中的项目或者输入一个其它值。8滚动条:是一种选择控制机制。包括水平滚动条和垂直滚动条。9微调控件:是一种数值选择机制,通过单击控件的箭头来选择数值。要将控件添加到工作表上,可以在“窗体”工具栏中单击需要的控件,此时鼠标变成十字形状,在当前工作表的适当位置按下鼠标左键并拖动鼠标画出一个矩形,这个矩形代表了控件的大小,对大小满意后放开鼠标左键,这样一个控件就添加到工作表上了。

12、节目录章目录v4.2.2 用户窗体用户窗体用户窗体。用户窗体可以作为程序的对话框和窗口。向用户窗体添加控件类似于向工作表添加控件。在VBA编辑器中出现一个名为“UserForm1”的窗体,“控件工具箱”同时出现,在其中有许多已经熟悉的控件,另外还有一些新的控件。这些新的控件是:1切换按钮:该控件如果被选中,那么会保持被按下的状态。如果再次单击它就恢复为没有按下的状态。2选项卡条(TabStrip):它是包含多个选项卡的控件。通常用来对相关的信息进行组织或分类。3多页:外观类似选项卡条,是包含一页或多页的控件。选项卡条给人相似的外观,而多页控件的各页包含各自不同的控件,有各自不同的布局。如果每一

13、页具有相同布局,则应选择选项卡条,否则应该选择多页。4图像控件:它允许向窗体上放置图片。5RefEdit:它外观象文本框,通过这个控件可以将用户窗体折叠起来,以便选择单元格区域。章目录节目录4.3 对象、属性、方法和事件对象、属性、方法和事件v同其它任何面向对象的编程语言一样,VBA里也有对象、属性、方法和事件。所谓对象,就是代码和数据的组合。如表、窗体或文本框等都是对象。所谓属性,是指对象的特性,像大小、颜色、状态等。所谓方法指的是对象能执行的动作,如刷新等。事件是一个对象可以辨认的动作,像单击鼠标或按下某键等,并且可以写某些代码针对此述动作来做响应。v在VBA中,窗口和它上面的“关闭”按钮

14、,是两个对象。窗口及按钮的颜色、大小是它们的属性。当你按下“关闭”按钮时,发生关闭事件,通过相应的方法关闭窗口。【例4.1】章目录节目录【例4.1】v新建一个窗体,放置两个按钮和一个文字框控件。按钮的标题分别定义为“显示”和“清除”。单击“显示”按钮,在文字框中显示一行文字,单击“清除”按钮,清除文字框中的文字。节目录章目录4.4 VBA语法基础语法基础v4.4.1注释注释v4.4.2连写和断行连写和断行v4.4.3变量和常量变量和常量v4.4.4运算符运算符章目录节目录4.4.1 注释注释v好的程序一般都有注释,这对程序的维护有很大的好处。v在VBA程序中,注释可以通过以下两种方式实现:v(

15、1)使用Rem语句。v(2)用单引号()号。4.4.2 连写和断行连写和断行程序中,一般一个语句占一行,但有时候可能需要在一行中写几个语句。这时需要用到“:”来分开语句。例如:a=1:b=2有时一个语句太长,书写起来不方便,看上去也不美观,希望将其分开写成几行。此时要用到空白加下划线(_)。章目录节目录4.4.3 变量和常量变量和常量v1变量v2变量的数据类型v3声明变量v4声明数组v5变量赋值v6常量章目录节目录1变量v变量用于临时保存数据。程序运行时,变量的数据可以改变。在VBA代码中可声明和使用变量来临时存储数据或对象。例如:vDimMyNameAsString声明一个名为MyName的

16、字符串变量vMyName=北京给变量赋值vMyName=上海改变量的值2变量的数据类型变量的数据类型控制变量允许保存何种类型的数据。表4.1列出了VBA支持的数据类型,同时列出了各种类型的变量所需要的存储空间和能够存储的数据范围。进行程序设计时,应选择占据存储空间尽量小的数据类型来保存所需要的数据。表4.1数据类型章目录节目录表4.1数据类型数据类型数据类型存储空间存储空间数值范围数值范围Byte(字节)1字节0255Booleam(布尔)2字节True或FalseInteger(整型)2字节-3276832767Long(长整型)4字节-21474836482147483647Single(

17、单精度)4字节负值范围:-3.402823E38-1.401298E-45正值范围:1.401298E-453.402823E38Double(双精度)8字节负值范围:-1.79769313486232E308-4.94065645841247E-324正值范围:4.94065645841247E-3241.79769313486232E308Currency(货币)8字节-922337203685477.5808922337203685477.5807Decimal12字节不包括小数时:+/-79228162514264337593543950335包括小数时:+/-7.9228162514

18、264337593543950335Date(日期时间)8字节日期:100年1月1日9999年12月31日时间:00:00:0023:59:59Object(对象)4字节任何引用对象String(字符串)字符串的长度变长字符串:020亿个字符定长字符串:164K个字符Varient(数字)16字节Double范围内的任何数值Varient(文本)字符串的长度数据范围和变长字符串相同3声明变量v变量在使用之前,最好进行声明,也就是定义变量的数据类型,这样可以提高程序的可读性和节省存储空间。v变量的数据类型可以是表4.1中的任何一种数据类型。变量不经声明直接使用在语法上也是允许的,系统会自动将变量

19、定义为Variant类型,VBA中默认的数据类型是Variant。缺点是占用存储空间较大,而且影响程序的性能,因为VBA必须辨别Variant类型的变量中存储了何种类型的数据。通常使用Dim语句来声明变量。节目录章目录v变量名必须以字母开始,并且只能包含字母、数字和特定的字符,最大长度为255个字符。可以在一个语句中声明几个变量。v声明语句可以放到过程中,创建的变量在过程内有效,声明语句放到模块顶部,创建的变量在模块中有效。节目录章目录4声明数组v数组是具有相同数据类型并共同享有一个名字的一组变量的集合。数组中的不同元素通过下标加以区分。v数组的声明方式和其它的变量是一样的,可以使用Dim、S

20、tatic、Private或Public语句来声明。若数组的大小被指定的话,则它是个固定大小数组。若程序运行时数组的大小可以被改变,则它是个动态数组。v数组的下标从0还是从1开始,可由OptionBase语句的设置。如果OptionBase没有指定为1,则数组下标从0开始。章目录节目录v在声明数组时,不指定下标的上界,即括号内为空,则数组为动态数组。动态数组可以在执行代码时改变大小。v动态数组声明后,可以在程序中用ReDim语句来重新声明。ReDim语句可以重新定义数组的维数以及每个维的上界。重新声明数组,数组中存在的值会丢失。若要保存数组中原先的值,可以使用ReDimPreserve语句来扩

21、充数组。节目录章目录5变量赋值变量或数组声明后,就可以进行赋值。6常量变量用来存储动态信息。静态信息可以用常量表示。它可以供程序多次使用而且便于记忆。比如用PI表示圆周率比3.1415926好得多。要声明常量并设置常量的值,需要使用const语句。常量通常用全大写字母以区别于变量。常量声明后,不能对它赋一个新的值。与变量一样,常量的定义的位置也决定了它的作用域。章目录节目录4.4.4 运算符运算符VBA中的运算符有四种:算术运算符、比较运算符、逻辑运算符和连接运算符。用来组成不同类型的表达式。1算术运算符2比较运算符3逻辑运算符4连接运算符5运算符的优先级章目录节目录1算术运算符VBA算术运算

22、符有7个,他们用于构建数值表达式或返回数值运算结果,各运算符的作用和示例见表4.2表4.2算术运算符符号符号作用作用示例示例+加法3+5=8-减法、一元减11-6=5、-6*3=-18*乘法6*3=18/除法10/4=2.5整除196=3mod取模19mod6=1指数32=9节目录章目录2比较运算符比较运算符用于构建关系表达式,返回逻辑值True、False或Null(空)。名称、用法见表4.3表4.3比较运算符符号符号名称名称用法用法小于表达式1表达式2=小于或等于表达式1大于表达式1表达式2=大于或等于表达式1=表达式2=等于表达式1=表达式2不等于表达式1表达式2Is同引用对象1Is对象

23、2Like匹配于字符串1Like字符串2章目录节目录v其中,前6个比较运算符所组成的关系表达式,当符合相应的关系时,结果为True,否则为False。如果参与比较的表达式有一个为Null,则结果为Null。vIs运算符用来比较两个对象引用。如果两者引用的对象相同,结果为True,否则为False。vLike运算符做字符串的方式比较。如果字符串1与字符串2匹配,则返回True,否则返回False。可以使用通配符、字符串列表或字符区间的任何组合匹配字符串。通配符“?”代表任意一个字符,“*”代表任意多个字符,“#”代表任何一个数字(09),“charlist”代表charlist中任何一个字符,“

24、!charlist”代表任何一个不在charlist中的字符。节目录章目录3逻辑运算符逻辑运算符用于构建逻辑表达式,返回逻辑值True、False或Null(空)。名称、语法见表4.4表4.4逻辑运算符符号符号名称名称语法语法And与表达式1And表达式2Or或表达式1Or表达式2Not非Not表达式Xor异或表达式1Xor表达式2Eqv等价表达式1Eqv表达式2Imp蕴涵表达式1Imp表达式2章目录节目录4连接运算符v字符串连接运算符有两个:“&”和“+”。v其中“+”运算符既可用来计算数值的和,也可以用来做字符串的串接操作。不过,最好还是使用“&”运算符来做字符串的串接操作。5运算符的优先

25、级v按优先级由高到低的次序排列的运算符如下:v括号指数一元减乘法和除法整除取模加法和减法连接比较逻辑(And、Or、Not、Xor、Eqv、Imp)。节目录章目录4.5 过程过程v4.5.1 模块与过程模块与过程v4.5.2 过程的创建与运行过程的创建与运行v4.5.3 子程序子程序v4.5.4 自定义函数自定义函数章目录节目录4.5.1 模块与过程模块与过程v每个VBA应用程序都存在于一个“工程”中。工程下面可分为若干个“模块”。模块包括标准模块、类模块和对象模块三种。v模块中可以定义若干个“过程”。过程中包含一系列用于执行某个任务的语句。每个过程都有唯一的名字。过程可以是函数,也可以是子程

26、序。函数执行一系列操作后返回一个函数值。子程序只执行一个或多个操作,而不返回数值。当录制完宏查看代码时,所看到的就是子程序。宏只能录制子程序,而不能录制函数过程。v函数过程通常情况下称为函数,要返回一个数值。这个数值通常是计算的结果或是测试的结果,例如False或True。可以在模块中创建和使用自定义函数。节目录章目录4.5.2 过程的创建与运行过程的创建与运行v进入Excel或打开一个工作簿,系统自动建立一个工程,工程中自动包含ThisWorkbook、Sheet1等对象模块。过程可以在对象模块中建立,也可以在标准模块或类模块中建立。如果模块不存在,首先需要向工程中添加一个模块。v工作簿中的

27、模块与过程随工作簿一起保存。在VBA编辑器或工作簿窗口都可以通过“文件”菜单保存工作簿。章目录节目录4.5.3 子程序子程序v子程序以Sub开头,EndSub结尾。常用语法格式如下:Public|PrivateSub子程序名()ExitSubEndSub节目录章目录vPublic关键字可以使子程序在所有模块中有效。Private关键字使子程序只在本模块中有效。如果没有显式指定,缺省情况是公用的。v子程序可以带参数。vExitSub语句的作用是退出子程序。章目录节目录4.5.4 自定义函数自定义函数v在VBA中,提供了大量的内置函数。比如字符串函数Mid()、统计函数Max()等。在编程时直接引

28、用就可以了。但有时需要按自己的要求定制函数,比如计算半径为R的圆的面积A=3.14*R2v我们不可能为每一个不同半径的园来写上相似的一段代码,而应该使用函数。v用Function语句可以定义函数,常用的语法形式如下:节目录章目录Public|PrivateFunction函数名()As数据类型函数名=ExitFunction函数名=EndFunction章目录节目录v定义函数时用Public关键字,则所有模块都可以调用它。用Private关键字,函数只用于同一模块。如果没有显式指定,则缺省为公用。v函数名末尾可使用As子句来声明返回值的数据类型,参数也可指定数据类型。若省略数据类型说明,系统会

29、自动根据赋值确定。vExitFunction语句的作用是退出Function过程。节目录章目录4.6流程控制语句流程控制语句v4.6.1If语句语句v4.6.2GoTo语句语句v4.6.3SelectCase语句语句v4.6.4For.Next语句语句v4.6.5Do.Loop语句语句v4.6.6With语句语句章目录节目录4.6.1If语句语句If语语句句是是我我们们最最常常用用的的一一种种分分支支语语句句。它它符符合合人人们们通通常常的的语语言言习习惯惯和和思思维习惯。维习惯。If语句有三种语法形式。语句有三种语法形式。ifthenelseifthenelseendififthenelse

30、ifthenelseendif是是一一个个关关系系表表达达式式或或逻逻辑辑表表达达式式。若若值值为为真真,则则执执行行紧紧接接在在关关键键字字then后后面面的的语语句句组组。若若的的值值为为假假,则则检检测测下下一一个个elseif或或执执行行else关键字后面的语句组,然后继续执行下一个语句。关键字后面的语句组,然后继续执行下一个语句。章目录节目录章目录节目录4.6.2GoTo语句语句用GoTo语句可以无条件地转到另一条语句去执行。语法格式:GoTo标号或行号标号以字母开头,冒号结束,不超过40个字符。行号是一个数值。GoTo语句会影响程序的结构,使程序阅读及调试困难。因此,除非万不得已,

31、尽量少使用GoTo语句。章目录节目录4.6.3SelectCase语句语句如果条件复杂,程序需要多个分支,用If语句就会显得相当累赘,而且程序变得不易阅读。这时我们可以使用SelectCase语句来写出结构清晰的程序。SelectCase语法如下:SelectCaseCaseCaseElseEndSelect其中的是任何数值或字符串表达式。可以是下列几种形式之一:表达式表达式To表达式Is表达式说明:如果与Case子句中的一个相匹配,则执行该子句后面的语句组。若中含有To关键字,则第一个表达式必须小于第二个表达式,值介于两个表达式之间为匹配。若含有Is关键字,Is代表构成的关系表达式的值为真则

32、匹配。章目录节目录4.6.4For.Next语句语句For.Next是一个循环语句,其语法形式如下:For循环变量=初值To终值Step步长ExitForNext循环变量该循环语句执行时,首先把循环变量的值设为初值,如果循环变量的值没有超过终值,则执行循环体,遇到Next,把步长加到循环变量上,若没有超过终值,再循环,直至循环变量的值超过终止时,才结束循环,继续执行后面的语句。步长可正、可负,为1时可以省略。遇到ExitFor时,退出循环。章目录节目录4.6.5Do.Loop语句语句Do.Loop语句可以循环执行语句组,它有以下两种形式:DoWhile|UntilExitDoLoopDoExi

33、tDoLoopWhile|Until上面格式中,While和Until的作用正好相反。使用While,则当为真继续循环。使用Until,则当为真时,结束循环。把While或Until放在Do子句中,则先判断后执行。把一个While或Until放在Loop子句中,则先执行后判断。章目录节目录4.6.6With语句语句在引用对象的时候,用With可以简化代码中对复杂对象的引用。可以用With语句建立一个“基本”对象,然后进一步引用这个对象上的对象、属性或方法,直至终止With语句。其语法形式如下:WithEndWith4.7.1尽量使用系统提供的属性、方法和函数尽量使用系统提供的属性、方法和函数4

34、.7.2尽量减少使用对象引用尽量减少使用对象引用4.7.3减少对象的激活和选择减少对象的激活和选择4.7.4关闭屏幕更新关闭屏幕更新4.7.5变量和常量的使用变量和常量的使用章目录节目录4.7VBA应用程序的优化应用程序的优化章目录节目录4.7.1尽量使用系统提供的属性、方法和函数尽量使用系统提供的属性、方法和函数Office对象有上百个,对象的属性、方法、事件更是多不胜数,对于初学者来说可能对它们不全部了解,因此不能很好地利用这些对象的属性、方法和函数,而另编VBA代码段实现相同的功能。自编代码段一般要比原有对象的属性、方法和函数完成任务的效率低的多。充分利用Worksheet函数是提高程序

35、运行速度的有效的方法。4.7.2尽量减少使用对象引用尽量减少使用对象引用每个对象的属性、方法的调用都需要通过OLE接口的一个或多个调用,这些OLE调用都是需要时间的,减少使用对象引用能加快VBA代码的运行。如果一个对象引用被多次使用,则可以将此对象用Set设置为对象变量,以减少对对象的访问次数。在循环中要尽量减少对象的访问。章目录节目录4.7.3减少对象的激活和选择减少对象的激活和选择如果你的通过录制宏来学习VBA的,则你的VBA程序里一定充满了对象的激活和选择,但事实上大多数情况下这些操作不是必需的。4.7.4关闭屏幕更新关闭屏幕更新关闭屏幕更新是提高VBA程序运行速度的最有效的方法。关闭屏

36、幕更新的方法:Application.ScreenUpdate=False请不要忘记VBA程序运行结束时再将该值设回来:Application.ScreenUpdate=True4.7.5变量和常量的使用变量和常量的使用尽管在代码中使用Variant变量很方便,但VBA在处理Variant变量值比处理显式类型变量需要更多的时间。使用Integer或Long变量代替Variant变量处理不带小数的计算速度会更快。但使用显式变量会牺牲掉灵活性,如此时可能会遇到溢出问题,而使用Variant变量则能自动处理这种情况。章目录节目录4.8信息及代码的保护信息及代码的保护4.8.1利用利用VBA设置工作表

37、使用权限设置工作表使用权限通常,我们用EXCEL菜单中的“保护”命令来保护工作表,但有时尚嫌不足。这时可以在VBA编辑器中对需要保护的工作表编码。4.8.2程序代码的保护程序代码的保护为了不让使用者查看和修改程序代码,需要对代码进行保护。方法如下:进入VBA编辑环境,打开“工程资源管理器”窗口,用鼠标右击工程(VBAProject),在弹出菜单中选“VBAProject属性”项,在“VBAProject工程属性”对话框的“保护”卡中,选中“查看时锁定工程”复选框,然后输入并确认“查看工程属性的密码”,最后单击“确定”按钮,保存当前工作簿并退出。再次打开工作簿时,要查看或者修改程序代码,必须输入

38、正确的密码。章目录节目录4.9应用举例应用举例4.9.1在在Excel中实现定时提醒中实现定时提醒4.9.2在在Word当前文档中插入多个文件的内容当前文档中插入多个文件的内容4.9.3用用WordVBA查汉字区位码查汉字区位码4.9.4在在Word中快速输入中快速输入GB2312全部汉字全部汉字4.9.5在在Word文档中统计指定字符的出现次数文档中统计指定字符的出现次数4.9.6中文小大写金额中文小大写金额转换函数转换函数1在上午8点45分显示一个提醒信息。进入Excel的VBA编辑环境,在任意一个模块中定义两个过程:运行过程Run_it,到指定的时刻,屏幕出现的信息如图所示。簿后,每十分

39、钟提醒依次存盘。进入Excel的VBA编辑环境,在模块中定义三个过程:auto_open过程在打开文档时自动运行,它发出提示信息后,调用过程runtimer,过程runtimer用Now+TimeValue(00:10:00)指定在当前时间过10分钟开始运行Saveit这个过程。过程Saveit发出提示信息并提供三种选择:如果选择“是”,则通过ActiveWorkbook.Save方法存盘;选择“否”,不存盘,但再次调用Runtimer;选择“取消”,则结束程序,不再提示。屏幕出现的提示信息如图所示。章目录节目录章目录节目录4.9.2在在Word当前文档中插入多个文件的内容当前文档中插入多个文

40、件的内容在Word应用中,有时需要连续往当前文档插入多个文件的内容。一般我们是在“插入”菜单中选“文件”项,然后选择文件夹和文件进行插入。重复以上操作,可插入需要的所有文件内容。若插入的文件较多,用这种办法就显得枯燥而低效。而用VBA程序使上述工作自动化,可以大大减轻操作负担,提高工作效率。比如,将长篇文稿分给几十个人录入,最后合并到一个文档;将事先做好的十几个图形文件插入当前文档;从中央电视台网站下载的节目时间表中,各台节目是一个独立的文本文件,将它们合并到一个文档。尽管这些工作量不是很大,但用一段小程序自动实现,还是可以节省一定时间的,感觉也是大不一样的,更重要的是应用水平、应用技巧的提高

41、会多方面受益的。下面以下载的中央电视台1至8套节目时间表合并为例,介绍程序的设计过程和方法,相信对读者会有所启发。1语句、函数的选用和程序初稿的形成用一个不太熟悉的编程环境或语言编写程序,OfficeXP的宏可以帮我们大忙,它可以使部分程序的设计自动化。将需要的操作过程录制为宏,就得到了相应的程序,其中该用哪些语句、函数我们一看便知,进入Word2002,选择“工具|宏”菜单的“录制新宏”项,在弹出的对话框中用默认的宏名Macro1,单击“确定”按钮后就可以进行宏录制了。用“格式”工具栏的按钮设置号字为“3号”,对齐方式为“居中”,输入“中央1套”,回车。设置号字为“5号”,对齐方式为“两端对

42、齐”,选“插入”菜单的“文件”项,在对话框中选择需要的文件夹和文件(如C:MyDocuments八套01.txt),单击“插入”按钮,在当前文当中插入该文件的内容。停止录制宏。在“工具|宏”菜单中选“宏”项,在弹出的对话框中选Macro1,单击“编辑”按钮章目录节目录2加工初稿得到需要的程序通过宏的录制过程和对应代码的分析,我们不难发现各语句和函数的作用。上面录制的宏,只是设置了字号、对齐方式,输入了一行文字,插入了一个文本文件的内容。我们的目的是连续插入多个文本文件的内容,并进行必要的格式控制。因此,对录制的宏进行修改。3运行程序在“工具|宏”菜单中选“宏”项,在弹出的对话框中选Macro1

43、,单击“运行”按钮,就会将中央电视台1至8套节目时间表按顺序插入到当前文档,每套节目前边有一个标注文字(三号字、居中),然后是具体节目时间表(五号字、两端对齐)。为便于操作,也可以自定义一个工具栏,将宏指定为工具栏上的一个按钮。不用时可删除自定义工具栏和按钮。以上过程看起来好像也比较复杂,实际上真正的意义是一次定义多次使用,而且举一反三,类似的问题可以直接编程处理。比如,要往当前文档插入多个图形文件,文件路径为“D:gif”,文件名为“bs01.gif”、“bs02.gif”、“bs20.gif”,可直接创建一个宏或进入VBA编程环境定义一个过程,程序运行后,将15个图形文件依次插入当前文档。

44、请读者自行分析代码。章目录节目录4.9.3用用WordVBA查汉字区位码查汉字区位码为了保证汉字信息输入到计算机的准确性,许多场合要使用汉字的区位码。因此,填报相关材料(如中考、高考志愿表等)时,汉字信息需要同时填写区位码。通常,区位码可以查表得到,但是如果手头暂时没有区位码表,怎么查找每个汉字的区位码呢?下面的VBA小程序可以帮助我们解决问题。进入Word2002,选“工具|宏”菜单的“宏”项,在“宏”对话框中输入宏名“查区位码”,单击“创建”按钮,进入VBA编辑环境选中要查区位码的汉字,选择“工具|宏”菜单的“宏”项,在“宏”对话框中选中宏名“查区位码”,单击“运行”按钮,就可得到该汉字的

45、区位码。为了便于操作,可以自定义一个工具栏,将宏“查区位码”指定为工具栏上的一个按钮:选择“工具”菜单的“自定义”项,在“自定义”对话框中选“工具栏”卡,然后单击“新建”按钮,设置工具栏名称后,单击“确定”按钮。在“自定义”对话框的“命令”卡中选“宏”,将宏“查区位码”用鼠标拖到自定义工具栏。以后,只要单击自定义工具栏上的按钮,就可以查出选定汉字的区位码。章目录节目录4.9.4在在Word中快速输入中快速输入GB2312全部汉字全部汉字我国于1981年颁布了信息交换用汉字编码字符集基本集的国家标准,即GB2312。对6763个汉字、628个图形字符进行了统一编码,为信息处理和交换奠定了基础。我

46、们用计算机处理的汉字一般都没有超出这6763个。由于某种特殊需要(比如:打印字帖、打印区位码表等),应该输入GB2312的全部汉字。一个个从键盘输入既慢又容易出错,显然不是好办法。用Word的VBA编一个小程序,可以轻松地解决这个问题。具体做法:进入Word2002,选“工具|宏”菜单的“宏”项,在“宏”对话框中输入宏名“输入汉字集”,单击“创建”按钮,进入VBA编辑环境该程序是一个双重循环结构,外层循环得到汉字内码的高位(范围是176到247之间的整数),内层循环得到汉字内码的低位(范围是161到254之间的整数),将内码的高位和低位以十六进制数字符形式拼接,即得到一个汉字的完整内码,用ch

47、r函数将内码转换为汉字,可输入到当前文档。整个循环程序结束后,GB2312的全部汉字便输入到当前文档。上述宏创建后,在Word2002种选择“工具|宏”菜单的“宏”项,在“宏”对话框中选中宏名“输入汉字集”,单击“运行”按钮,便可得到GB2312的全部汉字。4.9.5在在Word文档中统计指定字符的出现次数文档中统计指定字符的出现次数有时候,要对某些字符(或汉字)在文档中的出现次数进行统计。要完成这一任务,可用Word2002中的VBA程序。1定义窗体和控件在Word2002中,按Alt+F11键,进入VBA编辑环境。在“插入”菜单中选“用户窗体”项,新建一窗体Userform1,右击窗体,在

48、快捷菜单中选“属性”项,设置窗体的caption属性为“字符统计”。在窗体中放置以下控件:复选框CheckBox1,Caption=“区分大小写”。文字框TextBox1。命令按钮CommandButton1,Caption=“统计”。标签Label1,Caption=“输入您要统计的字符(或汉字):”2编写程序代码3使用打开要统计的文档,运行上面定义的窗体。在窗体的文本框中输入要统计的字符,如“VBA”,然后选择是否区分大小写,单击“统计”按钮,便可以进行统计了。统计完成后,弹出消息框,报告统计的结果,如图所示。章目录节目录章目录节目录4.9.6中文小大写金额转换函数中文小大写金额转换函数各

49、种计算机报刊、网站介绍的小写到大写金额转换程序为数不少,通过设置Excel2002单元格的特殊格式,也可以将数字转换为中文大写数字。但这些程序或方法有的不够实用,有的输出格式不符合财会规定,也有的程序过于冗长。这里给出一个用VBA实现的函数,能够将小写金额转换成规范的中文大写金额,程序短小精悍,调用方便,有实用性。1函数的定义注意:函数的调用参数小写金额要求必须是文字型,而且一定要有两位小数。2函数的调用函数在OfficeXP的应用程序中定义之后,就可以象内部函数一样调用。比如,在Excel任意一个工作表的B2单元个输入公式“=xdx(A2)”,然后用填充句柄向下填充若干行,只要在A列输入小写金额,B列马上就可以显示出对应的大写金额。注意:A列单元个的格式要设置为“数字作为文字处理”,输入的数值要带有两位小数。

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

当前位置:首页 > 生活休闲 > 生活常识

本站为文档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