第五章 VBA内部函数
5,6 文件操作函数
5,7 输入输出函数
5,8 财会类函数
5,9 格式化数据
5,10 系统与对象函数
5,1 数学函数
5,2 数组函数
5,3 字符串操作函数
5,4 日期和时间函数
5,5 数据类型检查与
转换函数
2,Atn(number)
3,Cos(number)
4,Exp(number)
5,Fix(number)
6,Hex(number)
7,Int(number)
8,Log(number)
5, 1 数学函数
1,Abs(number)
10,Rnd[(number)]
11,Round(expression
[,numdecimalplaces])
12,Sgn(number)
13,Sin(number)
14,Sqr(number)
15,Tan(number)
9,Oct(number)
1,Array(arglist)
2,Filter(sourcesrray,match
[,include[,compare]])
3,LBound(arrayname[,dimension])
4,Split(expression[,delimiter[,
limit[,compare]]])
5,UBound(arrayname[,dimension])
5, 2 数组函数
5, 3 字符串操作函数
1,InStr([start,]string1,
string2[,compare])
2,InstrRev(stringcheck,
stringmatch[,start[,compare]])
3,Join(sourcearray[,delimiter])
4,LCase(string)
5,Left(string,length)
6,Len(string | varname)
7,LTrim(string)
8,Mid(string,start[,length])
9,Replace(expression,find,
replace[,start[,count[,compare]]])
10,Right(string,length)
12,Space(number)
13,StrComp(string1,
string2[,compare])
14,StrConv(string,
conversion,LCID)
15,StrReverse(
expression)
11,RTrim(string)
16,String(number,
character)
17,Trim(string)
18,UCase(string)
5, 4 日期和时间函数
1,Date
2,DateAdd(interval,number,date)
3,DateDiff(interval,date1,date2[,
firstdayofweek[,firstweekofyear]])
4,DatePart(interval,date[,firstday-
ofweek[,firstweekofyear]])
5,DateSerial(year,month,day)
6,DateValue(date)
7,Day(date)
8,Hour(time)
9,Minute(time)
10,Month(date)
11,MonthName(month[,
abbreviate])
12,Now
13,Second(time)
14,Time
15,Timer
16,TimeSerial(hour,
minute,second)
17,TimeValue(time)
18,Weekday(date,
[firstdayofweek])
19,WeekdayName(weekday,
abbreviate,firstdayofweek)
20,Year(date)
6,IsArray(varname)
5, 5 数据类型检查与
转换函数
7,IsDate(expression)
8,IsEmpty(expression)
9,IsError(expression)
10,IsMissing(argname)
11,IsNull(expression)
1,Asc(string)
2.类型转换
3,Choose(index,choice-1[,
choice-2,..,[,choice-n]])
4,Chr(charcode)
5,IIf(expr,truepart,
falsepart)
12,IsNumeric(expression)
13,IsObject(identifier)
14,Partition(number,
start,stop,interval)
15,Str(number)
16,Switch(expr-1,value-1[,expr-2,
value-2 _ [,expr-n,value-n]])
17,TypeName(varname)
18,Val(string)
19,VarType(varname)
5, 6 文件操作函数
1,CurDir[(drive)]
2,Dir[(pathname[,attributes])]
3,EOF(filenumber)
4,FileAttr(filenumber,returntype)
5,FileDateTime(pathname)
6,FileLen(pathname)
7,FreeFile[(rangenumber)]
8,GetAttr(pathname)
9,Loc(filenumber)
11,Seek(filenumber)
10,LOF(filenumber)
5, 7 输入输出函数
1,Input(number,[#]filenumber)
2,InputBox(prompt[,title] [,default]
[,xpos] [,ypos] [,helpfile,context])
3,MsgBox(prompt[,buttons]
[,title] [,helpfile,context])
4,Spc(n) 5,Tab[(n)]
5, 8 财会类函数
1,DDB(cost,salvage,
life,period[,factor])
2,FV(rate,nper,pmt[,pv[,type]])
3,IPmt(rate,per,nper,
pv[,fv[,type]])
4,IRR(values()[,guess])
5,MIRR(values(),finance_rate,
reinvest_rate)
6,NPer(rate,pmt,
pv[,fv[,type]])
7,NPV(rate,values())
8,Pmt(rate,nper,pv[,fv[,type]])
9,PPmt(rate,per,nper,
pv[,fv[,type]])
10,PV(rate,nper,pmt[,fv[,type]])
11,Rate(nper,pmt,pv
[,fv[,type[,guess]]])
12,SLN(cost,salvage,life)
13,SYD(cost,salvage,life,period)
5, 9 格式化数据
1,Format(expression[,format[,
firstdayofweek[,firstweekofyear]]])
2,FormatCurrency(Expression
[,NumDigitsAfterDecimal
[,IncludeLeadingDigit[,
UseParensForNegativeNumbers [,GroupDigits]]]])
3,FormatDateTime(Date[,NamedFormat])
4,FormatNumber(Expression
[,NumDigitsAfterDecimal[,IncludeLeadingDigit [,
UseParensForNegativeNumbers[,GroupDigits]]]])
5,FormatPercent(Expression[,N
umDigitsAfterDecimal
[,IncludeLeadingDigit [,
UseParensForNegativeNumbers
[,GroupDigits]]]])
5, 10 系统与对象函数
1,CallByName(object,procname,
calltype,[args()])
2,Command
3,CreateObject(class,[servername])
4,CVErr(errornumber)
5,DoEvents( )
6,Environ({envstring | number})
7,Error[(errornumber)]
8,GetAllSettings(appname,section)
9,GetObject([pathname] [,class])
10,GetSetting(appname,
section,key[,default])
11,IMEStatus
12,MacID(常量 )
13,MacScript 脚本
14,QBColor(color)
15,RGB(red,green,
blue)
16,Shell(pathname[,
windowstyle])
5.1-1,Abs(number)
返回参数的绝对值。
5.1-2,Atn(number)
返回一个数的反正切值。 Double型。
number是以弧度为单位的角。范围
在 -pi/2 和 pi/2 弧度之间。
5.1-3,Cos(number)
返回指定一个角的
余弦值。 Double
型。 number 参数是
Double 或任何有效的
数值表达式,表示一个
以弧度为单位的角。
5.1-4,Exp(number)
返回 e(自然对数的底)的某次方。
Double型。
number是 Double或任何有效的数值
表达式。
5.1-5,Fix(number)
返回参数的整数部分。与 Int(numbe-
r)功能相似。
Int和 Fix都会删除 number的小数部份
而返回剩下的整数。
Int和 Fix 的不同之处在于,如果 number
为负数,则 Int返回小于或等于 number的第 一个
负整数,而 Fix则会返回大于或等于 number的第
一个负整数。例如,Int将 -8.4 转换成 -9,而
Fix将 -8.4转换成 -8。
5.1-6,Hex(number)
返回代表十六进制数值的 String。
number为任何有效的数值表达式或字符串
表达式如果 number不是一个整数,先四舍
五入取整。
前缀 &H,可以直接表示十六进制数
字。 例 如,&H10代表十进制的 16。
5.1-7,Int(number)
返回参数的整数部分。与
Fix(numb-
er)相似。祥见 Fix函数说明。
5.1-8,Log(number)
返回指定参数的自然对数值。
number是大于 0的数值表达式。
5.1-9,Oct(number)
返回数值的八进制值。
number为数值表达式或字符串表达式。
如果 number非整数,先四舍五入取整。
可以用前缀 &O来直接表示八进制数字。
例如,& O10代表十进制的 8。
number的值大于 0或省略,返回序列中
的下一个随机数。如果 number的值等于
0,返回最近生成的数。
5.1-10,Rnd[(number)]
返回一个随机数。
如果 number的值小于 0,每次都使
number
作为随机数种子得到的相同结果。如果
5.1-11,Round(expression
[,numdecimalplaces])
返回按照指定的小数位数进行四舍五
入运算的结果。
expression,数值表达式。
numdecimalplaces,小数点右边应保留

位数。如果忽略,则 Round函数返回整
数。
5.1-12,Sgn(number)
返回参数的符号函数值。
5.1-13,Sin(number)
返回指定参数的正弦值。
number,数值表达式,表示一个以弧
度为单位的角。
5.1-14,Sqr(number)
返回指定参数的平方根。
number,大于或等于 0的数值表达式。
5.1-15,Tan(number)
返回指定一个角的正切值。
number是数值表达式,表示一个
以弧度为单位的角度。
5.2-1,Array(arglist)
返回一个数组。 Variant型。
arglist 参数是一个用逗号隔开的值
表,这些值作为数组的各元素值。如
果不提供参数,则创建一个长度为 0
的数组。
5.2-2,Filter(sourcesrray,match[,
include[,compare]])
返回一个下标从零开始的数组,该数组包含基 于
指定筛选条件的一个字符串数组的子集。
sourcearray,要执行搜索的一维字符串数组。
match,要搜索的字符串。
include是一个 Boolean值,如果是 True,返回的是
包含 match子字符串的数组子集。如果是 False,返回的
是不包含 match子字符串的数组子集。
compare表示所使用的字符串比较类型 。
5.2-3,LBound(arrayname[,
dimension])
返回指定数组维可用的最小下标。
arrayname,数组名。
dimension,指定返回哪一维的下界。
1表示第一维,2 表示第二维,如此类
推。如果省略,就认为是 1。
5.2-4,Split(expression[,delimiter[,
limit[,compare]]])
返回一个下标从零开始的一维数组,它包含指定
数目的子字符串。
expression,包含子字符串和分隔符的字符串表达
式。
delimiter,字符串定界符。如果忽略,则使用空格
字符 (" ")作为分隔符。
limit,要返回的子字符串数,–1表示返回所有的子
字符串。
compare,数字值,表示判别子字符串时使用的比
较方式 。
5.2-5,UBound(arrayname[,
dimension])
返回指定的数组维可用的最大下标。
arrayname,数组名。
dimension,指定返回哪一维的上界
1表示第一维,2表示第二维,如
此等等。省略,则为 1。
5.3-1,InStr([start,]string1,string2[,
compare])
返回一字符串在另一字符串中最先出现的位置。
start,搜索的起点。如果省略,从第一个字符的
位置开始。
string1,被搜索的字符串表达式。
string2,要搜索的字符串表达式。
Compare,字符串比较类型。
InStrB函数作用于包含在字符串中的字节数据。 所
以 InStrB 返回的是字节位置,而不是字符位置。
5.3-2,InstrRev(stringcheck,
stringmatch[,start[,compare]])
返回一个字符串在另一个字符串中出现的位
置,从字符串的末尾算起。
stringcheck,被搜索的字符串表达式。
stringmatch,要搜索的字符串表达式。
start,搜索的开始位置。如果忽略,则使用 –
1,从上一个字符位置开始搜索。
compare,在判断子字符串时所使用的比较
方法。如果忽略,则执行二进制比较。
5.3-3,Join(sourcearray[,delimiter])
返回一个字符串,该字符串是通过连接某个数组
中的多个子字符串而创建的。
sourcearray,被连接子字符串的一维数组。
delimiter,在返回字符串中用于分隔子字符串的字
符。如果忽略该项,则使用空格 (" ")来分隔子字符串。如
果 delimiter是零长度字符串 (""),则列表中的所有项目都连
接在一起。
5.3-4,LCase(string)
字符串中大写字母转成小写。
string是任何有效的字符串表达式。
5.3-5,Left(string,length)
返回字符串中从左边算起指定数量的字符。
string,字符串。
length,指出将返回多少个字符。如果为 0,返回零
长度字符串 ("")。如果大于或等于 string 的字符数,则返
回整个字符串。
欲知 string的字符数,使用 Len 函数。
LeftB函数作用于包含在字符串中的字节数据。所以
length指定的是字节数,而不是要返回的字符数。
5.3-6,Len(string | varname)
返回字符串内字符的数目,或是存储一变
量所需的字节数。
string,字符串表达式。 Varname,变量
名称。
LenB 函数作用于字符串中的字节数据,
所以 LenB 返回的是用于代表字符串的字节数,
而不是返回字符串中字符的数量。
5.3-7,LTrim(string)
返回指定字符串的拷贝,没有前导 空
白 (LTrim)、尾随空白 (RTrim) 或前导和尾
随空白 (Trim)。
5.3-8,Mid(string,start[,length])
返回字符串中指定数量的字符。
string,字符串表达式。
start,字符开始位置。如果超过 string的字符
数,Mid返回零长度字符串 ("")。
length,要返回的字符数。如果省略或
length 超过文本的字符数,返回字符串中从 start
到尾端的所有字符。
MidB函数作用于字符串中包含的字节数据,
因此其参数指定的是字节数,而不是字符数。
5.3-9,Replace(expression,find,
replace[,start[,count[,compare]]])
返回一个字符串,该字符串中指定的子字符串已
被替换成另一子字符串,并且替换发生的次数也是指定的。
expression,字符串表达式。
find,要搜索的子字符串。
replace,用来替换的子字符串。
start,开始位置。如果忽略,从 1开始。
count,替换次数。如果忽略,缺省值是 –1,进行
所有可能的替换。
compare,数值,比较方式。
5.3-10,Right(string,length)
返回从字符串右边取出的指定数量的字符。
string,字符串表达式。
length,想返回的字符数。如果为 0,返回
零长度字符串 ("")。如果大于或等于 string的字符
数,则返回整个字符串。
RightB函数作用于包含在字符串中的字节数
据。所以 length指定的是字节数,而不是指定返回
的字符数。
5.3-11,RTrim(string)
返回指定字符串的拷贝,没有前导
空白 (LTrim)、尾随空白 (RTrim) 或前导和
尾随空白 (Trim)。
5.3-12,Space(number)
返回由特定数目空格组成的字符串。
number为字符串中想要的空格数。
5.3-13,StrComp(string1,string2[,
compare])
返回字符串比较的结果。
string1,string2为字符串表达式。
Compare,字符串比较的类型。如果省略,
Option Compare 的设置将决定比较的类型。
如果 string1小于 string2,返回 -1。 string1
等于 string2,返回 0。 string1大于 string2,返回 1。
string1 或 string 2为 Null,返回 Null。
5.3-14,StrConv(string,conversion,
LCID)
返回按指定类型转换的字符串。
string,字符串表达式。
conversion,整数,转换的类型。如
大写、小写、开头字母大写等。
LCID,如果与系统 LocaleID不同,则
为 LocaleID。
5.3-15,StrReverse(expression)
返回字符顺序反向的字符串。
expression是要反序的字符串 。
5.3-16,String(number,
character)
返回包含指定长度重复字符的字
符串。
number,字符串长度。
character,字符码或字符串表达
式,其第一个字符将用于建立返回的字
符串 。
5.3-17,Trim(string)
返回指定字符串的拷贝,没有前导空白
(LTrim)、尾随空白 (RTrim) 或前导和尾随空
白 (Trim)。
5.3-18,UCase(string)
返回小写字母转成大写的字符串。
string,字符串表达式 。
5.4-1,Date
返回系统日期。
若要设置系统日期,可
使用 Date 语句。
5.4-2,DateAdd(interval,
number,date)
返回一个加上一段时间间隔的日
期。
interval,字符串表达式,时间间
隔单位。有以下几种选择,见表 5.1:
表 5.1 时间间隔选项
yyyy 年
q 季
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 时
n 分钟
s 秒
表 5.1
number,数值表达式,是要加上
的时间间隔的数目。其数值可以为正数
(得到未来的日期),也可以为负数
(得到过去的日期)。
date日期或表示日期的文字。
DateAdd 返回值的格式由 Control
Panel设置决定,而不是由传递到 date
参数的格式决定。
5.4-3,DateDiff(interval,date1,date2[,
firstdayofweek[,firstweekofyear]])
返回两个指定日期间的时间差。
interval,字符串表达式,时间间隔单位。见
表 1-1。
Date1和 date2,计算中要用到的两个日期。
Firstdayofweek一个星期的第一天。如果未指
定,则以星期日为第一天。
firstweekofyear一年的第一周。如果未指定,
则以包含 1月 1日的星期为第一周 。
5.4-4,DatePart(interval,
date[,firstdayofweek[,
firstweekofyear]])
返回一个包含已知日期的指定时间部分。
参数 interval,date,Firstdayofweek、
firstweekofyear与 DateDiff函数相同,不再赘述。
可以使用 DatePart 计算某个日期在第几季度、
是星期几,目前为几点钟 。
5.4-5,DateSerial(year,month,day)
返回包含指定的年、月、日的日期。
year,从 100 到 9999间的整数,或一数值 表
达式。
month,day,任何数值表达式,值为有
效的月、日。
5.4-6,DateValue(date)
返回一个日期。
date通常是字符串表达式,表示从 100
年 1月 1日到 9999年 12月 31日之间的一个日期。
也可以是任何表达式,其所代表的日期、时
间在上述范围内 。
5.4-7,Day(date)
返回一个 1到 31之间的整数,表示一个
月中的某一日 。
5.4-8,Hour(time)
返回 0到 23之间的整数,表示一天之中
的某一钟点。
time可以是任何能够表示时刻的
Variant、数值表达式、字符串表达式或它们
的组合 。
5.4-9,Minute(time)
返回 0到 59之间的整数,表示一小时中
的某分钟。
time可以是任何能够表示时刻的
Variant、数值表达式、字符串表达式或它们
的组合 。
5.4-10,Month(date)
返回 1到 12之间的整数,表示一年中的
某月。
date可以是任何能够表示日期的 Variant、
数值表达式、字符串表达式或它们的组合。
5.4-11,MonthName(month[,
abbreviate])
返回一个表示指定月份的字符串。
month月份的数值表示。
abbreviate,Boolean值,表示月份名是否
缩写。缺省值为 False,不缩写 。
5.4-12,Now
返回当前系统日期
和时间。
5.4-13,Second(time)
返回 0到 59之间的整数,表示一分钟之
中的某个秒。
time可以是任何能够表示时刻的
Variant、数值表达式、字符串表达式或它们
的组合 。
5.4-14,Time
返回当前系统时间。
设置系统时间,可使用
Time语句 。
5.4-15,Timer
返回从午夜开始
到现在经过的秒数 。
5.4-16,TimeSerial(hour,minute,
second)
返回具有时、分、秒的时间。
hour,0 (12:00 A.M.) 到 23 (11:00 P.M.),
或一数值表达式。
minute,second,0到 59之间任何数
值表达式 。
5.4-17,TimeValue(time)
返回一个时间值。
time,通常是一个字符串表达式,表示
0:00:00到 23:59:59 之间的时刻。也可以是表示在
同一时间范围取值的任何其它表达式 。
5.4-18,Weekday(date,
[firstdayofweek])
返回一个整数,代表某个日期是星
期几。
date,能够表示日期的 Variant、数值
表达式、字符串表达式或它们的组合。
Firstdayofweek,指定一星期第一天的
常数。未指定,则以 vbSunday 为缺
省值。
5.4-19,WeekdayName(weekday,
abbreviate,firstdayofweek)
返回一个字符串,表示一星期中的某天。
weekday,数字值,表示一星期中的某天。
abbreviate,Boolean值,表示星期的名称是
否被缩写。缺省值为 False,不缩写。
firstdayofweek,数字值,表示一星期中第一
天。
5.4-20,Year(date)
返回表示年份的整数。
date是任何能够表示
日期的 Variant、数值表达
式、字符串表达式或它们
的组合 。
5.5-1,Asc(string)
返回代表字符串中首字母的字符代码。
Integer型。
AscB 返回第一个字节的字符代码。
AscW返回 Unicode 字符代码,若平台
不支持 Unicode,则与 Asc 函数功能相同 。
5.5-2,类型转换 具体类型转换函数见表 5.2。
表 5.2 类型转换函数
函数 返回类型 参数范围
CBool Boolean 任何有效的字符串或数值表达式。
CByte Byte 0 至 255。
CCur Currency -922,337,203,685,477.5808 至 922,337,203,685,477.5807。
CDate Date 任何有效的日期表达式。
CDbl Double 负数从 -1.79769313486231E308 至 -4.94065645841247E-324;
正数从 4.94065645841247E-324 至 1.79769313486232E308。
CDec Decimal 无小数位数值,为 +/-79,228,162,514,264,337,593,543,950,335;
28位小数数值,为 +/-7.9228162514264337593543950335;
最小的可能非零值是 0.0000000000000000000000000001。
CInt Integer -32,768 至 32,767,小数部分四舍五入。
CLng Long -2,147,483,648 至 2,147,483,647,小数部分四舍五入。
CSng Single 负数为 -3.402823E38 至 -1.401298E-45;
正数为 1.401298E-45 至 3.402823E38。
CStr String 依据 expression 参数返回 Cstr。
CVar Variant 若为数值,则范围与 Double 相同;
若不为数值,则范围与 String 相同。
表 5.2
5.5-3,Choose(index,choice-1[,
choice-2,..,[,choice-n]])
从参数列表中选择并返回一个值。
index,数值表达式或字段,界于 1 和可选择的项目数
之间。
choice,Variant 表达式,包含可选择项目的其中之一。
Choose根据 index的值来返回选择项列表中的某个值。
如果 index是 1,则返回列表中的第 1个选择项。如果 index
是 2,则会返回列表中的第 2个选择项,以此类推。
当 index小于 1或大于列出的选择项数目时,Choose 函
数返回 Null。
如果 index 不是整数,则会先四舍五入为与其最接近的
整数 。
5.5-4,Chr(charcode)
返回与指定的字符代码相关的字符。 String型。
例如,Chr(10) 可以返回换行字符。 charcode的正
常范围为 0 –255。然而,在 DBCS 系统,charcode 的
实际范围为 -32768 到 65535。
ChrB返回一个单字节,而不是返回一个字符,一个
字符可能是一个或两个字节。
ChrW 返回包含 Unicode 的 String,若在不支持
Unicode 的平台上,则其功能与 Chr 函数相同。
5.5-5,IIf(expr,truepart,falsepart)
根据表达式的值,来返回两部分中的一个值。
expr,用来判断真伪的表达式。如果 expr为
True,返回 truepart这部分的值或表达式。如果
expr 为 False,返回 falsepart这部分的值或表达式。
5.5-6,IsArray(varname)
返回 Boolean值,指
出变量是否为一个数组。
varname是一个变量
的标识符。
5.5-7,IsDate(expression)
返回 Boolean值,指出一个表达式是否可以
转换成日期。
expression是一个日期表达式或字符串表达
式,这里的字符串表达式是可以作为日期或时间来
认定的。
5.5-8,IsEmpty(expression)
返回 Boolean值,指出变量
是否已经初始化。
expression是一个数值或字符串
表达式。
5.5-9,IsError(expression)
返回 Boolean值,指出表
达式是否为一个错误值。
expression可以是任何
有效表达式。
5.5-10,IsMissing(argname)
返回 Boolean值,指出参数是否已经传递给
过程。
argname,过程参数名。
5.5-11,IsNull(expression)
返回 Boolean值,指出表
达式是否为空 (Null)。
expression,数值表达式
或字符串表达式。
5.5-12,IsNumeric(expression)
返回 Boolean值,指出表达式的运算结
果是否为数。
expression,数值表达式或字符串表达
式。
5.5-13,IsObject(identifier)
返回 Boolean值,指出标识符
是否表示对象变量。
identifier参数是一个变量名。
5.5-14,Partition(number,start,stop,
interval)
返回一个字符串,指定一个范围,在一系
列计算的范围中指定的数字出现在这个范围内。
number,整数,在所有范围中判断这个整
数是否出现。
start,整数,数值范围的开始值,这个数
值不能小于 0。
stop,整数,数值范围的结束值,这个数
值不能等于或小于 start。
5.5-15,Str(number)
将数值的转换为字符串。
number,包含数值表达式。
如果使用不同的小数点,可使用
CStr将数字转成字符串。
5.5-16,Switch(expr-1,value-1[,
expr-2,value-2 _ [,
expr-n,value-n]])
计算一组表达式列表的值,然后返回与表达式列
表中最先为 True 的表达式所相关的数值或表达式。
expr,要加以计算的表达式。
value,如果相关的表达式为 True,则返回此部分
的数值或表达式。
5.5-17,TypeName(varname)
返回变量的类型名。
varname,用户定义类型变量
之外的任何变量。
5.5-18,Val(string)
将字符串内的数字转换为数值。
string,字符串表达式。
在不能识别为数字的第一个字符上停止。
例如,Val(― 1615198th Street N.E.‖)返回值为
1615198。
Val("&HFFFF")将十六进制数值转换为十进
制数值 -1。
CDbl也可字符串转换为数字。
5.5-19,VarType(varname)
返回变量的子类型。
varname,用户定义类型变量
之外的任何变量。
5.6-1,CurDir[(drive)]
返回当前路径。
drive是一个字符串表达式,指
定驱动器。如果没有指定驱动
器,或 drive 是零长度字符串
(""),则 CurDir返回当前驱动器
的路径。
5.6-2,Dir[(pathname[,attributes])]
返回一个文件名或文件夹名称。 String
型。
pathname,路径名。
attributes文件属性。
5.6-3,EOF(filenumber)
返回一个逻辑值,True表明
已经到达文件的结尾。
filenumber是文件号。
5.6-4,FileAttr(filenumber,
returntype)
返回使用 Open语句所打开文件
的方式。 Long型。
filenumber,任何有效的文件号。
returntype,指出返回信息的类型。
1—返回数值,2—文件句柄。
5.6-5,FileDateTime(pathname)
返回文件被创建或最后修改的日期
和时间。
pathname是用来指定一个文件名
的字符串表达式,可以包含目录及
驱动器。
5.6-6,FileLen(pathname)
返回文件的长度,单位是字节。
pathname是用来指定一个文件名
的字符串表达式,可以包含目录及
驱动器。
若要取得一个打开文件的长度,可
使用 LOF 函数。
5.6-7,FreeFile[(rangenumber)]
返回一个代表下一个可供 Open 语句使
用的文件号。
rangenumber指定一个范围,以便返回该范
围之内的下一个可用文件号。指定 0(缺省
值)则返回一个介于 1–255之间的文件号。
指定 1则返回一个介于 256–511之间的文件号。
使用 FreeFile提供一个尚未使用的文件号。
5.6-8,GetAttr(pathname)
返回文件或文件夹的属性。
Integer型。
pathname用来指定一个文件名
的字符串表达式。可以包含文件
夹及驱动器。
5.6-9,Loc(filenumber)
返回一个 Long,在已打
开的文件中指定当前读 /写
位置。
filenumber,文件号。
5.6-10,LOF(filenumber)
返回打开的文件的大小,以
字节为单位。
filenumber是文件号。
对于尚未打开的文件,使用
FileLen 函数将得到其长度
5.6-11,Seek(filenumber)
返回打开文件中当前的读 /写位置。
filenumber是文件号。
5.7-1,Input(number,[#]filenumber)
返回 String,它包含以 Input 或 Binary
方式打开的文件中的字符。
number,要返回的字符个数。
filenumber,文件号。
对于文本文件中包含的字节数据要使
用 InputB函数。对于 InputB来说,
number指定的是要返回的字节个数,而
不是要返回的字符个数。
5.7-2,InputBox(prompt[,title] [,default] [,
xpos] [,ypos] [,helpfile,context])
在一对话框来中显示提示,等待用户输入正文或按下按钮,并返回文
本框内容。
Prompt,对话框出现的字符串表达式。如果 prompt包含多个行,则可
在各行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或回车换行符的组合
(Chr(13) & Chr(10)) 来分隔。
Title,对话框标题栏字符串表达式。如果省略 title,则把应用程序名放
入标题栏中。
Default,文本框中的字符串表达式,在没有其它输入时作为缺省值。如
果省略 default,则文本框为空。
Xpos,指定对话框的左边与屏幕左边的水平距离。如果省略 xpos,则
对话框会在水平方向居中。
Ypos,指定对话框的上边与屏幕上边的距离。如果省略 ypos,则对话
框被放置在屏幕垂直方向距下边大约三分之一的位置。
Helpfile,帮助文件,提供上下文相关的帮助。如果已提供 helpfile,则
必须提供 context。
Context,帮助主题的上下文编号。
5.7-3,MsgBox(prompt[,buttons] [,title] [,helpfile,
context])
在对话框中显示消息,等待用户单击按钮,并返回一个
整数告诉用户单击哪一个按钮。
Prompt,字符串表达式,显示在对话框中的消息。
Buttons,指定显示按钮的数目及形式,使用的图标样式,
缺省按钮是什么以及消息框的强制回应等。如果省略,则
buttons的缺省值为 0。见表 5.3。
Title,对话框标题。如果省略,则将应用程序名放在标题
栏中。
Helpfile,帮助文件。如果提供了 helpfile,必须提供
context。
Context,数值表达式,帮助主题的上下文编号 。
表 5.3 buttons参数
组 常量 值 描述
第一

vbOKOnly 0 只显示 OK 按钮。
VbOKCancel 1 显示 OK 及 Cancel 按钮。
VbAbortRetryIgnore 2 显示 Abort,Retry 及 Ignore 按钮。
VbYesNoCancel 3 显示 Yes,No 及 Cancel 按钮。
VbYesNo 4 显示 Yes 及 No 按钮。
VbRetryCancel 5 显示 Retry 及 Cancel 按钮。
第二

VbCritical 16 显示 Critical Message 图标。
VbQuestion 32 显示 Warning Query 图标。
VbExclamation 48 显示 Warning Message 图标。
VbInformation 64 显示 Information Message 图标。
第三

vbDefaultButton1 0 第一个按钮是缺省值。
vbDefaultButton2 256 第二个按钮是缺省值。
vbDefaultButton3 512 第三个按钮是缺省值。
vbDefaultButton4 768 第四个按钮是缺省值。
第四

vbApplicationModal 0 应用程序强制返回;应用程序一直被挂起,直到用户对消息框作出响应才继续工
作。
vbSystemModal 4096 系统强制返回;全部应用程序都被挂起,直到用户对消息框作出响应才继续工作。
其它
vbMsgBoxHelpButton 16384 将 Help按钮添加到消息框
VbMsgBoxSetForeground 65536 指定消息框窗口作为前景窗口
vbMsgBoxRight 524288 文本为右对齐
vbMsgBoxRtlReading 1048576 指定文本应为在希伯来和阿拉伯语系统中的从右到左显示
第一组值 (0–5) 描述了对话框中显示的按钮的类型与数目;
第二组值 (16,32,48,64) 描述了图标的样式;第三组值 (0,256,
512,768) 说明哪一个按钮是缺省值;而第四组值 (0,4096) 则决定
消息框的强制返回性。将这些数字相加以生成 buttons 参数值的
时候,每组只能取一个数字。
常量都是 VBA指定的。可以在程序代码中使用这些常数名称,
而不必使用数值。
MsgBox函数返回值见表 5.4。
表 5.4 MsgBox函数返回值
常量 值 描述
vbOK 1 OK
vbCancel 2 Cancel
vbAbort 3 Abort
vbRetry 4 Retry
vbIgnore 5 Ignore
vbYes 6 Yes
vbNo 7 No
5.7-4,Spc(n)
与 Print # 语句或 Print方法一起
使用,对输出进行定位。
n,在显示或打印下一个表达式
之前插入的空白数。
5.7-5,Tab[(n)]
与 Print # 语句或 Print 方法一起
使用,对输出进行定位。
n,在显示或打印下一个表达式之
前移动的列数。若省略此参数,则
Tab将插入点移动到下一个打印区
的起点。
5.8-1,DDB(cost,salvage,life,
period[,factor])
返回指定一笔资产在一特定期间内的折
旧。可使用双下落收复平衡方法或其它指
定的方法进行计算。 Double型。
cost,资产的初始成本。
salvage,使用年限结束时的资产价值。
life,资产的可用年限。
period,计算资产折旧所用的那一期间。
factor,收复平衡下落时的速度。如果省
略,缺省值为 2(双下落方法)。
5.8-2,FV(rate,nper,pmt[,pv[,
type]])
返回一个定期定额支付且利率固定的年金。 Double型。
rate,每一期的利率。
nper付款总期限。
pmt 每一期的付款金额。
pv未来一系列付款(或一次付清款项)的现值。缺省值为
0。
type贷款到期时间。缺省值为 0。
年金是一段时间内一系列固定现金支付。年金可以是贷款
(如房屋抵押贷款),也可以是一笔投资(如按月储蓄计
划)。
对所有参数,用负数表示现金支出(如储蓄存款),而用
正数表示现金收入(如红利支票)。
5.8-3,IPmt(rate,per,nper,pv[,fv[,
type]])
返回在一段时间内对定期定额支付且利率
固定的年金所支付的利息值。
rate,每一期的利率。
per,付款周期。
nper,一笔年金的付款总期数。
pv,未来一系列付款或收款的现值。
fv,在付清贷款后所希望的未来值或现金
结存。缺省值为 0。
type,贷款到期时间。缺省值为 0。
5.8-4,IRR(values()[,guess])
返回周期性现金流(支出或收入)
的内部利率。
values(),Double数组,现金流
值。
Guess,返回的估算值。缺省值
为 0.1 (10%)。
5.8-5,MIRR(values(),finance_rate,
reinvest_rate)
返回修改过的周期性现金流(支出或收入)
的内部利率。
values(),Double 数组,指定现金流值。
finance_rate,财务成本上的支付利率。
reinvest_rate,由现金再投资所得利率。
5.8-6,NPer(rate,pmt,pv[,fv[,
type]])
返回定期定额支付且利率固定的总
期数。
rate,每一期的利率。
pmt,每一期所付金额。
fv,在付清贷款后所希望的未来值或现
金结存。缺省值为 0。
type贷款到期时间。缺省值为 0。表示
在贷款周期结束时到期。
5.8-7,NPV(rate,values())
返回根据一系列定期的现金流(支
付和收入)和贴现率而定的投资净现
值。
rate,在一期间内的贴现率,用十
进制表示。
values(),Double 数组,现金流值。
5.8-8,Pmt(rate,nper,pv[,fv[,
type]])
返回根据定期定额支付且利率固定的年金
支付额。
rate,每一期的利率。
nper,一笔年金的付款总期数。
pv,未来一系列付款或收款的现值。
fv,在付清贷款后所希望的未来值或现金
结存。缺省值为 0。
type贷款到期时间。缺省值为 0。表示贷
款周期结束时到期。
5.8-9,PPmt(rate,per,nper,pv[,fv[,type]])
返回在定期定额支付且利率固定的年金的指定期
间内的本金偿付额。
rate,每一期的利率。
per,付款周期。
nper,一笔年金的付款总期数。
pv,未来一系列付款或收款的现值。
fv,在付清贷款后所希望的未来值或现金结存值。缺
省值为 0。
type贷款到期时间。缺省值为 0。表示贷款周期结束
时到期。
5.8-10,PV(rate,nper,pmt[,fv[,type]])
返回在未来定期、定额支付且利率固定的
年金现值。
rate,每一期的利率。
nper,一笔年金的付款总期数。
pmt,每一期的付款金额。
fv,在付清贷款后所希望的未来值或现金
结存。缺省值为 0。
type贷款到期时间。缺省值为 0。表示贷
款周期结束时到期。
5.8-11,Rate(nper,pmt,pv[,fv[,
type[,guess]]])
返回每一期的年金利率。
nper,一笔年金的付款总期数。
pmt,每一期的付款金额。
pv,未来一系列付款或收款的现值。
fv,在付清贷款后所希望的未来值或现金结存。
缺省值为 0。
type贷款到期时间。缺省值为 0。表示贷款周
期结束时到期。
guess,Rate返回的估算值。缺省值为 0.1
(10%)。
5.8-12,SLN(cost,salvage,life)
返回在一期里指定一项资产的直线折旧。
cost,资产的初始成本。
salvage,资产在可用年限结束后的价值。
life,资产的可用年限 。
5.8-13,SYD(cost,salvage,life,
period)
返回某项资产在一指定期间用年数总计法
计算的折旧。
cost,产的初始成本。
salvage,资产在可用年限结束后的价值。
life,资产的可用年限。
period,计算资产折旧所用的那一期间。
5.9-1,Format(expression[,
format[,firstdayofweek[,
firstweekofyear]]])
返回字符串,其中含有一个表达式,它是根
据格式表达式中的指令来格式化的。
expression,任何有效的表达式。
format,有效的命名表达式或用户自定义格式表
达式。
firstdayofweek,表示一星期的第一天。
firstweekofyear,表示一年的第一周。
例如:
MyStr = Format(Time,"Long Time")
以系统设置的长时间格式返回当前系统时间。
5.9-2,FormatCurrency(Expression[,NumDigitsAfterDecimal
[,IncludeLeadingDigit[,
UseParensForNegativeNumbers [,GroupDigits]]]])
按格式返回一个货币值,它使用系统控制面板中定义的货币
符号。
Expression,要格式化的表达式。
NumDigitsAfterDecimal,表示小数点右边的显示位数。缺省值为
–1,表示使用计算机的区域设置值。
IncludeLeadingDigit,表示小数点前是否显示一个零。
UseParensForNegativeNumbers,表示是否把负数值放在园括号
内。
GroupDigits,表示是否用组分隔符对数字进行分组,组分隔符由
计算机的区域设置值指定。
5.9-3,FormatDateTime(Date[,NamedFormat])
按格式返回一个日期或时间表达式值。
Date,要被格式化的日期表达式。
NamedFormat,表示日期 /时间所使用的格式。
5.9-4,FormatNumber(Expression[,NumDigitsAfterDecimal
[,IncludeLeadingDigit [,
UseParensForNegativeNumbers [,GroupDigits]]]])
按格式返回一个数字表达式值。
Expression,要被格式化的表达式。其余参数同
FormatCurrency函数。
5.9-
5,FormatPercent(Expression[,NumDigitsAfterDecimal
[,IncludeLeadingDigit [,
UseParensForNegativeNumbers [,GroupDigits]]]])
按格式返回一个百分比(乘以 100)的表
达式值,后面有 %符号。
参数同 FormatCurrency函数。
5.10-1,CallByName(object,procname,
calltype,[args()])
执行一个对象的方法,或者设置或返回一个对象的属
性。
object对象的名称。 procname对象的属性名称或者方法名
称的字符串表达式。 calltype调用过程的类型。 args()变体型数
组。
在下面的例子中,第一行使用 CallByName 来设置一个文
本框的 MousePointer 属性,第二行得到 MousePointer 属性
的值,第三行调用 Move 方法来移动文本框:
CallByName Text1,"MousePointer",vbLet,vbCrosshair
Result = CallByName (Text1,"MousePointer",vbGet)
CallByName Text1,"Move",vbMethod,100,100
5.10-2,Command
返回命令行的参数部分,该命令行用
于装入 Microsoft Visual Basic 或
Visual Basic 开发的可执行程序。
Visual Basic Command 函数在
Microsoft Office 应用程序中不可用。
5.10-3,CreateObject(class,[servername])
创建并返回一个对 ActiveX 对象的引用。
class,要创建的应用程序名称和类。格式为,appname.objecttype。其中,
appname应用程序名,objecttype对象的类型或类。
servername要在其上创建对象的网络服务器名称。如果 servername 是一个空字符串
(""),即使用本地机器。
例如:
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")
创建一个 Excel工作表。
对象创建后,就可以在代码中使用自定义的对象变量来引用该对象。在下面的
示例中,可以使用对象变量 ExcelSheet 来访问新建对象的属性和方法,以及访问
Microsoft Excel 的其它对象,包括应用程序对象和单元格集合。
'设置 Application 对象使 Excel 可见
ExcelSheet.Application.Visible = True
'在表格的第一个单元中写些文本
ExcelSheet.Application.Cells(1,1).Value = "This is column A,row 1"
'将该表格保存到 C:\test.xls 目录
ExcelSheet.SaveAs "C:\TEST.XLS"
'使用应用程序对象的 Quit 方法关闭 Excel。
ExcelSheet.Application.Quit
'释放该对象变量
Set ExcelSheet = Nothing
5.10-4,CVErr(errornumber)
返回错误号。
errornumber是任何有效的错误号。
可以在过程中使用 CVEr函数来创建用户自定
义错误。例如,如果创建一个函数,它可以接
受若干个参数,且正常返回一个字符串,则可
以让函数来判断输入的参数,确认它们是在可
接受的范围内。如果不是的话,此函数将不会
返回所要的字符串。在这种情况下,CVErr 可
以返回一个错误号,并告知应该采取的行动 。
5.10-5,DoEvents( )
转让控制权,以便让操作系统处理其
它的事件。
DoEvents将控制权传给操作系统。当
操作系统处理完队列中的事件,并且在
SendKeys 队列中的所有键也都已送出
之后,返回控制权。
5.10-6,Environ({envstring |
number})
返回操作系统环境变量。 String型。
envstring,包含一个环境变量名的
字符串表达式。
number,数值表达式,用来表示环
境字符串在环境字符串表格中的数值
顺序。
5.10-7,Error[(errornumber)]
返回对应于已知错误号的错
误信息。
errornumber为任何有效的错误
号。如果省略 errornumber,就
会返回与最近一次运行时错误对
应的消息。
5.10-8,GetAllSettings(appname,
section)
从 Windows注册表中返回应用程序项目
的所有注册表项设置及其相应值。
appname,应用程序或工程的名称。
section,区域名称,并要求该区域有注
册表项设置。
GetAllSettings返回内容为字符串的二维
数组,该二维数组包含指定区域中的所
有注册表项设置及其对应值。
5.10-9,GetObject([pathname] [,
class])
返回文件中的 ActiveX 对象的引用。
pathname,待检索对象的文件的全路径和名称。
class对象的类的字符串。其中,class 参数的格式为
appname.objecttype。 appname为对象的应用程序名称。
objecttype为待创建对象的类型或类。
使用 GetObject 函数可以访问文件中的 ActiveX 对象,可
以使用 Set 语句将 GetObject 返回的对象赋给对象变量。例如:
Dim CADObject As Object
Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")
会启动与 pathname 相关联的应用程序,同时激活指定文
件中的对象。
5.10-10,GetSetting(appname,
section,key[,default])
从 Windows注册表的应用程序项目中返
回注册表项设置值。
appname,应用程序或工程的名称。
section,区域名称。
key,字符串表达式,返回注册表项设置
的名称。
default,如果注册表项设置中没有设置值,
则返回缺省值。如果省略,则 default取值
为长度为零的字符串 ("")。
5.10-11,IMEStatus
返回一个 Integer,用来指定当前
Windows的输入法 (IME)方式。
中文地区的返回值见表 5.5。
表 5.5 IMEStatus函数返回值
常数 值 描述
vbIMEModeNoCo
ntrol
0 不控制 IME(缺省)
vbIMEModeOn 1 打开 IME
vbIMEModeOff 2 关闭 IME
5.10-12,MacID(常量 )
此函数用在 Macintosh上,将长
为 4个字符的常量转换成被 Dir,
Kill,Shell,和 AppActivate.使用
的值。
5.10-13,MacScript 脚本
执行一个脚本并返回由此脚本返
回的值,如果脚本有返回值的话。
5.10-14,QBColor(color)
返回表示所对应颜色值的 RGB 颜
色码。
color是 0到 15的整型。
5.10-15,RGB(red,green,blue)
返回一个 Long整数,用来表示一
个 RGB颜色值。
参数范围从 0到 255,表示颜色的
成份。
5.10-16,Shell(pathname[,windowstyle])
执行一个可执行文件。如果成功,返回
代表这个程序的任务 ID,若不成功,返回 0。
pathname,要执行的程序名,以及必需的
参数或命令行变量,可包括文件夹和驱动器。
Windowstyle,窗口的样式。省略,则最小
化。