VBA语言的基础认识_第1页
VBA语言的基础认识_第2页
VBA语言的基础认识_第3页
VBA语言的基础认识_第4页
VBA语言的基础认识_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VBA语言的基础认识第一节:标识符一、定义标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号,利用它可以完成对 变量、常量、过程、函数、类等引用。二、命名规则(1)字母打头,由字母、数字和下划线组成,如A987b_23Abc(2)字符长度小于40, (Excel2002 以上中文版本等,可以用汉字且长度可达254个字符)(3)不能与 VB 保留字重名,如 public , private , dim , goto , next , with , integer , single 等第二节:运算符定义:运算符是代表 VB某种运算功能的符号。(1 )赋值运算符=(2)数学运算符 &、+

2、 (字符连接符)、+(加)、-(减)、Mod (取余)、 (整除)、*(乘)、/ (除)、-(负号)、A (指数)(3)逻辑运算符 Not (非)、And (与)、Or(或)、Xor(异或)、Eqv(相等)、Imp(蕴涵)(4)关系运算符=(相同)、 (不等)、 (大于)、 (小于)、=(不小于)、=(不大于)、Like、Is(5)位运算符 Not (逻辑非)、And (逻辑与)、Or (逻辑或)、Xor (逻辑异或)、Eqv (逻辑等)、Imp (隐含)第三节:数据类型VBA共有12种数据类型,具体见卜表,此外用户还可以根据以下类型用打。数据类型类型标识符字节字符串型String$字符长度(

3、0-65400 )字节型Byte无1布尔型Boolean无2整数型Integer%2长整数型Long&4单精度型Single!4双精度型Double#8Type自定义数据日期型Date无货币型Currency小数点型Decimal无变体型Variant无对象型Object无8 公元 100/1/1-99/12/31814以上任意类型,可变4第四节:变量与常量(1) VBA允许使用未定义的变量,默认是变体变量(2)在模块通用说明部分,加入 Option Explicit语句可以强迫用户进行变量定义(3)变量定义语句及变量作用域Dim变量as定义为局部变量,如Dimxyz as integerPr

4、ivate变量as“定义为私有变量,如Privatexyz as bytePublic变量as定义为公有变量,如Publicxyz as singleGlobal变量as定义为全局变量,如Globalxyz as dateStatic变量as“定义为静态变量,如Staticxyz as double般变量作用域的原则是,那部分定义就在那部分起作用,模块中定义则在该模块那作用。(4)常量为变量的一种特例,用 Const定义,且定义时赋值,程序中不能改变值,作用域 也如同变量作用域。如下定义:Const Pi=3.1415926 as single第五节:数组数组是包含相同数据类型的一组变量的集合

5、,对数组中的单个变量引用通过数组索引下标进行。在内存中表现为一个连续的内存块,必须用 Global或Dim语句来定义。定义规则如 下:Dim 数组名(lower to upper , lower to upper, .)LanWepe缺省值为 0。维数组是按行列排列,如 XYZ(行,列)。除了以上固定数组外,VBA还有一种功能强大的动态数组,定义时无大小维数声明;在程序中再利用Redim语句来重新改变数组大小,原来数组内容可以通过加preserve 关键字来保留。如下例:Dim array1() as double : Redim array1(5) : array1(3)=250 : Red

6、im preserve array1(5,10)第六节:注释和赋值语句(1)注释语句是用来说明程序中某些语句的功能和作用;VBA中有两种方法标识为注释语句。,单引号;如:定义全局变量;可以位于别的语句之尾,也可单独一行V Rem ;如:Rem 定义全局变量;只能单独一行(2)赋值语句是进行对变量或对象属性赋值的语句,采用赋值号 =,如X=123Form1.caption= 我的窗口 ”对对象的赋值采用:set myobject=object 或 myobject:=object第七节:书写规范VBA不区分标识符的字母大小写,一律认为是小写字母;一行可以书写多条语句,各语句之间以冒号 :分开;一

7、条语句可以多行书写,以空格加下划线_来标识下行为续行;标识符最好能简洁明了,不造成歧义。第八节:判断语句) If ThenElse 语句If condition Then statementsElse elsestatements如 1 : If AB And C250 Then x=x-100或者,可以使用块形式的语法:If condition Then statements ElseIf condition-n Then elseifstatements Else elsestatements End If如1:ThenIf Number 10 Then Digits = 1ElseIf

8、Number 0 then Gosub Routine1: Debug.print num : Exit subRoutine1:Num=num/5ReturnEnd sub(4) while wend的,如下语句,只要条件为TRUE ,循环就执行,这是以前VB老语法保留下来while I50I=I+1Wend例:while condition statements wend.错误语句处理执行阶段有时会有错误的情况发生,利用OnError语句来处理错误,启动一个错误的处理程序。语法如下:On Error Goto LineOn Error Resume NextOn Erro Goto 0当错

