您好,欢迎访问三七文档
VBA基础(2020/5/16)数组VBA程序流程控制VBA常用语句VBA编程基础VBA概念VBA概念1-1VBA简介VBA(VisualBasicforApplication)是MicrosoftOffice系列软件的内置编程语言,其语法结构与VisualBasic编程语言互相兼容,采用的是面向对象的编程机制和可视化的编程环境。1-2面向对象程序设计的基本概念1.集合和对象VBA中的应用程序是由许多对象组成的,如表、窗体、查询等。对象是帮助构造应用程序的元素,以特定的方式组织这些对象,就形成了应用程序。2.对象的属性、事件和方法属性属性描述了对象的自身性质其格式为:对象名.属性=属性值1-2面向对象程序设计的基本概念事件事件是指可以发生在一个对象上且能够被该对象所识别的动作。如:单击某个命令按钮就产生该按钮的“单击”事件当某个对象发生某一事件后,就会驱动系统去执行预先编好的、与这一事件相对应的一段程序。方法方法是系统事先设计好的,可以完成一定操作的特殊过程,是附属于对象的行为和动作。在需要使用的时候可以直接调用。其格式为:对象名.方法名常见对象及其含义对象名含义Application代表整个Excel应用程序Window代表窗口Worksheet代表一个工作表Sheets指定的或活动工作薄中所有工作表的集合ShapeRange代表形状区域,它是文档中的一组形状PivotTable代表工作表上的数据透视图Workbook代表一个Excel工作薄Shape代表绘图层中的对象,例如自选图形Range代表某一单元格、某一行、某一列、某一区域Name代表单元格区域的自定义名Chart代表工作薄中的图表FileDialog提示文件对话框,功能和应用程序中标准“打开”和“保存”对话框类似CommandBarPopup代表命令栏上的一个弹出式控件CommandBar代表容器应用程序中的一个命令栏1-3VBA编程环境VBA中的程序与函数共有4种:一般程序(Sub)、事件程序(Event)、属性程序(Property)和函数(Function)VBA程序窗口共6种:代码窗口、立即窗口、本地窗口、监视窗口、工程资源管理器和属性窗口在VBE环境中编写VBA代码工程窗口-选择对象属性窗口-选择对象的属性代码窗口选择事件VBE编程环境标准工具条视图MicrosoftExcel按钮:切换Excel窗口插入按钮:插入模块或过程运行子过程/用户窗体按钮:运行模块中的程序中断按钮:中断正在运行的程序重新设置按钮:结束正在运行的程序设置模式按钮:在设计模式和非设计模式之间切换工程资源管理器按钮:用于打开工程资源管理器属性窗口按钮:用于打开属性窗口对象浏览器按钮:用于打开对象浏览器MicrosoftExcel插入模块运行子过程/用户窗体设计模式中断重新设计工程资源管理器对象浏览器属性窗口新建一个窗体并添加两个命令按钮,运行窗体后,单击第一个按钮,显示一个消息框;单击第二个按钮,退出当前窗体通过此例,体会可视化编程、面向对象、事件过程、应用方法等基本概念。数组VBA程序流程控制VBA常用语句VBA编程基础VBA概念VBA编程基础2-1常量、变量VBA使用常量、变量来存储值。用来保存在程序运行期间数据。常量:在程序运行中其存储的值不会改变。变量:在程序运行中其值可以改变。2-1-1常量在程序运行过程中,其值不会被改变的量称为常量。在VBA中有三类常量:1.直接常量如:10,20%,123.0,“AB”,“VBA程序设计”等2.符号常量3.系统常量指VBA系统预先定义好的,用户可以直接引用的量。如:acForm,acQuery,vbOk,vbRed符号常量在程序中,某个常量多次被使用,则可以使用一个符号来代替该常量,这样不仅在书写上方便,而且有效地改进了程序的可读性和可维护性。VBA中使用关键字Const声明符号常量。其格式如下:Const常量名[类型符号]=常数表达式如:ConstPI#=3.14159262-1-2变量变量是内存中的临时单元,存放在程序执行过程中产生的中间结果和最后输出结果。在程序中使用变量,就要给变量定义名称及类型,即对变量进行声明。变量命名规则1.变量名必须以字母或汉字开头,后可跟字母、汉字、数字或下划线组成(不能含有小数点和空格),长度不超过255个字符的字符串;2.不能使用VBA中的关键字;3.VBA中不区分变量名的大小写;4.变量名的最后一个字符可以是%、&、!、#、$等表示数据类型的声明符。说明:常量名的命名规则与变量名的命名规则相同2-2数据类型与变量的声明在VBA中,数据类型用来决定变量可以保存何种数据。VBA支持多种数据类型,为用户编程提供了方便。2-2-1VBA的数据类型数据类型类型声明符存储空间取值范围整型(Integer)%2-32768~32767长整型(Long)&4-2147483648~2147483647单精度浮点型(Single)!4负数:-3.402823E38~-1.401298E-45正数:1.401298E-45~3.402823E38双精度浮点型(Double)#8负数:-1.79769313486232E308~-4.94065645841247E-324正数:4.94065645841247E-324~1.79769313486232E308货币型(Currency)@8-922337203685477.5808~922337203685477.5807日期型(Date)8100年1月1日~9999年12月31日字符型(String)$0字符~65400个字符字节型(Byte)10~255逻辑型(Boolean)2True或False对象型(Object)4任何引用的对象变体型(Variant)2-2-2变量声明用Dim或Static语句显式声明局部变量格式:Dim变量名[AS类型]或Dim变量名类型符语句中的“As类型”子句是可选的。如果使用该子句,就可以定义变量的数据类型。未使用,默认变量的类型为变体型(Variant)。例如:DimiAsinteger,s表示声明了一个名为i的整型变量和一个名为s的变体型变量。关键字Dim或Static的区别Dim声明:随过程的调用而分配存贮单元,每次调用都对变量初始化;过程体结束,变量的内容自动消失,存储单元释放。Static声明:Static声明的变量,也称为静态变量。静态变量在程序运行过程中一直保留其值,即每次调用过程,变量保持原来的值。数据类型的转换函数列表函数返回类型CByteByteCBoolBooleanCIntIntegerCLngLong(长整型)CSngSingle(单精度浮点型)CDblDouble(双精度浮点型)CCurCurrency(变比整数)CDecDecimalCDateDateCStrStringCvarVariant识别数据类型的函数TypeNameSubabc()DimiAsIntegerDimstrAsStringi=10MsgBoxTypeName(i)str=CStr(i)MsgBoxTypeName(str)EndSub隐式声明变量未进行上述的声明而直接使用变量,称变量的隐式声明,采用隐式声明的变量都是变体型(Variant)。注意:VBA中允许不事先声明而直接使用变量,可以通过语句OptionExplicit,来要求所使用的变量必须事先声明,否则VBA会发出警告信息。变量a,b,Sum都没有事先定义PrivateSubForm_Click()Sum=0a=10b=20Sum=a+bDebug.PrintSum=&SumEndSub良好的编程习惯应该是“先声明变量,后使用变量”,这样做可以提高程序的效率,同时也使程序易于调试。VBA中可以强制显式声明,可以在窗体模块、标准模块和类模块的通用声明段中加入语句:OptionExplicit变量的初始化声明而未赋值的变量的值为:数值型变量初始化为0;字符型变量为零长度字符串;变体型变量初始化为Empty;2-3-1算术运算符2-3-2连接运算符连接运算符:&、+(字符串连接)例如:123+456结果123456123&456结果123456使用上&与+的区别:例如:abcdef&12345结果为abcdef12345123&456结果为123456abcdef+12345结果为出错123+456结果为5792-3-3关系运算符将两个操作数进行大小比较,结果为逻辑值。注意:字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止。2-3-4逻辑运算符将操作数进行逻辑运算,结果是逻辑值举例例1:用人单位招聘秘书:年龄小于40岁的女性,学历专科或本科正确的VBA表达式:3〈=xAndx=7错误的VBA表达式:3=x=7或3=xOrx=7年龄40,性别=“女”,(学历=“专科”,学历=“本科”)AndAndOr例2:算术表达式:73x2-3-5简单的字符处理函数作用关键字OptionCompare设置字符串比较规则StrComp比较两个字符串StrConv字符串类型转换Lcase、Ucase大小写变换Space、String重复字符串Len计算字符串长度Format设置字符格式Lset、Rset重排字符串InStr、Left、Ltrim、Mid、RightRtrim、Trim处理字符串Split、Join拆分与连接字符串OptionCompare设置字符串比较规则OptionCompare{Binary|Text|Database}OptionCompareBinary:是根据字符的内部二进制表示导出的一种排序A-Za-z汉字OptionCompareText:是根据系统区域确定的一种不区分大小写的一种排序(A=a)(B=b)(Z=z)结果:True结果:FalseStrComp比较两个字符串StrConv字符串类型转换常量说明vbUpperCase将字符串文字转成大写vbLowerCase将字符串文字转成小写vbProperCase将字符串中每个字的开头字母转成大写vbWide将字符串中单字节字符转成双字节字符vbNarro将字符串中双字节字符转成单字节字符vbKatakana将字符串中平假名字符转成片假名字符vbHiragana将字符串中片假名字符转成平假名字符vbUnicode根据系统的默认码页将字符串转成UnicodevbFromUnicode将字符串由Unicode转成系统的默认码页StrConv字符串类型转换(例)MsgBoxstrConv(English,vbUpperCase)&Chr(10)&strConv(English,vbLowerCase)&Chr(10)&strConv(english,vbProperCase)&Chr(10)&strConv(English,vbWide)Format格式化字符串MsgBoxFORMAT(Date,yyyy年m月d日)&Chr(10)&FORMAT(Date,aaaa),vbaOKOnly,现在是LCase/UCase大小写转换Sub大小写转换()MsgBoxLCase(HELLOWORLD)&Chr(10)&UCase(helloworld)EndSubString/Space重复字符Sub重复字符()MsgBoxString(5,$)&Space(3)&String(5,*)EndSubLset/Rset字符串往左/右对齐Sub字符左右对齐()Dimstr1,str2AsStringstr1=大连华信计算机技术股份有限公司LSetstr1=华信培训str2=大连华信计算机技术股份有限公司RSetstr2=华信培训MsgBox[&str1&]&Chr(10)&[&str2&]EndSubInstr返回字符出现位置Sub查找位置()MsgBoxInStr(大连华信计算机技术股份有限公司,信)EndSubLeft/Mid/Right从左
本文标题:VBA基础
链接地址:https://www.777doc.com/doc-5391132 .html