VBA语法
2-1 变量
变量是属性的值或计算结果,变量存于内存中,并且依附VBA程序运行,值是可以改变的量。
2-1-1visual Basic 变量命名规则
自定义变量名称时有一定的规则:
(1)第一个字符必须使用英文字母。
(2)不能在名称中使用空白,句号,感叹号或@#$&等字符。
(3)名称的长度不可以超过255个字符。
(4)通常,使用的名称不能与Visual Basic 本身的函数、表达式及方法得名称相同。也不能与程序语言的关键字相同。若使
用内置函数、表达式或方法与所指定的名称冲突,则必须想
法把它们区分出来。
(5)不能在相同层次范围中使用重复的名称。
(6)Visual Basic 不区分大小写,但它会保留在表达式申明时所用的大小写字母。
2-1-2变量的赋值
给变量赋值其实就是将指定的数值、字符串、表达式等通过赋值符号“=”赋给指定的变量名。给变量赋值的格式:
变量名= 表达式
例如:使用“=”运算符将指定的信息赋值给相应的变量
Legalperson = “华锋”
Comyears = 6
将变量写入指定单元格
Cells(2,1) = legalperson
Cells(3,5) = comyears
2-1-3使用MsgBox函数
函数作用:弹出消息显示对话框,方便用户查看变量的值。
例如:将指定单元格赋值给变量
Compname1= cells(5,8)
Compname2= cells(2,5)
msgBox“第一个客户公司的名称为:”&compname1&Chr(10)&“第二个客户公司的名称为:”&compname2
2-1-4使用Dim语句声明变量
Dim语句主要用于声明变量并分配储存空间。其主要目的是告知用户该变量为自定义变量,声明后程序会自动记录该变量的类型等信息。要注意的是如果程序中的变量没有用Dim语句来声明变量,则被称为隐式声明,这些变量会被自动分配一个数据类型Variant,它们可以保存数字、字符串和其他信息类型。
Dim语句的语法格式:
Dim[WithEvents] varname[([subscripts])] [As [New] type] [WithEvents] varname[([subscripts])] [As [New] type]……
参数说明:
WithEvents:可选参数,说明vaname参数是一个用来响应由ActiveX对象触发的事件的对象变量。只有在类模块中才是合法的。使用WithEvents,可以声明任意多个所需的单变量,但不能使用它创建数组。New和WithEvents不能一起使用。
Varname:必选参数,是指定变量的名称需要遵守标准的变量命
名约定。
Subscripts:可选参数,表示数组变量的维数,最多可定义60维的多维数组。Subscripts参数的使用语法为[Lower To]upper[,[lower To] Upper]…,如果不显示指定Lower,则数组的下界由Option Base 语句控制。如果没有使用Option Base 语句,则下界为0。
New,可选参数,可隐式地创建对象的关键字。如果使用New来声明对象变量,则在第一次引用该变量时将新建该对象的实例。因此不必使用set语句来给对象引用赋值。New关键字不能声明任何内部数据类型的变量,以及重属对象的实例,也不能与WithEvents一起使用。
Type :可选参数,表示变量数据类型。变量的类型可以是Byte,long,currency,single,double,date,shting,object,variant等数据类型。所声明的每个变量都有一个单独的As Type子句。
例子:
Dim compname As String 声明变量compname为字符串类型。
Dim StartDate As Date 声明变量StartDate为日期型。
2-1-5使用Public语句声明公用变量
函数作用:可以在多个模块或程序过程中调用同一个变量。
语法格式:和Dim函数的语法格式相同。
Public语句声明的变量在所有程序的所有没有使用Option Private Module 模块的任何过程中都可以使用,若该模块使用了Option Private Module,则该变量只是在其所属工程中公用。
2-1-6使用Private语句声明私有变量
函数作用:有时用户需要让声明的变量在声明的模块或下级子过程中使用,这时就可以使用Private语句将其定义为私有变量。
语法格式;和Dim函数的语法格式相同。
2-1-7变量类型的使用范围和有效期限
表2-1
表2-2
2-1-8对象变量的定义与赋值
对象类型变量是应用程序通过自动化显露的对象的类型。如:
Application,File,Range和Sheet.使用对象浏览器或引用应用程
序的文档可得到这些对象的列表。
在为对象类型变量赋值时需要使用Set语句来实现,Set语句的
功能是将对象引用赋值给指定的变量或属性。其语法格式为:Set objectvar = {[New] objectexpression | Nothing}
参数说明:
Objectvar : 必选参数,是指变量或属性的名称。
New:可选参数,通常在声明时使用New,以便可以隐式创建对象。如果New与Set一起使用,则将创建该类的一个新实例。如果objectvar 包含了一个对象引用,则在赋新值是释放该引用。不能使用New关键字来创建任何内部数据类型的新实例,也不能创建从属对象。Objectexpression:必选参数,由对象名、所声明的相同对象类型的其他变量,或返回相同对象类型的函数或方法所组成的表达式。Nothing: 可选参数,用于断绝objectvar与任何指定对象的关系。若没有其他变量指向objectvar原来所引用的对象,将其赋为Nothing会释放该对象所关系的所有系统及内存资源。
例如:
过程代码;
Sub smpobject()
Dim myrange As Range…声明变量myrange为对象变量
‘将指定单元格区域A1:E1赋值给变量myrange.
Set myrange = werksheets(“sheet1”).Range(“A1:E1”) https://www.sodocs.net/doc/403322413.html,=”华文楷体”
Myrange.Font.Size= 20
Myrange.Font.Bold=True
表2-3