9、误发生时,会立刻转移到line行去当错误发生时,会立刻转移到发生错误的下一行去当错误发生时,会立刻停止过程中任何错误处理过程第十一节过程和函数过程是构成程序的一个模块,往往用来完成一个相对独立的功能。过程可以使程序更清晰、 更具结构性。VBA具有四种过程:Sub过程、Function 函数、Property 属性过程和Event 事件过程。一. Sub过程Sub过程的参数有两种传递方式:按值传递(ByVal)和按地址传递(ByRef)。如下例:Sub password (ByVal x as integer, ByRef y as integer) If y=100 then y=x+y el

10、se y=x-y x=x+100End subSub call_password ()Dim x1 as integerDim y1 as integer x1=12 y1=100Call password(x1,y1)调用过程方式:I.Call 过程名(参数1,参数2);2.过程名参数1,参数2debug.print x1,y1结果是12、112 , y1按地址传递改变了值,而 x1按值传递,未改变原值 End sub二.Function 函数函数实际是实现一种映射,它通过一定的映射规则,完成运算并返回结果。参数传递也两种: 按值传递(ByVal)和按地址传递(ByRef)。如下例:Func

11、tion password(ByVal x as integer, byref y as integer) as booleanIf y=100 then y=x+y else y=x-yx=x+100if y=150 then password=true else password=falseEnd FunctionSub call_password ()Dim x1 as integerDim y1 as integerx1=12y1=100if password then 调用函数:1.作为一个表达式放在 =右端;2.作为参数使用 debug.print x1end ifEnd sub.

12、Property属性过程和Event 事件过程这是VB在对象功能上添加的两个过程,与对象特征密切相关,也是 VBA比较重要组成, 技术比较复杂,可以参考相关书籍。第十二节内部函数一.测试函数IsNumeric(x)IsDate(x)IsEmpty (x)IsArray(x)IsError(expression)在VBA程序语言中有许多内置函数,可以帮助程序代码设计和减少代码的编写工作。是否为数字,返回Boolean 结果,True or False 是否是日期,返回Boolean 结果,True or False 是否为 Empty,返回 Boolean 结果,True or False 指出

13、变量是否为一个数组。指出表达式是否为一个错误值IsNull(expression)指出表达式是否不包含任何有效数据(Null)。IsObject(identifier)指出标识符是否表示对象变量二.数学函数Sin(X)、Cos(X)、Tan(X)、Atan(x) 三角函数,单位为弧度Log(x) 返回x的自然对数Exp(x)返回 eAbs(x) 返回绝对值Int(number) 、Fix(number)都返回参数的整数部分,区别: Int将-8.4 转换成-9 ,而Fix将-8.4 转换成-8Sgn(number) 返回一个 Variant (Integer) ,指出参数的正负号Sqr(num

14、ber) 返回一个 Double ,指定参数的平方根VarType(varname) 返回一个Integer ,指出变量的子类型Rnd (x)返回0-1之间的单精度数据,x为随机种子三.字符串函数Trim(string) Ltrim(string) Rtrim(string) Len(string) Left(string, x) Right(string, x) Mid(string, start,x) Ucase(string) Lcase(string) Space(x) Asc(string) Chr(charcode) 符四.转换函数CBool(expression) CByte(e

15、xpression) CCur(expression) CDate(expression) CDbl(expression) CDec(expression) CInt(expression) CLng(expression) CSng(expression) CStr(expression) CVar(expression)去掉string左右两端空白去掉string 左端空白去掉string右端空白计算string长度取string左段x个字符组成的字符串取string右段x个字符组成的字符串取string 从start位开始的x个字符组成的字符串转换为大写转换为小写返回x个空白的字符串返

16、回一个integer,代表字符串中首字母的字符代码 返回string,其中包含有与指定的字符代码相关的字转换为Boolean 型 转换为Byte型转换为Currency 型 转换为Date型 转换为Double型 转换为Decemal 型 转换为Integer 型 转换为Long型 转换为Single型 转换为String型 转换为Variant 型Val(string)转换为数据型Str(number)转换为 String五.时间函数Now返回一个 Variant (Date),根据计算机系统设置的日期和时间来指定日期和时间。Date返回包含系统日期的Variant (Date) 。Time

17、返回一个指明当前系统时间的Variant (Date) 。Timer返回一个Single,代表从午夜开始到现在经过的秒数。TimeSerial(hour, minute, second)返回一个 Variant (Date) ,包含具有具体时、分、秒的时间。DateDiff(interval, date1, date2, firstdayofWeek, firstweekofyear)返回Variant(Long) 的值,表示两个指定日期间的时间间隔数目Second(time) 返回一个 Variant (Integer) ,其值为 0至U 59之间的整数,表示一分 钟之中的某个秒Minute

18、(time) 中的某分钟返回一个 Variant (Integer),其值为0到59之间的整数,表示一小时Hour(time) 的某一钟点Day(date) 中的某一日Month(date) 的某月返回一个 Variant(Integer)返回一个 Variant(Integer)返回一个 Variant(Integer),其值为0到23之间的整数,表示一天之中,其值为1到31之间的整数,表示一个月,其值为1到12之间的整数,表示一年中,包含表示年份的整数。返回一个 Variant (Integer) ,包含一个整数,代Year(date) 返回 Variant (Integer)Weekda

