版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 vba (visual basic for vba (visual basic for application) application) 是是microsoftmicrosoftofficeoffice系列软件的内置编程语言,其系列软件的内置编程语言,其语法结构与语法结构与visualvisualbasicbasic编程语言互相兼容,采用的是编程语言互相兼容,采用的是面向对象的编程机制面向对象的编程机制和可视化的编程环境。和可视化的编程环境。n1.1.集合和对象集合和对象n vbavba中的应用程序是由许多对象组中的应用程序是由许多对象组成的,如表、窗体、查询等。对象是成的,如表、窗体、查
2、询等。对象是帮助构造应用程序的元素,以特定的帮助构造应用程序的元素,以特定的方式组织这些对象,就形成了应用程方式组织这些对象,就形成了应用程序序 。2.对象的属性、事件和方法 属性 属性描述了对象的自身性 质 其格式为: 对象名.属性=属性值n事件事件n 事件是指可以发生在一个对象事件是指可以发生在一个对象上且能够被该对象所识别的动作。上且能够被该对象所识别的动作。 n 如:单击某个命令按钮就产生如:单击某个命令按钮就产生该按钮的该按钮的“单击单击”事件当某个对象发事件当某个对象发生某一事件后,就会驱动系统去执行生某一事件后,就会驱动系统去执行预先编好的、与这一事件相对应的一预先编好的、与这一
3、事件相对应的一段程序。段程序。 方法 方法是系 统事先设计好的,可以完成一定操作的特殊过程,是附属于对象的行为和动作。在需要使用的时候可以直接调用。其格式为:对象名.方法名对 象 名含 义application代表整个excel应用程序window代表窗口worksheet代表一个工作表sheets指定的或活动工作薄中所有工作表的集合shaperange代表形状区域,它是文档中的一组形状pivottable代表工作表上的 数据透视图workbook代表一个excel工作薄shape代表绘图层中的对象,例如自选图形range代表某一单元格、某一行、某一列、某一区域name代表单元格区域的自定义名
4、chart代表工作薄中的图表filedialog提示文件对话框,功能和应用程序中标准“打开”和“保存”对话框类似commandbarpopup代表命令栏上的一个弹出式控件commandbar代表容器应用程序中的一个命令栏nvba vba 中的程序与函数共有种:中的程序与函数共有种:n 一般程序(一般程序(subsub)、事件程序)、事件程序(eventevent)、)、n 属性程序(属性程序(propertyproperty)和函数)和函数(functionfunction)nvbavba程序窗口共种:程序窗口共种:n 代码窗口、立即窗口、本地窗口、代码窗口、立即窗口、本地窗口、n 监视窗口、
5、工程资源管理器和属性监视窗口、工程资源管理器和属性窗口窗口n在在vbevbe环境中编写环境中编写vbavba代码代码工程窗口选择对象属性窗口选择对象的属性代码窗口选择事件microsoftexcel插入模块运行子过程/用户窗体设计模式中断重新设计 工程资源管理器 对象浏览器属性窗口 新建一个窗体并添加两个命令按钮,运行窗体后,单击第一个按钮,显示一个消息框;单击第二个按钮,退出当前窗体 通过此例,体会可视化编程、面向对象、事件过通过此例,体会可视化编程、面向对象、事件过程、应用方法等基本概念。程、应用方法等基本概念。nvbavba使用常量、变量来存储值。用来保使用常量、变量来存储值。用来保存在
6、程序运行存在程序运行期间数据。期间数据。n常量:在程序运行中其存储的值不会改常量:在程序运行中其存储的值不会改变。变。n变量:在程序运行中其值可以改变。变量:在程序运行中其值可以改变。n在程序运行过程中,其值在程序运行过程中,其值不会被改变不会被改变的量称为常量。在的量称为常量。在nvbavba中有三类常量:中有三类常量:n1.1.直接常量直接常量n 如:如:1010,20%20%,123.0123.0,“abab”,“vbavba程序设计程序设计”等等n2.2.符号常量符号常量n3.3.系统常量系统常量n 指指vbavba系统预先定义好的,用户可系统预先定义好的,用户可以直接引用的量。以直接
7、引用的量。n 如:如:acformacform,acqueryacquery,vbokvbok,vbred vbred n 在程序中,某个常量多次被使在程序中,某个常量多次被使用,则可以使用一个用,则可以使用一个n符号来代替该常量,这样不仅在书符号来代替该常量,这样不仅在书写上方便,而且有效写上方便,而且有效n地改进了程序的可读性和可维护性。地改进了程序的可读性和可维护性。 n vbavba中使用关键字中使用关键字constconst 声明声明符号常量。符号常量。n其格式如下:其格式如下:n const const 常量名常量名 类型符号类型符号=常常数表达式数表达式n如:如:n const
8、const pipi#= 3.1415926#= 3.1415926n 变量是内存中的临时单元,存放在程变量是内存中的临时单元,存放在程序执行序执行过程中产过程中产n生的中间结果和最后输出结果。生的中间结果和最后输出结果。n 在程序中使用变量,就要给变量定义在程序中使用变量,就要给变量定义名称及类型,即名称及类型,即n对变量进行声明。对变量进行声明。n1.1.变量名必须以变量名必须以字母或汉字字母或汉字开头,后可开头,后可跟跟字母、汉字、字母、汉字、 n 数字或下划线数字或下划线组成(不能含有小数点组成(不能含有小数点和空格),长度和空格),长度 n 不超过不超过255255个字符的字符串;个
9、字符的字符串;n2.2.不能使用不能使用vbavba中的中的关键字关键字;n3.vba3.vba中中不区分不区分变量名的大小写;变量名的大小写;n4.4.变量名的最后一个字符可以是变量名的最后一个字符可以是% %、& &、!、!、# #、$ $等表示等表示n 数据类型的声明符。数据类型的声明符。n说明:常量名的命名规则与变量名的命说明:常量名的命名规则与变量名的命名规则相同名规则相同n在在vbavba中,数据类型用来决定变量可以中,数据类型用来决定变量可以保存何种数据。保存何种数据。nvbavba支持多种数据类型,为用户编程提支持多种数据类型,为用户编程提供了方便。供了方便。n用用dimdim
10、或或staticstatic语句显式声明局部变语句显式声明局部变量量n 格式:格式:dim dim 变量名变量名 as as 类型类型 n 或或 dim dim 变量名类型符变量名类型符n 语句中的语句中的“as as 类型类型”子句是可子句是可选的。如果使用该子句,就可以定选的。如果使用该子句,就可以定义变量的数据类型。未使用,默认义变量的数据类型。未使用,默认变量的类型为变体型(变量的类型为变体型(variantvariant)。)。n例如:例如:dim i as integer, sdim i as integer, sn 表示声明了一个名为表示声明了一个名为i i的整型的整型变量和一个
11、名为变量和一个名为s s的变体型变量。的变体型变量。ndim dim 声明声明:随过程的调用而分配存贮单:随过程的调用而分配存贮单元,每次调用都元,每次调用都n对变量初始化;过程体结束,变量的内对变量初始化;过程体结束,变量的内容自动消失,存容自动消失,存n储单元释放。储单元释放。nstatic static 声明声明:static static 声明的变量,也声明的变量,也称为静态变量。称为静态变量。n静态变量在程序运行过程中一直保留其静态变量在程序运行过程中一直保留其值,即每次调用值,即每次调用n过程,变量保持原来的值。过程,变量保持原来的值。函数函数返回类型返回类型cbytebytecb
12、oolbooleancintintegerclnglong(长整型)csngsingle(单精度浮点型)cdbldouble(双精度浮点型)ccurcurrency(变比整数)cdecdecimalcdatedatecstrstringcvarvariantnsub abc()sub abc()n dim i as integer dim i as integern dim str as string dim str as stringn i = 10 i = 10n msgbox typename(i) msgbox typename(i)n str = cstr(i) str = cstr
13、(i)n msgbox typename(str) msgbox typename(str)nend subend subn 未进行上述的声明而直接使用变量,未进行上述的声明而直接使用变量,称变量的称变量的隐式隐式n声明声明采用隐式声明的变量都是变体型采用隐式声明的变量都是变体型(variantvariant)n注意注意: :n vbavba中允许不事先声明而直接使用变中允许不事先声明而直接使用变量,可以通过语量,可以通过语n句句option explicitoption explicit,来要求所使用的,来要求所使用的变量必须事先声变量必须事先声n明,否则明,否则vbavba会发出警告信息。
14、会发出警告信息。nprivate sub form_click()private sub form_click()n sum = 0 sum = 0n a = 10 a = 10n b = 20 b = 20n sum = a + b sum = a + bn debug.print sum= & debug.print sum= & sumsumnend sub end sub 良好的编程习惯应该是“先声明变量,后使用变量”,这样做可以提高程序的效率,同时也使程序易于调试。vba中可以强制显式声明,可以在窗体模块、标准模块和类模块的通用声明段中加入语句:option explicitn声明而
15、未赋值的变量的值为:声明而未赋值的变量的值为:n数值型变量初始化为数值型变量初始化为0 0;n字符型变量为零长度字符串;字符型变量为零长度字符串;n变体型变量初始化为变体型变量初始化为 emptyempty;n 连接运算符:连接运算符: 、+ +(字符串连接)(字符串连接)例如:例如:123 + 456 123 + 456 结果结果 123456 123456 n 123 & 456 123 & 456 结果结果 123456123456n 使用上使用上 与与+ +的区别:的区别:n 例如:例如: abcdefabcdef & 12345 & 12345 结果为结果为 abcdef12345a
16、bcdef12345n 123 & 456 123 & 456 结果为结果为 123456 123456 n abcdefabcdef + 12345 + 12345 结果为结果为 出错出错n 123 + 456 123 + 456 结果为结果为 579579n将两个操作数进行大小比较,结果为逻将两个操作数进行大小比较,结果为逻辑值。辑值。n注意:注意:字符串比较字符串比较, ,则按字符的则按字符的asciiascii码码值从左到右一一值从左到右一一 n 比较,直到出现不同的字符为止。比较,直到出现不同的字符为止。n将操作数进行逻辑运算,结果是逻辑值将操作数进行逻辑运算,结果是逻辑值n例例1
17、1:用人单位招聘秘书:年龄小于:用人单位招聘秘书:年龄小于4040岁岁的女性,学历专科或本科的女性,学历专科或本科 正确的vba表达式: 3=x and x =7 错误的vba表达式: 3=x=7 或 3=x or x=7 年龄40,性别=“女”,(学历=“专科”,学历=“本科”) and and or例2:算术表达式:73 x作作 用用关关 键键 字字option compare设置字符串比较规则strcomp比较两个字符串strconv字符串类型转换lcase、ucase大小写变换space、string重复字符串len计算字符串长度format设置字符格式lset、rset重排字符串in
18、str、left、ltrim、mid、rightrtrim、trim处理字符串split、join拆分与连接字符串noption compare binary|text|databaseoption compare binary|text|databasenoption compare binary:option compare binary:是根据字符的内部二进制表示导出的一种排序是根据字符的内部二进制表示导出的一种排序na-za-za-za-z汉字汉字noption compare text:option compare text:是根据系统区域确定的一种不区分大小写的一种排序是根据系统区
19、域确定的一种不区分大小写的一种排序n(a=aa=a)(b=b)(z=z)(b=b) 连接运算符连接运算符 关系关系运算符运算符 逻辑运算逻辑运算n 函数实际上是系统事先定义好的内部函数实际上是系统事先定义好的内部程序,用来完成程序,用来完成n特定的功能。特定的功能。vbavba提供了大量的内部函提供了大量的内部函数,供用户在编程数,供用户在编程n时使用。时使用。n 函数的调用形式为:函数的调用形式为:n 函数名函数名( (参数表参数表) )n常用内部函数常用内部函数n常用内部函数,在立即窗口练习,体会常用内部函数,在立即窗口练习,体会函数的功能。函数的功能。 请请n参照:参照:vbavba函数
20、参考手册函数参考手册 n 模块模块是自定义的过程、函数保存是自定义的过程、函数保存的地方,也是录制的宏保存的场所。有的地方,也是录制的宏保存的场所。有两种基本类型的模块:类模块和标准模两种基本类型的模块:类模块和标准模块。模块可以通过右键单击工程资源管块。模块可以通过右键单击工程资源管理器的工程名,选择理器的工程名,选择“插入模块插入模块”来来新建。新建的模块缺省的名称为新建。新建的模块缺省的名称为“模块模块1 1” ”,“模块模块2 2” ”, ,建议在属性窗口内更改建议在属性窗口内更改为有意义的名称。为有意义的名称。模块任务: (1)保存过程和函数; (2)定义模块内的私有变量或整个工程的
21、公有变量。n过程是最基本的运行单位过程是最基本的运行单位n语法语法nprivate | public | friend private | public | friend static sub name (arglist) static sub name (arglist) statementsstatementsexit subexit substatementsstatementsnend subend subn在以上程序中,在以上程序中,sub sub 代表过程种类,代表过程种类,表示运行指定的操表示运行指定的操n作,但不返回运行结果;作,但不返回运行结果;public可选的。表示所有模
22、块的所有其它过程都可访问这个 sub 过程。 如果在包含 option private 的模块中使用,则这个过程在该工程外是不可使用的。private可选的。表示只有在包含其声明的模块中的其它过程可以访问该 sub 过程。friend可选的。只能在类模块中使用。表示该 sub 过程在整个工程中都是可见的,但对对象实例的控制者是不可见的。static可选的。表示在调用之间保留 sub 过程的局部变量的值。static 属性对在 sub 外声明的变量不会产生影响,即使过程中也使用了这些变量。name必需的。sub 的名称;遵循标准的变量命名约定。arglist可选的。代表在调用时要传递给 sub
23、过程的参数的变量列表。多个变量则用逗号隔开。statements可选的。sub 过程中所执行的任何语句组。n函数是具有返回值的过程函数是具有返回值的过程n语法语法n public | private | public | private | friend friend static function name static function name (arglist) as type(arglist) as typen statements statementsn name = expression name = expressionn exit function exit function
24、n statements statementsn name = expression name = expressionnend functionend function public可选的。表示所有模块的所有其它过程都可访问这个 function 过程。如果是在包含 option private 的模块中使用,则这个过程在该工程外是不可使用。private可选的。表示只有包含其声明的模块的其它过程可以访问该 function 过程。friend可选的。只能在类模块中使用。表示该 function 过程在整个工程中都是可见的,但对于对象实例的控制者是不可见的。static可选的。表示在调用之间
25、将保留 function 过程的局部变量值。static 属性对在该 function 外声明的变量不会产生影响,即使过程中也使用了这些变量。name必需的。function 的名称;遵循标准的变量命名约定。arglist可选的。代表在调用时要传递给 function 过程的参数变量列表。多个变量应用逗号隔开。type可选的。function 过程的返回值的数据类型,可以是 byte、 boolean 、integer、long、currency、single、double、decimal(目前尚不支持)、date、string(除定长)、object、variant或任何用户定义类型。sta
26、tements可选的。在 function 过程中执行的任何语句组。expression可选的。function 的返回值。v调用一个过程(调用一个过程(subsub)时,必须键入过)时,必须键入过程名称以及任何需要的参数值。程名称以及任何需要的参数值。callcall语语句可有可无,如果使用它,则参数必须句可有可无,如果使用它,则参数必须以括号括起来。以括号括起来。 v调用函数(调用函数(functionfunction)时,为了使用函时,为了使用函数的返回值,必须指定函数给变量,并数的返回值,必须指定函数给变量,并且用且用括号将参数封闭起来。括号将参数封闭起来。nvbavba代码不区分字母
27、的大小写代码不区分字母的大小写n 系统保留字自动转换每个单词的首字系统保留字自动转换每个单词的首字母大写;母大写;n语句书写自由语句书写自由n 一行可书写几句语句,之间用冒号一行可书写几句语句,之间用冒号(:)(:)分隔;分隔;n 一句语句可分若干行书写,用续行一句语句可分若干行书写,用续行符(符(_ _)将语句分开。)将语句分开。n赋值语句:给变量、常量或对象的属赋值语句:给变量、常量或对象的属性指定一个值或表达式。性指定一个值或表达式。n格式:格式:变量名表达式变量名表达式n作用:将表达式的值赋值给变量名。作用:将表达式的值赋值给变量名。 n 一般用于给变量赋值或对控件一般用于给变量赋值或
28、对控件设定属性值。设定属性值。n例如:例如:s=10 s=10 n text1.text text1.text 欢迎使用欢迎使用vbavban注意:注意:虽然赋值号与关系运算符等于虽然赋值号与关系运算符等于号都用号都用“=”=”表示,表示,vbavba会会 n 根据所处的位置自动判断是何根据所处的位置自动判断是何种意义的符号种意义的符号n声明语句:命名和定义常量、变量、数声明语句:命名和定义常量、变量、数组以及过程。组以及过程。n注释语句注释语句n 在程序中的适当位置加上注释语句在程序中的适当位置加上注释语句有利于程序的维护和阅读。有利于程序的维护和阅读。n 格式:格式:rem rem 注释内
29、容注释内容n 或用单引号或用单引号 注释内容注释内容语句组2语句组1tf语句组2条件语句组1ft条件语句组tf条件语句组n单行单行 if if 语句语句n格式:格式:if if 表达式表达式 then then 语句语句1 else 1 else 语句语句22n功能:功能:if if 测试指定的条件,如果条件测试指定的条件,如果条件表达式为真表达式为真n (truetrue),则执行),则执行then then 后面的语后面的语句句1 1,否则,否则n 执行语句执行语句2 2(若(若elseelse子句未省子句未省略)。略)。tf语句2条件语句1tf条件语句1private sub p1( )
30、 dim x as integer, y as integer x = inputbox(“请输入x值”) if x = 0 then y = 2 * x + 1 else y = 1 msgbox y: & yend subn 语句组可以由一条或多条语句组语句组可以由一条或多条语句组成,语句组不能与成,语句组不能与nthenthen书写在同一行,否则书写在同一行,否则vbavba认为认为是一个单行是一个单行ifif语句,会语句,会n导致导致elseelse没有匹配的没有匹配的ifif。n 语句语句“end ifend if”是多行是多行ifif语句的语句的结束标志。在多行结束标志。在多行if
31、if语句语句n中,即使省略中,即使省略elseelse子句,也要写该子句,也要写该结束标志。省略结束标志。省略elseelsen子句时的多行子句时的多行ifif语句形式为:语句形式为:n if if 表达式表达式 then then n 语句组语句组n end ifend ifyxxxx xxxsincos231030 n n n n t x yt z为最 小数t 使得x yfff x yzx y x 与y交换y z y 与z交换x y x 与y交换 if x= 90 if mark = 90 thenthen print print 优优 elseif mark = 80 elseif ma
32、rk = 80 thenthen print print 良良 elseif mark = 70 elseif mark = 70 thenthen print print 中中 elseif mark = 60 elseif mark = 60 thenthen print print 及格及格 elseelse print print 不及格不及格 end ifend if方法二方法二if mark 60 thenif mark 60 then print print 不及格不及格 elseif mark 70 elseif mark 70 thenthen print print 及格及
33、格 elseif mark 80 elseif mark 80 thenthen print print 中中 elseif mark 90 elseif mark = 60 if mark = 60 thenthen print print 及格及格 elseif mark = 70 elseif mark = 70 thenthen print print 中中 elseif mark = 80 elseif mark = 80 thenthen print print 良良 elseif mark = 90 elseif mark = 90 thenthen print print 优优
34、 elseelse print print 不及格不及格 end ifend if:与同类型的下面四种形式之一: 表达式 例: a 一组枚举表达式(用逗号分隔) 2,4,6,8 表达式1 to 表达式2 60 to 100 is 关系运算符表达式 is 60n语句格式语句格式:nselect case select case 变量或表达式变量或表达式n case case 表达式列表表达式列表1 1n 语句块语句块1 1n case case 表达式列表表达式列表2 2n 语句块语句块2 2nn case else case elsen 语句块语句块n+1n+1nend selectend select . n 结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度书画展览服务合同3篇
- 土壤检测公司转让合同
- 六安职业技术学院《C++语言程序设计》2023-2024学年第一学期期末试卷
- 2024版广告宣传代理委托合同范本2篇
- 2024年中国领夹式话筒市场调查研究报告
- Unit 1 Friendship Experiencing and understanding language Reading教学实录-2024-2025学年沪教版(2024)英语七年级上册
- 临沂职业学院《过程建模与系统辨识》2023-2024学年第一学期期末试卷
- 4 地球-我们的家园-《环境问题敲响了警钟》 (教学实录)统编版道德与法治六年级下册
- 2024年度家居设计装修合作合同6篇
- 旅游运输大巴车出租协议书
- 出租房屋安全检查制度模版(2篇)
- 《森林防火安全教育》主题班会 课件
- 漏洞修复策略优化
- 乘风化麟 蛇我其谁 2025XX集团年终总结暨颁奖盛典
- 车间生产现场5S管理基础知识培训课件
- 2024年同等学力申硕英语考试真题
- 文书模板-《公司与村集体合作种植协议书》
- 码头安全生产知识培训
- 《死亡诗社》电影赏析
- JJF(京) 105-2023 网络时间同步服务器校准规范
- 老年科护理查房护理病历临床病案
评论
0/150
提交评论