第8章 模块与VBA编程基础Word下载.docx
- 文档编号:21567178
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:21
- 大小:85.08KB
第8章 模块与VBA编程基础Word下载.docx
《第8章 模块与VBA编程基础Word下载.docx》由会员分享,可在线阅读,更多相关《第8章 模块与VBA编程基础Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
(5)类:
描述对象的特征以及对象外观和行为的模板。
其特征主要包括:
封装性、继承性、多态性、抽象性。
2、VisualBasic编辑环境
(1)启动VB编辑器方法
方法1:
通过各对象属性对话框中事件标签方式启动。
方法2:
通过模块对象列表中的“新建”按钮启动。
方法3:
通过主菜单“工具\宏\VisualBasic编辑器”命令或Alt+F11快捷键启动。
(2)VBA编辑器界面
⏹标准工具栏:
认识常用的命令按钮。
⏹工程窗口:
即资源管理器窗口,管理应用程序的所有模块文件。
⏹代码窗口:
有对象和事件下拉列表框、代码编辑区以及模块查看切换按钮组。
⏹属性窗口:
用于罗列指定对象的所有属性。
⏹立即窗口:
用于表达式计算和对象值的显示,主要用在程序调试时。
(3)程序语句书写规则
⏹多条语句写在同一行上时,语句间用冒号作分隔符
⏹将一条语句写在多行上时,此时可用续行符“_”。
⏹添加注释:
用单引号“‘”或Rem语句作为注释内容的开始。
3、数据类型与数据库对象
(1)标准数据类型
数据类型
类型标识
类型说明符
取值范围
整型
Integer
%
-32768~32767
长整型
Long
&
单精度
Single
!
双精度
Double
#
货币
Currency
@
字符串
String
$
0~65500
布尔型
Boolean
无
True或False
日期型
Date
100/1/1~9999/12/31
变体型
Variant
⏹布尔型数据:
其取值为True或False,True值存储为-1,False值存储为0。
⏹日期型数据:
其常量表示时以#号为定界符,如#2001-1-1#
⏹变体型数据:
可以包含除定长字符串与用户自定义类型外的任何数据类型。
(2)用户自定义类型
定义格式:
Type[数据类型名]
成员名1as<
数据类型>
成员名2as<
。
。
EndType
如:
TypeStud‘定义数据类型
Noasintger
Nameasstring*8
Sexasstring*1
Scoreassinge
Endtype
Dimstasstud‘定义数据类型变量
WithSt
.no=1001
.name=”李四”
.sex=”男”
.Score=88.5
endwith
‘给变量的各个成员赋值
St.no=1001
St.name=”李四”
St.sex=”男”
St.score=88.5
4、变量与常量
(1)变量声明
格式:
Dim变量名[As<
]或Dim变量名[类型说明符]
dimaasinteger,basdate,c!
d
dimLg&
(2)强制声明
在通用声明区加上语句:
OptionExplicit。
这将要求程序中所有变量都必须先声明后才能使用。
(3)变量的作用域
⏹局部级:
在过程级定义的变量,仅在声明它的过程中可见。
⏹模块/窗体级:
在模块或窗体级声明的变量,在声明它的模块或窗体中的所有过程中可见。
⏹全局级:
用Public关键字在模块或窗体级声明的变量,在所有项目的任何过程中都可。
⏹定义静态变量:
用Static语句取代Dim语句,静态变量在调用时仍保留其原先的值。
(4)数组
⏹定义:
指连续可索引的具有相同数据类型的元素所组成的集合。
⏹使用一维数组
声明格式:
Dim数组名([下标下界to]下标上界)as数据类型
说明:
◆数组元素缺省下标值为0,
◆数组元素个数为(下标上界-下标下界)+1
⏹使用二维数组
Dim数组名(下标1,下标2)as数据类型
◆下标格式同一维数组下标格式,
◆最多可声明60个维数,
◆数组元素个数为:
下标1元素个数*下标2元素个数。
(5)变量命名规则
必须以字母打头,在同一范围内必须唯一,长度不能超过255个字符,且中间不能包含句点或类型声明符。
(6)常量
⏹概念:
指在程序运行过程中固定不变的数据量。
⏹Access支持三类常量:
符号常量:
用Const语句定义,在模块中使用。
固有常量:
是Access或引用库的一部分。
系统定义常量:
True、False、Yes、No、On、Off、Null等等。
⏹声明符号常量
使用Const语句进行符号常量声明。
符号常量声明位置:
可在过程中或在模块顶部声明符号常量。
模块级中声明的符号常量缺省为私有常量。
在Const语句前加上Public声明的常量为公共常量,而加上Private声明的常量为私有常量。
声明符号常量时,可定义的数据类型有:
Boolean、Byte、Integer、Long、Currency、Single、Double、Date、String或Variant。
例:
PublicConstconageasinteger=20
ConstconBirthasDate=#2006-01-01#,conWageasCurrency=3500¤
5、常用标准函数
(1)算术函数
⏹绝对值函数:
Abs(<
数值表达式>
)
Abs(-10)=10
⏹向下取整函数:
Int(<
Int(3.25)=3,Int(3.99)=3,Int(-2.14)=-3,Int(-2.98)=-3
⏹取整函数:
Fix(<
Fix(3.25)=3,Fix(3.99)=3,Fix(-2.14)=-2,Fix(-2.98)=-2
⏹四舍五入函数:
Round(<
[,<
小数位数>
])
Round(3.84,1)=3.8,Round(3.86,1)=3.9,Round(3.84)=5,Round(3.84,0)=5
⏹开平方函数:
Sqr(<
Sqr(9)=3
⏹产生随机数函数:
Rnd(<
产生0~1之间的随机小数。
用Randomize语句初始化随机数生成器,可以产生不同的随机数。
如:
Int(100*Rnd)‘产生[0,99]的随机数
Int(101*Rnd)‘产生[0,100]的随机数
Int(100*Rnd+1)‘产生[1,100]的随机数
Int(100*Rnd+200)‘产生[200,299]的随机数
通式:
Int(a*Rnd+b)=>
产生[b,a+b-1]的随机数
(2)字符串函数
⏹字符串检索函数
InStr([start,]string1,string2[,compare])
start
可选参数。
为数值表达式,设置每次搜索的起点。
如果省略,将从第一个字符的位置开始。
如果start包含Null,将发生错误。
如果指定了compare参数,则一定要有start参数。
string1
必要参数。
接受搜索的字符串表达式。
string2
被搜索的字符串表达式。
Compare
指定字符串比较。
如果compare是Null,将发生错误。
如果省略compare,OptionCompare的设置将决定比较的类型。
指定一个有效的LCID(LocaleID)以在比较中使用与区域有关的规则。
compare参数设置为:
常数
值
描述
vbUseCompareOption
-1
使用OptionCompare语句设置执行一个比较。
vbBinaryCompare
执行一个二进制比较。
vbTextCompare
1
执行一个按照原文的比较。
vbDatabaseCompare
2
仅适用于MicrosoftAccess,执行一个基于数据库中信息的比较。
DimStr,Ch,MyPos
Str="
XXpXXpXXPXXP"
'
被搜索的字符串。
Ch="
P"
要查找字符串"
'
从第四个字符开始,以文本比较的方式找起。
返回值为6(小写p)。
小写p和大写P在文本比较下是一样的。
MyPos=Instr(4,Str,Ch,1)
从第一个字符开使,以二进制比较的方式找起。
返回值为9(大写P)。
小写p和大写P在二进制比较下是不一样的。
MyPos=Instr(1,Str,Ch,0)
缺省的比对方式为二进制比较(最后一个参数可省略)。
MyPos=Instr(Str,Ch)'
返回9。
MyPos=Instr(1,Str,"
W"
)'
返回0。
⏹字符串长度检测函数
Len(string|varname)
部分
说明
string
任何有效的字符串表达式。
如果string包含Null,会返回Null。
Varname
任何有效的变量名称。
如果varname包含Null,会返回Null。
如果varname是Variant,Len会视其为String并且总是返回其包含的字符数。
dimstrasstring*10
imI
str=”123”
I=12
Printlen(“12345”)‘长度为5
Printlen(12)‘出错
Printlen(i)‘长度2
Printlen(“等级考试”)‘长度4
Printlen(str)‘长度10
⏹字符串截取函数
Left(string,length)
字符串表达式其中最左边的那些字符将被返回。
如果string包含Null,将返回Null。
length
必要参数;
为Variant(Long)。
数值表达式,指出将返回多少个字符。
如果为0,返回零长度字符串("
"
)。
如果大于或等于string的字符数,则返回整个字符串。
DimAnyString,MyStr
AnyString="
HelloWorld"
定义字符串。
MyStr=Left(AnyString,1)'
返回"
H"
MyStr=Left(AnyString,7)'
HelloW"
MyStr=Left(AnyString,20)'
Right(string,length)
字符串表达式,从中最右边的字符将被返回。
为数值表达式,指出想返回多少字符。
MyStr=Right(AnyString,1)'
d"
MyStr=Right(AnyString,6)'
World"
MyStr=Right(AnyString,20)'
Mid(string,start[,length])
字符串表达式,从中返回字符。
为Long。
string中被取出部分的字符位置。
如果start超过string的字符数,Mid返回零长度字符串("
可选参数;
要返回的字符数。
如果省略或length超过文本的字符数(包括start处的字符),将返回字符串中从start到尾端的所有字符。
DimMyString,FirstWord,LastWord,MidWords
MyString="
MidFunctionDemo"
建立一个字符串。
FirstWord=Mid(MyString,1,3)'
Mid"
LastWord=Mid(MyString,14,4)'
Demo"
MidWords=Mid(MyString,5)'
FuncionDemo"
⏹生成空格字符函数
Space(number)
DimMyString
返回10个空格的字符串。
MyString=Space(10)
将10个空格插入两个字符串中间。
Hello"
&
Space(10)&
"
World"
⏹大小写转换函数
LCase(string)‘只有大写的字母会转成小写;
所有小写字母和非字母字符保持不变。
DimUpperCase,LowerCase
Uppercase="
HelloWorld1234"
要输送的字符串。
Lowercase=Lcase(UpperCase)'
helloworld1234"
UCase(string)‘只有小写的字母会转成大写;
原本大写或非字母之字符保持不变。
DimLowerCase,UpperCase
LowerCase="
UpperCase=UCase(LowerCase)'
HELLOWORLD1234"
⏹删除空格函数
LTrim(string)
RTrim(string)
Trim(string
返回Variant(String),其中包含指定字符串的拷贝,没有前导空白(LTrim)、尾随空白(RTrim)或前导和尾随空白(Trim)。
(3)日期/日间函数
见P215
(4)类型转换函数
见P218
6、运算符和表达式
⏹算术运算符
⏹字符串运算符
运算符:
和+
VB=“Visual”+“Basic”'
连接为字符串“VisualBasic”
label1.Caption="
第"
Str(N)&
条记录"
Str为数值型转字符型函数。
若N为1,标签上显示“第1条记录”
◆v使用+号,要求连接的两个表达式均为字符串型
◆v使用&
号,连接的两个表达式可以为任何类型,但结果为字符串型,如:
“当前日期”&
#10/8/2002#
⏹关系运算符
Is:
判定两个Object类型的变量是否引用同一个对象
Like:
判定左边的字符串是否与右边的字符串匹配
⏹逻辑运算符
常用:
Not、And、Or
Not:
表达式数为True时,结果为False;
反之亦然。
例如,Not(4>
5),结果为True
And:
两个表达式均为True时,结果为True
例如,(4>
5)And(8>
7),结果为False
Or:
两个表达式均为False时,结果为False
5)Or(8>
7),结果为True
⏹表达式和优先级
表达式:
用运算符和圆括号将常量、变量、函数和常数连接起来组成的有意义的式子。
如,数值表达式Cos(180*Pi/180)*100
逻辑表达式(N>
=0)And(NMod2<
>
0)
运算优先顺序(从高到低):
函数→算术运算(乘方→取负→乘/除→整除→求余→加/减)
→字符串运算符→关系运算符→逻辑运算符(Not→And→Or)
用括号可以改变运算顺序
乘方和负号相邻时,取负优先。
例如:
2^-2的结果是0.25,相当于2^(-2)
四、VBA流程控制语句
控制语句分3种:
顺序结构、选择结构和循环结构。
1、赋值语句
变量名=值或表达式
2、条件语句
(1)行If语句
⏹格式:
If<
条件>
Then<
语句组1>
[else<
语句组2>
]
⏹说明:
条件:
可以是关系、逻辑表达式,也可以是算术,算术表达式以零值为False,非零值为True。
该语句只能在同一行上书写,对语句组中的语句间用冒号分隔。
该语句自身还可嵌套使用。
⏹例:
If100thenprint“true”elseprint“false”
Ifx>
ythenx=x*y:
printxelsey=y/x:
printy
0theny=1elseifx=0theny=0elsey=-1
(2)块If语句
If
<
Then
[Else
EndIf
if-then、else和endif都必须单独成行。
块If语句也可以进行嵌套使用。
Pass="
1234"
Ok=True
Else
Ok=False
⏹示例
见222例8.4、例8.5、例8.6、例8.7
(3)SelectCase语句
SelectCase测试表达式
Case表达式列表1
[语句块1]
[Case表达式列表2
[语句块2]
...
[CaseElse
[语句块n]
EndSelect
当测试表达式一旦找到满足的表达式列表,就执行其后的语句,之后退出多分支选择结构,即多分支结构只能执行其中的一个分支。
表达式列表有四种表示格式:
◆列举式:
如case2,4,6,8
◆闭区间式:
如case1to10
◆关系式:
Is<
关系运算表达式>
如caseis>
1
◆以上三种的混合式。
一般case后的表达式不能出现相同的情况。
case子句的先后顺序不影响程序的运行结果。
caseelse子句必须放在所有case子句之后。
见225例8.8、例8.9
(4)条件函数
⏹IIf函数
格式:
IIf(条件表达式,表达式1,表达式2)
当条件表达式值为真(true)时,函数返回表达式1的值,否则返回表达式2的值。
例
要求性别字段值为1时,文本框TxtSex中显示“男”,性别字段值为2时,文本框TxtSex中显示“女”。
TxtSex=IIf(性别=1,“男”,“女”)
⏹Switch函数
Switch(条件1,表达式1[,条件2,表达式2…..[,条件n,表达式n]])
Switch函数的参数列表由多对表达式和数值组成。
表达式是由左至右加以计算的,而数值则会在第一个相关的表达式为True时返回。
例:
Matchup=Switch(CityName="
北京"
"
中国"
CityName="
伦敦"
英国"
_
CityName="
罗马"
意大利"
CityName="
巴黎"
法国"
⏹Choose函数
Choose(index,choice-1[,choice-2,...[,choice-n]])
◆Choose会根据index的值来返回选择项列表中的某个值。
如果index是1,则Choose会返回列表中的第1个选择项。
如果index是2,则会返回列表中的第2个选择项,以此类推。
◆当index小于1或大于列出的选择项数目时,Choose函数返回Null。
◆如果index不是整数,则会先四舍五入为与其最接近的整数。
Matchup=Choose(idx,"
见226例8.10、例8.11
3、循环语句
(1)For–Next语句
For循环变量=初值to终值[Step步长]
语句块
[ExitFor]
Next循环变量
0初值<
终值=1时,可省略
步长<
0初值>
终值
=0死循环
缺省S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第8章 模块与VBA编程基础 模块 VBA 编程 基础