19、y(date, firstdayofweek)表某个日期是星期几第十三节文件操作文件Dir(pathname,attributes); pathname可选参数,用来指定文件名的字符串表达式,可能包含目录或文件夹、以及驱动器。如果没有找到pathname ,则会返回零长度字符串();attributes可选参数。常数或数值表达式,其总和用来指定文件属性。如果省略,则会返回匹配pathname但不包含属性的文件。删除Kill pathname从磁盘中删除文件,pathname参数是用来指定一个文件名RmDir pathname从磁盘中删除目录,pathname参数是用来指定一个文件夹打开Open

20、 pathname For mode Access access lock As #filenumber Len=reclength能够对文件输入/输出(I/O)。pathname 必要。字符串表达式,指定文件名,该文件名可能还包括目录、文件夹及驱动 器。mode 必要。关键字,指定文件方式,有 Append、Binary、Input、Output、或 Random 方式。如果未指定方式,则以 Random 访问方式打开文件。access 可选。关键字,说明打开的文件可以进行的操作,有Read、Write、或ReadWrite操作。lock可选。关键字,说明限定于其它进程打开的文件的操作,有

21、Shared、LockRead、 LockWrite 、和 Lock Read Write 操作。filenumber 必要。一个有效的文件号,范围在 1至U 511 之间。使用 FreeFile 函数可 得到下一个可用的文件号。reclength可选。小于或等于32 , 767 (字节)的一个数。对于用随机访问方式打开的文件,该值就是记录长度。对于顺序文件,该值就是缓冲字符数。说明对文件做任何I/O操作之前都必须先打开文件。Open 语句分配一个缓冲区供文件进彳T I/O 之用,并决定缓冲区所使用的访问方式。如果 pathname指定的文件不存在,那么,在用 Append、Binary、Ou

22、tput、或 Random方式打开文件时,可以建立这一文件。如果文件已由其它进程打开,而且不允许指定的访问类型,则 Open操作失败,而且 会有错误发生。如果 mode是Binary 方式,则Len子句会被忽略掉。重要在Binary、Input和Random 方式下可以用不同的文件号打开同一文件,而不必 先将该文件关闭。在 Append 和Output方式下,如果要用不同的文件号打开同一文件, 则必须在打开文件之前先关闭该文件。读入Input #filenumber, varlist从已打开的顺序文件中读出数据并将数据指定给变量Get #filenumber, recnumber, varna

23、me将一个已打开的磁盘文件读入一个变量之中。写入Write #filenumber, outputlist将数据写入顺序文件Print #filenumber, outputlist将格式化显示的数据写入顺序文件中Put #filenumber, recnumber, varname将一个变量的数据写入磁盘文件中。关闭Close filenumberlist 关闭 Open 语句所打开的输入/输出(I/O) 文件注意 如果今后想用Input #语句读出文件的数据,就要用 Write #语句而不用 Print #语句将数据写入文件。因为在使用Write# 时,将数据域分界就可确保每个数据域的完整

24、性,因此可用Input# 再将数据读出来。使用 Write#还能确保任何地区的数据都被正确读出。Write与Print #语句不同,当要将数据写入文件时,Write #语句会在项目和用来标记字符串的引号之间插入逗号。Write #语句在将outputlist中的最后一个字符写入文件后会插入一个新行字符,即回车换行符,(Chr(13) + Chr(10)。其他文件函数LOF(filenumber)返回一个 Long ,表示用 Open语句打开的文件的大小,该大小以字节为单 位。EOF(filenumber)返回一个Integer ,它包含 Boolean 值True ,表明已经到达为Random

25、 或 顺序Input 打开的文件的结尾。Loc(filenumber) 返回一个Long ,在已打开的文件中指定当前读/写位置Seek(filenumber) 返回一个Long ,在Open 语句打开的文件中指定当前的读/写位详解VBA编程是什么直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC 使WORD自动化,等等.微软决定让它开发出来的应用程序共享一 种通用的自动化语言 Visual Basic For Application(VBA),可以认

26、为 VBA 是非常流行的应用程序开发语言 VASUAL BASIC 的子集.实际上VBA是寄生于VB应用程序的 版本.VBA和VB的区别包括如下几个方面:VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化VB具有自己的开发环境,而VBA必须寄生于已有的应用程序 .要运行VB开发的应用程序,用户不必安装 VB,因为VB开发出的应用程序是可执行 文件(*.EXE),而VBA开发的程序必须依赖于它的 父应用程序,例如EXCEL.尽管存在这些不同,VBA和VB在结构上仍然十分相似.事实上,如果你已经了解了 VB,会发 现学习VBA非常快.相应的,学完VBA会给学习VB打

27、下坚实的基础.而且,当学会在EXCEL 中用VBA创建解决方案后,即已具备在 WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用VBA 创建解决方 案的大部分知识.VBA 一个关键特征是你所学的知识在微软的一些产品中可以相互转化VBA 可以称作EXCEL的遥控器.VBA究竟是什么?更确切地讲,它是一种自动化语言,它可以使常用的程序自动化 ,可以创建 自定义的解决方案.此外,如果你愿意,还可以将EXCEL用做开发平台实现应用程序 .EXCEL环境中基于应用程序自动化的优点也许你想知道VBA可以干什么?使用VBA可以实现的功能包括:.使重复的任务自动化.自定义EXC

