学习VBA基础知识.pptx
《学习VBA基础知识.pptx》由会员分享,可在线阅读,更多相关《学习VBA基础知识.pptx(108页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数组VBA程序流程控制VBA常用语句VBA编程基础VBA概念VBA概念第1页/共108页1-1 VBA1-1 VBA简介简介 VBA(Visual Basic for Application)是MicrosoftOffice系列软件的内置编程语言,其语法结构与VisualBasic编程语言互相兼容,采用的是面向对象的编程机制和可视化的编程环境。第2页/共108页1-2 1-2 面向对象程序设计的基本概念面向对象程序设计的基本概念1.集合和对象 VBA中的应用程序是由许多对象组成的,如表、窗体、查询等。对象是帮助构造应用程序的元素,以特定的方式组织这些对象,就形成了应用程序。2.对象的属性、事件
2、和方法 属性 属性描述了对象的自身性 质 其格式为:对象名.属性=属性值第3页/共108页1-2 1-2 面向对象程序设计的基本概念面向对象程序设计的基本概念事件 事件是指可以发生在一个对象上且能够被该对象所识别的动作。如:单击某个命令按钮就产生该按钮的“单击”事件当某个对象发生某一事件后,就会驱动系统去执行预先编好的、与这一事件相对应的一段程序。方法 方法是系 统事先设计好的,可以完成一定操作的特殊过程,是附属于对象的行为和动作。在需要使用的时候可以直接调用。其格式为:对象名.方法名第4页/共108页常见对象及其含义常见对象及其含义对 象 名含 义Application代表整个Excel应用
3、程序Window代表窗口Worksheet代表一个工作表Sheets指定的或活动工作薄中所有工作表的集合ShapeRange代表形状区域,它是文档中的一组形状PivotTable代表工作表上的 数据透视图Workbook代表一个Excel工作薄Shape代表绘图层中的对象,例如自选图形Range代表某一单元格、某一行、某一列、某一区域Name代表单元格区域的自定义名Chart代表工作薄中的图表FileDialog提示文件对话框,功能和应用程序中标准“打开”和“保存”对话框类似CommandBarPopup代表命令栏上的一个弹出式控件CommandBar代表容器应用程序中的一个命令栏第5页/共1
4、08页1-3 VBA1-3 VBA编程环境编程环境VBA 中的程序与函数共有种:一般程序(Sub)、事件程序(Event)、属性程序(Property)和函数(Function)VBA程序窗口共种:代码窗口、立即窗口、本地窗口、监视窗口、工程资源管理器和属性窗口在VBE环境中编写VBA代码第6页/共108页工程窗口选择对象属性窗口选择对象的属性代码窗口选择事件VBE编程环境第7页/共108页标准工具条视图视图 Microsoft ExcelMicrosoft Excel按钮:切换按钮:切换ExcelExcel窗口窗口插入按钮:插入模块或过程插入按钮:插入模块或过程运行子过程运行子过程/用户窗体
5、按钮:运行模块中的程序用户窗体按钮:运行模块中的程序中断按钮:中断正在运行的程序中断按钮:中断正在运行的程序重新设置按钮:结束正在运行的程序重新设置按钮:结束正在运行的程序设置模式按钮:在设计模式和非设计模式之间切换设置模式按钮:在设计模式和非设计模式之间切换工程资源管理器按钮:用于打开工程资源管理器工程资源管理器按钮:用于打开工程资源管理器属性窗口按钮:用于打开属性窗口属性窗口按钮:用于打开属性窗口对象浏览器按钮:用于打开对象浏览器对象浏览器按钮:用于打开对象浏览器MicrosoftExcel插入模块运行子过程/用户窗体设计模式中断重新设计工程资源管理器 对象浏览器属性窗口第8页/共108页
6、 新建一个窗体并添加两个命令按钮,运行窗体后,单击第一个按钮,显示一个消息框;单击第二个按钮,退出当前窗体 通过此例,体会可视化编程、面向对象、事件过程、通过此例,体会可视化编程、面向对象、事件过程、应用方法等基本概念。应用方法等基本概念。第9页/共108页数组VBA程序流程控制VBA常用语句VBA编程基础VBA概念VBA编程基础第10页/共108页2-12-1常量、变量常量、变量VBA使用常量、变量来存储值。用来保存在程序运行期间数据。常量:在程序运行中其存储的值不会改变。变量:在程序运行中其值可以改变。第11页/共108页2-1-12-1-1常量常量在程序运行过程中,其值不会被改变的量称为
7、常量。在VBA中有三类常量:1.直接常量 如:10,20%,123.0,“AB”,“VBA程序设计”等2.符号常量3.系统常量 指VBA系统预先定义好的,用户可以直接引用的量。如:acForm,acQuery,vbOk,vbRed 第12页/共108页符号常量符号常量 在程序中,某个常量多次被使用,则可以使用一个符号来代替该常量,这样不仅在书写上方便,而且有效地改进了程序的可读性和可维护性。VBA中使用关键字Const 声明符号常量。其格式如下:Const 常量名 类型符号=常数表达式如:Const PI#=3.1415926第13页/共108页2-1-22-1-2变量变量 变量是内存中的临时
8、单元,存放在程序执行过程中产生的中间结果和最后输出结果。在程序中使用变量,就要给变量定义名称及类型,即对变量进行声明。第14页/共108页变量命名规则变量命名规则1.变量名必须以字母或汉字开头,后可跟字母、汉字、数字或下划线组成(不能含有小数点和空格),长度 不超过255个字符的字符串;2.不能使用VBA中的关键字;3.VBA中不区分变量名的大小写;4.变量名的最后一个字符可以是%、&、!、#、$等表示 数据类型的声明符。说明:常量名的命名规则与变量名的命名规则相同第15页/共108页2-2 2-2 数据类型与变量的声明数据类型与变量的声明在VBA中,数据类型用来决定变量可以保存何种数据。VB
9、A支持多种数据类型,为用户编程提供了方便。第16页/共108页2-2-1 VBA2-2-1 VBA的数据类型的数据类型数据类型数据类型数据类型数据类型类型声明符类型声明符类型声明符类型声明符存储空间存储空间存储空间存储空间 取值范围取值范围取值范围取值范围整型(整型(IntegerInteger)%2 2-32768-327683276732767长整型(长整型(LongLong)&4 4-2147483648-214748364821474836472147483647单精度浮点型单精度浮点型(SingleSingle)!4 4负数:负数:-3.402823E38-3.402823E38-1
10、.401298E-45-1.401298E-45正数:正数:1.401298E-451.401298E-453.402823E383.402823E38双精度浮点型双精度浮点型(DoubleDouble)#8 8负数:负数:-1.79769313486232E308-1.79769313486232E308-4.94065645841247E-3244.94065645841247E-324正数:正数:4.94065645841247E-3244.94065645841247E-3241.79769313486232E3081.79769313486232E308货币型货币型(Currency
11、)(Currency)8 8-922337203685477.5808-922337203685477.5808922337203685477.5807922337203685477.5807日期型日期型(Date)(Date)8 8100100年年1 1月月1 1日日99999999年年1212月月3131日日字符型字符型(String)(String)$0 0字符字符6540065400个字符个字符字节型字节型(Byte)(Byte)1 10 0255255逻辑型逻辑型(Boolean)(Boolean)2 2TrueTrue或或FalseFalse对象型对象型(Object)(Objec
12、t)4 4任何引用的对象任何引用的对象变体型变体型(Variant)(Variant)第17页/共108页2-2-22-2-2变量声明变量声明用Dim或Static语句显式声明局部变量 格式:Dim 变量名 AS 类型 或 Dim 变量名类型符 语句中的“As 类型”子句是可选的。如果使用该子句,就可以定义变量的数据类型。未使用,默认变量的类型为变体型(Variant)。例如:Dim i As integer,s 表示声明了一个名为i的整型变量和一个名为s的变体型变量。第18页/共108页关键字关键字DimDim或或StaticStatic的区别的区别Dim 声明:随过程的调用而分配存贮单元,
13、每次调用都对变量初始化;过程体结束,变量的内容自动消失,存储单元释放。Static 声明:Static 声明的变量,也称为静态变量。静态变量在程序运行过程中一直保留其值,即每次调用过程,变量保持原来的值。第19页/共108页数据类型的转换函数列表数据类型的转换函数列表函数函数返回类型返回类型CByteByteCBoolBooleanCIntIntegerCLngLong(长整型)CSngSingle(单精度浮点型)CDblDouble(双精度浮点型)CCurCurrency(变比整数)CDecDecimalCDateDateCStrStringCvarVariant第20页/共108页识别数据
14、类型的函数识别数据类型的函数TypeNameTypeNameSub abc()Dim i As Integer Dim str As String i=10 MsgBox TypeName(i)str=CStr(i)MsgBox TypeName(str)End Sub第21页/共108页隐式声明变量隐式声明变量 未进行上述的声明而直接使用变量,称变量的隐式声明,采用隐式声明的变量都是变体型(Variant)。注意:VBA中允许不事先声明而直接使用变量,可以通过语句Option Explicit,来要求所使用的变量必须事先声明,否则VBA会发出警告信息。第22页/共108页变量变量a,b,Su
15、ma,b,Sum都没有事先定义都没有事先定义Private Sub Form_Click()Sum=0 a=10 b=20 Sum=a+b Debug.Print Sum=&SumEnd Sub 良好的编程习惯应该是“先声明变量,后使用变量”,这样做可以提高程序的效率,同时也使程序易于调试。VBA中可以强制显式声明,可以在窗体模块、标准模块和类模块的通用声明段中加入语句:Option Explicit第23页/共108页变量的初始化变量的初始化声明而未赋值的变量的值为:n数值型变量初始化为0;n字符型变量为零长度字符串;n变体型变量初始化为 Empty;第24页/共108页2-3-12-3-1
16、算术运算符算术运算符第25页/共108页2-3-22-3-2连接运算符连接运算符 连接运算符:、+(字符串连接)例如:123+456 结果 123456 123&456 结果 123456 使用上 与+的区别:例如:abcdef&12345 结果为 abcdef12345 123&456 结果为 123456 abcdef+12345 结果为 出错 123+456 结果为 579 第26页/共108页2-3-32-3-3关系运算符关系运算符将两个操作数进行大小比较,结果为逻辑值。注意:字符串比较,则按字符的ASCII码值从左到右一一 比较,直到出现不同的字符为止。第27页/共108页2-3-4
17、2-3-4逻辑运算符逻辑运算符将操作数进行逻辑运算,结果是逻辑值第28页/共108页举例举例举例举例例1:用人单位招聘秘书:年龄小于40岁的女性,学历专科或本科 正确的VBA表达式:3=x And x=7 错误的VBA表达式:3=x=7 或 3=x Or x=7 年龄40,性别=“女”,(学历=“专科”,学历=“本科”)And And Or例2:算术表达式:第29页/共108页2-3-52-3-52-3-52-3-5简单的字符处理函数简单的字符处理函数简单的字符处理函数简单的字符处理函数作作 用用关关 键键 字字Option Compare设置字符串比较规则StrComp比较两个字符串StrC
18、onv字符串类型转换Lcase、Ucase大小写变换Space、String重复字符串Len计算字符串长度Format设置字符格式Lset、Rset重排字符串InStr、Left、Ltrim、Mid、RightRtrim、Trim处理字符串Split、Join拆分与连接字符串第30页/共108页Option CompareOption CompareOption CompareOption Compare设置字符串比较规则设置字符串比较规则设置字符串比较规则设置字符串比较规则Option Compare Binary|Text|DatabaseOption Compare Binary:是根据
19、字符的内部二进制表示导出的一种排序A-Za-z汉字Option Compare Text:是根据系统区域确定的一种不区分大小写的一种排序(A=a)(B=b)连接运算符关系运算符逻辑运算第43页/共108页2-5 2-5 2-5 2-5 常用函数常用函数常用函数常用函数 函数实际上是系统事先定义好的内部程序,用来完成特定的功能。VBA提供了大量的内部函数,供用户在编程时使用。函数的调用形式为:函数名(参数表)常用内部函数常用内部函数,在立即窗口练习,体会函数的功能。请参照:VBA函数参考手册第44页/共108页2-6 2-6 2-6 2-6 模块、函数和过程模块、函数和过程模块、函数和过程模块、
20、函数和过程 模块是自定义的过程、函数保存的地方,也是录制的宏保存的场所。有两种基本类型的模块:类模块和标准模块。模块可以通过右键单击工程资源管理器的工程名,选择“插入模块”来新建。新建的模块缺省的名称为“模块1”,“模块2”,建议在属性窗口内更改为有意义的名称。模块任务:(1)保存过程和函数;(2)定义模块内的私有变量或整个工程的公有变量。第45页/共108页2-7 2-7 2-7 2-7 过程过程过程过程过程是最基本的运行单位语法Private|Public|Friend Static Sub name(arglist)statementsExit SubstatementsEnd Sub在
21、以上程序中,Sub 代表过程种类,表示运行指定的操作,但不返回运行结果;第46页/共108页部分部分 描述描述Public可选的。表示所有模块的所有其它过程都可访问这个 Sub 过程。如果在包含 Option Private 的模块中使用,则这个过程在该工程外是不可使用的。Private可选的。表示只有在包含其声明的模块中的其它过程可以访问该 Sub 过程。Friend可选的。只能在类模块中使用。表示该 Sub 过程在整个工程中都是可见的,但对对象实例的控制者是不可见的。Static可选的。表示在调用之间保留 Sub 过程的局部变量的值。Static 属性对在 Sub 外声明的变量不会产生影响
22、,即使过程中也使用了这些变量。name必需的。Sub 的名称;遵循标准的变量命名约定。arglist可选的。代表在调用时要传递给 Sub 过程的参数的变量列表。多个变量则用逗号隔开。statements可选的。Sub 过程中所执行的任何语句组。第47页/共108页2-8 2-8 2-8 2-8 函数函数函数函数函数是具有返回值的过程语法Public|Private|Friend Static Function name(arglist)As type statements name=expression Exit Function statements name=expressionEnd F
23、unction 第48页/共108页部分部分 描述描述Public可选的。表示所有模块的所有其它过程都可访问这个 Function 过程。如果是在包含 Option Private 的模块中使用,则这个过程在该工程外是不可使用。Private可选的。表示只有包含其声明的模块的其它过程可以访问该 Function 过程。Friend可选的。只能在类模块中使用。表示该 Function 过程在整个工程中都是可见的,但对于对象实例的控制者是不可见的。Static可选的。表示在调用之间将保留 Function 过程的局部变量值。Static 属性对在该 Function 外声明的变量不会产生影响,即使
24、过程中也使用了这些变量。name必需的。Function 的名称;遵循标准的变量命名约定。arglist可选的。代表在调用时要传递给 Function 过程的参数变量列表。多个变量应用逗号隔开。type可选的。Function 过程的返回值的数据类型,可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(除定长)、Object、Variant或任何用户定义类型。statements可选的。在 Function 过程中执行的任何语句组。expression可选的。Function 的返回值
25、。第49页/共108页函数函数函数函数和和和和过程过程过程过程区别区别区别区别v调用一个过程(Sub)时,必须键入过程名称以及任何需要的参数值。Call语句可有可无,如果使用它,则参数必须以括号括起来。v调用函数(Function)时,为了使用函数的返回值,必须指定函数给变量,并且用括号将参数封闭起来。第50页/共108页数组VBA程序流程控制VBA常用语句VBA编程基础VBA概念VBA常用语句第51页/共108页3-1 VBA3-1 VBA3-1 VBA3-1 VBA语句书写规则语句书写规则语句书写规则语句书写规则nVBA代码不区分字母的大小写 系统保留字自动转换每个单词的首字母大写;n语句
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学习 VBA 基础知识
限制150内