28、EL工具栏,菜单和界面.简化模板的使用.自定义EXCEL,使其成为开发平台.创建报表.对数据进行复杂白操作和分析 .用EXCEL作为开发平台有如下原因:EXCEL本身功能强大,包括才T印,文件处理,格式化和文本编辑.EXCEL 内置大量函数.EXCEL界面熟悉.4.可连接到多种数据库.用其他语言开发应用程序,一半的工作是编写一些基本功能的模块 ,包括文件的打开和保存, 打印,复制等.而用EXCEL作为开发平台,则由于EXCEL已经具备这些基本功能,你要做的只 是使用它.录制简单的宏在介绍学习VBA之前,应该花几分钟录制一个宏。新术语:宏,指一系列EXCEL能够执行的VBA语句。以下将要录制的宏

29、非常简单,只是改变单元格颜色。请完成如下步骤:1、打开新工作簿,确认其他工作簿已经关闭。2、选择A1单元格。调出常用工具栏。3、选择工具-宏-录制新宏。4、输入改变颜色”作为宏名替换默认宏名,单击确定 ,注意,此时状态栏中显示录制,特 别是“停止录制”工具栏也显示出来。替换默认宏名主要是便于分别这些宏。宏名最多可为255个字符,并且必须以字母开始。其中可用的字符包括:字母、数字和 下划线。宏名中不允许出现空格。通常用下划线代表空格。5、选择格式的单元格,选择图案选项中白向红色,单击确定。6、单击停止录制工具栏按钮,结束宏录制过程。X如果停止录制”工具栏开始并未出现,请选择 工具-宏-停止录制。

30、录制完一个宏后就可以执行它了。执行宏当执行一个宏时,EXCEL按照宏语句执行的情况就像 VBA代码在对EXCEL进彳T遥控 。但VBA的遥控”不仅能使操作变得简便,还能使你获得一些使用EXCEL标准命令所无法实现的功能。而且,一旦熟悉了 EXCEL的遥控,你都会奇怪自己在没有这些 遥控 ”的情况下,到底是怎么熬过来的。要执行刚才录制的宏,可以按以下步骤进行:1、选择任何一个单元格,比如A3。2、选择工具-宏-宏,显示宏对话框。3、选择改变颜色,选择执行,则A3单元格的颜色变为红色。试着选择其它单元格和 几个单元格组成的区域,然后再执行宏,以便加深印象。查看录制的代码到底是什么在控制 EXCEL

31、的运行呢?你可能有些疑惑.女?,让我们看看VBA的语句吧.1、选择工具-宏-宏,显示宏对话框。2、单击列表中的改变颜色,选择编辑按钮。此时,会打开 VBA的编辑器窗口( VBE)。关于该编辑器,以后再详细说明,先将注意力集中到显示的代码上。代码如下:(日期和姓名会有不同)Sub改变颜色() 改变颜色 Macroxw 记录的宏 2000-6-10With Selection.Interior .Colorindex = 3 .Pattern = xlSolid .PatternColorIndex = xIAutomatic End WithEnd Sub将来会十分熟悉这种代码,虽然现在它们看上

32、去像一种奇怪的外语。学习VBA或编程语言在某种程度上比较像在学习一种外语。Sub改变颜色():这是宏的名称。中间的以”开头的五行称为注释,它在录制宏时自动产生。以With开头到End With 结束的结构是 With结构语句,这段语句是宏的主要部分。注 意单词selection,它代表突出显示的区域(即:选定区域)With Selection.Interior 它读作选择区域白的内部.这整段语句设置该区域内部的一些属性。其中:.Colorindex = 3:将该内部设为红色。注意:有一小圆点,它的作用在于简化语句,小圆点代替出现在 With后的词,它是With结构的一部分。另外:红色被数字化为

33、3.(红色警戒是否可称作:3号警戒,嗯?)有兴趣的话,你将 3改为其他数字试试看。.Pattern = xlSolid :设置该区域的内部图案。由于是录制宏,所以,虽然你并未设置这一 项,宏仍然将其记录下来(因为在图案”选项中有此一项,只是你未曾设置而已)。 xlSolid 表 示纯色。.PatternColorIndex = xlAutomatic:表示内部图案底纹颜色为自动配色。End With:结束 With 语句。End Sub:整个宏的结束语编辑录制的代码在上一节,我们录制了一个宏并查看了代码,代码中有两句实际上并不起作用。哪两句? 现在,在宏中作一个修改,删除多余行,直到和下面代码

34、相同:Sub改变颜色()改变颜色 Macroxw 记录的宏 2000-6-10 With Selection.Interior .Colorindex = 3 End With End Sub完成后,在工作表中试验一下。你会发现结果和修改前的状况一样。在With 语句前加入一行:Range(A5).Select试着运彳T该宏,则无论开始选择哪个单元格,宏运行结果都是使 A5单元格变红.现在可以看到,编辑录制的宏同样非常简单。需要编辑宏是因为以下三个方面的原因。 一:在录制中出错而不得不修改。二:录制的宏中有多余的语句需要删除,提高宏的运行速度。三:希望增加宏的功能。比如:加入判断或循环等无法录

35、制的语句。录制宏的局限性希望自动化的许多EXCEL过程大多都可以用录制宏来完成.但是宏记录器存在以下局限性.通过宏记录器无法完成的工作有:1、录制的宏无判断或循环能力.2、人机交互能力差,即用户无法进行输入,计算机无法给出提示.3、无法显示 EXCEL对话框.4、无法显示自定义窗体.小结本章节中,你已经掌握了 VBA的一些基础知识,你会录制宏、编辑宏而且了解了录制宏的局 限性,并且已经为将来学习 VBA甚至VB等编程语言打下了基础.关键是你已经了解了一个 谜底,就是说,你了解了什么是编程.下面是些小练习。思考:1、VBA只能用于 EXCEL吗?2、VBA 是基于二哪种语言?3、说说EXCEL和

36、VBA的关系.4、为什么要用宏?Excel处理录制的宏为宏指定快捷键你也许希望为经常使用的宏指定快捷键。快捷键是指键的组合,当其按下时执行一条命令。例如:CTRL+C在许多程序中代表复制”命令。当给宏指定了快捷键后,就可以用快捷键来执行 宏,而不必通过工具菜单。注意:当包含宏的工作簿打开时间,为宏指定快捷键会覆盖EXCEL默认的快捷键。例如:把CTRL+C指定给某个宏,那么 CTRL+C就不再执行复制命令。用以下方法可以打印出 EXCEL的快捷键清单(用 A4纸打印共有24页之多):1、打开EXCEL帮助文件并选择目录选项。2、从使用快捷键”文件夹中选择,快捷键标题。3、右击该标题,从快捷菜单

37、中选择打印。4、选择打印所选标题和所有子主题 ,单击确定”。可以在创建宏时指定快捷键,也可以在创建后再指定。要在创建(录制)宏时指定快捷键,只须在录制宏时在输入宏名后,在快捷键”文本框中输入相应的键。 录制宏后指定快捷键也很简单,只需选择工具宏,显示宏对话框,选择要指定快捷键的宏,再单击 选项按 钮,通过选项”对话框进行设置。决定宏保存的位置宏可保存在三种可能的位置:1、当前工作簿。(只有该工作簿打开时,该宏才可用。)2、新工作簿。3、个人宏工作簿。个人宏工作簿个人宏工作簿,是为宏而设计的一种特殊的具有自动隐藏特性的工作簿。第一次将宏创建到个人宏工作簿时,会创建名为 “PERSONAL.XLS

38、”的新文件。如果该文件存在,则每当 EXCEL启动时会自动将此文件打开并隐藏在活动工作簿后面(在 窗口 ”菜单中选择”取消 隐藏”后,可以很方便地发现它的存在。)如果你要让某个宏在多个工作簿都能使用,那么就应当创建个人宏工作簿,并将宏保存于其中。 个人宏工作簿保存在XLSTART”文件夹中。具体路径为:C:WINDOWSProfilesApplication DataMicrosoftExcelXLSTART。可以以单词XLSTART查询。注意:如果存在个人宏工作簿,则每当 EXCEL启动时会自动将此文件打开并隐藏。因为 它存放在XLSTART文件夹内。保存宏到个人宏工作簿本练习,将保存一个简

39、单的宏到个人宏工作簿,该宏为文本加下划线并改为斜体,步骤如下:1、建立一个名为“HOUR2”的工作簿,选择工具-宏-录制新宏,显示录制新宏”对话 框.2、输入”格式化文本”作为宏名.3、从保存在下拉框中选择个人宏工作簿.4、单击确定按钮.现在进入录制模式.5、单击斜体”工具栏按钮.一段时间内,鼠标出现沙漏,特别是在第一次创建个人宏工作簿时 因为EXCEL在创建该工作簿.6、单击下划线按钮.7、停止录制.使用并编辑个人宏工作簿中的宏刚才已经保存了一个宏到个人宏工作簿,现在可以在任何工作簿中使用该宏.可按如下步骤操彳:1、关闭所有EXCEL工作簿.2、任意打开一个 EXCEL文件.(EXCEL自动

40、将个人宏工作簿同时打开并隐藏.)3、在A3中输入你的名字.4、选择工具-宏,显示宏对话框.现在可以在宏列表中看到 格式化文本”这个宏.5、选择”格式化文本宏,并执行.现在A3单元格中,你的名字变为斜体字还带有下划线.选择窗口 -取消隐藏,可以将PERSONAL.XLS 显示出来,其中没有任何文字,但通过VBA 编辑器可以在其中的模块中找到格式化文本”这个宏.在VBA编辑器中可以对该宏进行直接编辑或者删除.如果PERSONAL.XLS 中一个宏都没有,在启动 EXCEL时仍会打开 PERSONAL.XLS, 这也许是EXCEL存在的一个小毛病.将宏指定给按钮即使通过快捷键可以是宏的执行变快,但是

41、一旦宏的数量多了也难于记忆,而且,如果宏是由其他人来使用,难道你要他们也记住那么多的快捷键吗?作为EXCEL开发者,一个主要的目标是为自动化提供一个易于操作的界面.按钮”是最常见的界面组成元素之一.通过使用窗体”工具栏,可以为工作簿中的工作表添加按钮。在创 建完一个按钮后,可以为它指定宏,然后你的用户就可以通过单击按钮来执行宏。在本练习中,将创建一个按钮,并为它指定一个宏,然后用该按钮来执行宏。具体步骤如下:1、打开HOUR2工作簿。2、调出“窗体”工具栏。3、单击窗体”工具栏中的“按钮”控件,此时鼠标变成十字形状。4、在希望放置按钮的位置按下鼠标左键,拖动鼠标画出一个矩形,这个矩形代表了该按

42、钮 的大小。对大小满意后放开鼠标左键, 这样一个命令按钮就添加到了工作表中,同时EXCEL自动显示指定宏对话框。5、从指定宏”对话框中选择格式化文本,单击确定。这样,就把该宏指定给命令按钮。6、在按钮的标题按钮1前单击鼠标左键,按下 DELETE直到删除所有文本,输入格式 化”作为标题。7、单击按钮外的任意位置,现在该按钮的标题由默认的按钮1变为格式化而且被指定了一个宏。8、试着在某个单元格中输入文本,单击按钮运行该宏。当鼠标移动至该按钮时自动变成手的形状, 如果要改变其大小或标题, 只需用右键单击该按 钮就可以进行修改和设置。很明显,你再也不需记住宏的名字或快捷键了, 只需按一下按钮。将宏指

43、定给图片或其他对象要执行宏有多种方法可以选择,可以将宏指定给按钮等控件,还可以指定给图片、自定义工具栏、窗体甚至可以将宏指定给某个事件,比如单击工作表,双击工作表,激活工作表,打开工作簿等等,“事彳是一个重要的概念,除此而外 方法对象都是将来你会经常接触 到的。现在它们看来十分抽象,但是将来你会很熟悉这些词语。指定宏到图片十分简单,只需单击某个图片,单击快捷菜单中的指定宏”进行设置即可。如果不希望在工作表上添加控件或图片执行宏,还有一种方法可以选择:将宏指定给工具栏按钮,可按如下步骤进行:1、打开HOUR2”工作簿,选择工具-定义,显示自定义工具栏对话框。2、从类别”列表框中选择宏,从命令”列

44、表框中选择自定义按钮”。3、将自定义按钮拖动到工具栏。4、右键单击该按钮,选择 指定宏,显示指定宏对话框。5、选择”格式化文本”并确定。6、单击关闭按钮,关闭”自定义工具栏”对话框。7、试着在某个单元格中输入文本,单击工具栏按钮运行该宏。小结小结与思考:宏存放于三个可能的位置。个人宏工作簿存放的位置和特性。执行宏的方式。指定宏是为某个对象的事件指定一个程序,一旦这个对象以该事件激活,系统将运行指定的程序。常用的对象有:workbook,worksheet,range,cells, 图表,图片,数据透视表,控件,窗体,工具栏.每一个对象都有其可以响应的特殊事件(也有一些通用事件如单击或双击等)。

45、如有兴趣,可以通过 EXCEL帮助文件查询这几个词条。在 EXCEL中看到的几乎都是属于某个 对象,而在EXCEL中所做的许多工作,如移动一下鼠标等等,都可能触发了一个事件。Excel中控件的常规使用方法EXCEL开发过程简介需要对以下问题有个大致的概念.1、谁使用-这决定了程序的操作难度及界面感观.2、数据来源和保存在哪里-这决定了程序的结构.3、如何操作-这将决定程序的界面和细节 .4、数据处理的结果-最终决定程序的价值.认识不同的控件开始时请关闭所有工作簿,打开一个新工作簿并另存为 HOUR3”.在工具栏上单击鼠标右键从快捷菜单中选择窗体,显示窗体”工具栏.其中有16个控件,只有9个可放

46、到工作表内。1、标签:它用于表现静态文本。2、分组框:它用于将其他控件进行组合。3、按钮:用于执行宏命令。4、复选框:它是一个选择控件,通过单击可以选择和取消选择,可以多项选择。5、选项按钮:通常几个选项按钮组合在一起使用,在一组中只能选择一个选项按钮。6、列表框:用于显示多个选项并从中选择。只能单选。7、组合框:用于显示多个选项并从中选择。可以选择其中的项目或者输入一个其它值。8、滚动条:不是你常见的来给很长的窗体添加滚动能力的控件,而是一种选择机制。例如调节过渡色的滚动条控件。包括水平滚动条和垂直滚动条。9、微调控件:也是一种数值选择机制,通过单击控件的箭头来选择数值。例如改变 Windo

47、ws日期或时间就会使用到微调控件。向工作表添加控件用EXCEL设计界面十分简单,要将控件添加到工作表上,可以按以下步骤操作:1、创建新工作簿并另存为 HOUR3,显示窗体”工具栏.2、选择标签控件.3、将鼠标定位到 E1,此时鼠标变成小十字.4、按下左键,拖动大约四个单元格长度,放开鼠标左键.如果希望控件大小易于控制 ,可在创 建该控件时按下ALT拖动.5、在标签1上单击右键,选择编辑文字,现在可以输入文字.完成后,单击任何单元格退出 文字编辑.6、通过以上步骤可以添加其它控件到工作表中,不再赘述.设置控件的特性设置控件的特性,可以按以下步骤操作:1、选中先前创建的复选框控件 ,如果没有马上创

48、建一个.2、右击该控件,选择控制”选项卡.3、在单元格链接中输入A1并确定.4、单击任意单元格,退出设置.5、用鼠标左键单击复选框,A1出现TRUE,这意味着该控件被选中.再次单击该控件,A1出 现 FALSE.6、选择刚才创建的滚动条控件 .并调出设置控件格式”对话框.7、在单元格链接中输入A3并确定.8、在滚动条外任意单元格单击鼠标左键,使滚动条不被选择.9、用鼠标单击滚动条上的箭头 ,则A1的数值增加1,继续单击则A1的数值继续增加.10、保存并关闭该工作簿.给控件命名当创建一个控件时 EXCEL会自动给它指定一个名字,但不便于理解和记忆,为控件取名的 方法基本和给单元格或区域取名的方法

49、相同 .选中某个控件,再在位于公式栏上的“名字”编 辑框输入控件名字.这样就给控件更改了名字.使用用户窗体如果希望创建专业级的应用程序 ,并且方便用户输入数据,那么应该使用用户窗体.用户窗体 可以作为程序的对话框和窗口 .向用户窗体添加控件基本类似于向工作表添加控件,然而第一步要创建一个用户窗体.这可以通过 VBA编辑器实现.具体按以下步骤操作:1、打开HOUR3工作簿,选择工具-宏-VBA 编辑器,打开VBA编辑器.2、在VBA编辑器中选择工具栏上的插入用户窗体”按钮或者选择插入”菜单,从下拉菜单 中选择“用户窗体”现在,VBA编辑器中出现一个名为USERFORM1的窗体,控件工具箱同时出现

50、,在其中 有许多已经熟悉的控件,另外还有一些新的控件.这些新的控件是:(1)切换按钮:该控件如果被选中,那么会保持被按下的状态.如果再次单击它就恢复为没有 按下的状态.EXCEL工具栏中有几个这样的按钮,例如:全屏显示,加粗,下划线以及窗体”工具栏中的切换网格”等.(2)选项卡条(TabStrip): 它是包含多个选项卡的控件 .通常用来对相关的信息进行组织或 分类.例如:你也许希望用选项卡条来显示各个地区的销售信息,可以给每个地区设置一个选项卡.在默认时,选项卡包含两页,分别叫做TAB1和TAB2,可以添加更多的选项卡.(3)多页:外观类似选项卡条,是包含一页或多页的控件.选项卡条给人相似的

51、外观,而多页 控件的各页包含各自不同的控件,有各自不同的布局.多页的例子很多,例如:设置控件格式对话中g和工具菜单中的选项对话框.以及“格式菜单中的单元格.对话框.(4)图像控件:它允许向窗体上放置图片,图片格式须:*.bmp,*.cur,*.gif,*.ico,*.jpg,*.wmf.(5) RefEdit:这是工具箱中默认情况下的最后一个控件。它外观象文本框,通过这个控件 可以将用户窗体折叠起来,以便选择单元格区域。 还记得在使用fx粘贴函数”时的情况吗?通过实践,我们会逐渐掌握每个控件的特性,这的确需要花时间,但不必死记硬背。在对用户窗体设计得满意时,可以对其进行预览,方法是在VBA编辑

52、器中选择该窗体,单击运行”菜单中的三角符号运行子过程/用户窗体,三角符号在VBA工具栏上也可能看 得到,旁边是一个垂直的等于符号,最右边是个小正方形符号,它们类似于录音机上的按钮。 运行窗体的另一个方法是按F5键。小结:学习完本学时后,我们具备了用于程序界面设计的基本知识。我们对控件不在感到陌生,也明白如何向工作表和窗体添加控件,但控件的内容很多,需要边用边理解.此后,我们将从界 面转移到学习编写代码,并最终将二者融合。疑难解答问题1.怎样决定控件的位置?如何选择添加到工作表还是添加到用户窗体?解答:这完全取决于个人的爱好和应用程序的用户.如果用户对 EXCEL非常熟悉,那么他们也许更希望以工

53、作表的方式操作.在这种情况下不妨直接在工作表上创建控件;如果你的用户对EXCEL不熟悉或者你需要给用户一个专业的界面感觉,那么应该使用用户窗体.问题2.什么情况下该用选项卡条而不是多页控件?解答:如果每一页具有相同布局,则应选择选项卡条,否则应该选择多页.本节作业.思考:列举两种可以让用户进行多选一的控件。如何将控件与单元格链接起来。.判断:只有在VBA编辑器中才能添加用户窗体。在VBA编辑器中看到的窗体网格线在运行时会自动显示。.填空:()是显示静态文本的控件。VBA的变量含义和变量作用代码存在的位置:模块VBA代码必须存放在某个位置,这个地方就是模块。有两种基本类型的模块:标准模块和 类模

54、块。模块中的每个过程或者是函数过程,或者是子程序概念.本课的最后部分将讨论函数过程和子程序的区别。新术语:模块:它是作为一个单元保存在一起的VBA定义和过程的集合。类模块:VBA允许你创建自己的对象,对象的定义包含在类模块中。你的大部分工作集中在标准模块中(简称为模块)当录制宏时如果不存在模块,EXCEL自动创建一个。EXCEL和VBA不关心代码存放在哪一个模块中,只要代码存在于打开的工 作簿中即可。对模块的概览过程被定义为 VBA代码的一个单元,过程中包括一系列用于执行某个任务或是进行某种 计算的语句。工作簿的每个过程都有唯一的名字加以区分。有两种不同的过程: 子程序和函数过程。 子程序只执

55、行一个或多个操作,而不返回数值。当 录制完宏查看代码时,所看到的就是子程序。宏只能录制子程序,而不能录制函数过程。一个子程序的例子如下所示:例:Sub cmdSmallFont_Click()With Selection.Font.Name=Arial.FontStyle=Regular.Size=16End WithEnd sub上面列出的过程实际上是一个事件过程。通过它的名字,就可以知道这是一个事件过程。这个过程的名字是由一个对象的名字CmdSmallFont和一个事件的名字 Click组成的,两者之间用下划线分开。 如果还不明白,可以告诉你,CmdSmallFont 是一个命令按钮的名字

56、。 也就是说,当单击这个命令按钮时,就会运行这个事件过程。函数过程通常情况下称为函数, 要返回一个数值。这个数值通常是计算的结果或是测试的结 果,例如False或True.正如前面所说,可以用 VBA创建自定义函数。实际上可以在工作 表上使用你创建的函数。下面是一个计算价格的10%为运费的简单例子。简单的用户定义函数示例:Public Function Shipping(Price) Shipping = Price * 0.1End Function请注意,这个函数使用一个参数( Price).子程序和函数都可以使用参数。不论 Price的值 是多少,它都将决定运费额。Price可以是数字和

57、单元格引用。函数返回计算出来的运费,这个函数可以用在单元格中。A BPrice 100Shipping =shipping(B1)创建过程创建第一个过程需要两个基本步骤。首先,需要向工作簿中添加一个模块。接着需要向模块中添加一个工程。对于创建的每一个应用程序,只需添加一次模块。可以使用多个模块,但 这是不必要的。某些开发者喜欢使用多个模块,以便根据他们的目的或者窗体对过程进行组织。在本练习中,创建的过程只显示一个消息框。在本练习中使用 Msgbox是为了提供一个可见的例子,虽然我们还没有介绍过Msgbox语句,但是在本例中将使用它。要创建该过程,请按如下步骤进行:1、打开一个新工作簿。2、选择

58、工具-宏-Visual Basic 编辑器,打开VBA编辑器窗口。3、在VBA 编辑器的左面,可以看到 工程资源管理器窗口。在工程资源管理器窗口的 Thisworkbook 上单击鼠标右键,选择插入-模块,这样就将一个模块添加到应用程 序中了。(如果你没有看见工程资源管理器”窗口,可以按 Ctrl+R)4、选择插入过程,显示添加过程对话框。5、输入”第一个工程”作为过程名字。在“类型”分组框中,确认选择了 子程序。单击”确定 按钮。这样一个新的过程就添加到模块中了。可以在模块中看到以PublicSub 第一个过程()开始,以 End Sub结束的语句结构。6、在过程中插入光标,输入以下语句并回

59、车:Msgbox 这是我的第一个过程在输入Msgbox后,会自动弹出一个消息框告诉你有关这条命令的信息,称之为自动列表技术。输入完成的过程如下所示:Public Sub第一个过程()Msgbox 这是我的第一个过程VBA对子程序和函数有如下的命名规则:*名字中可以包含字母数字和下划线。*名字中不能包含空格句号惊叹号,也不能包含字符 & $ #.*名字最多可以包含255个字符。运行宏创建这个过程后,可以运行一下。运行一个过程有几种方法:可以直接使用运行菜单,运行子程序/用户窗体工具栏按钮或按下 F5键。要运行一个过程,可以按照如下步骤:1、单击运行子程序/用户窗体”工具栏按钮,过程执行并显示一个

60、消息框。2、单击消息框之中的“确定按钮,关闭该消息框。保存对模块所做的改变要保存新过程,需要保存过程所驻留的工作簿 .可以用VBA编辑器保存工作簿.具体步骤如 下:1、选择文件-保存工作簿.因为本工作簿还没有保存过,所以要给它命名. TOC o 1-5 h z 2、输入HOUR4”作为文件名并按回车键,则工作簿和模块与过程都保存下来了.变量变量是用于临时保存数值的地方.每次应用程序运行时,变量可能包含不同的数值,而在程序 运行时,变量的数值可以改变.为了说明为什么需要变量,可以按照如下步骤创建一个简单的过程:1、创建一个名为你叫什么名字”的过程.2、在过程中输入如下代码:Inputbox 输入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论