VB 函数参考二(H-O)

来源:互联网 发布:校园网网络设计描述 编辑:程序博客网 时间:2024/06/11 10:19

VB 函数参考二(H-O)


Hex
Hour
Initialize
InputBox
InStr
Int
IsDate
IsNumeric
KeyDown
KeyPress
KeyUp
LCase
Left
Len
LinkClose
LinkError
LinkNotify
LinkOpen
Load
LOC
LOF
Log
LostFocus
LTrim
Mid
Month
MouseDown
MouseMove
MouseUP
MsgBox
Now
Oct
OLECompleteDrag
OLEDragDrop
OLEDragOver
OLEGiveFeedback
OLESetData
OLEStartDrag

=======

Hex


【名称】
    Hex
【类别】
    转换函数
【原形】
    Hex(number)
【参数】
    number 参数为任何有效的数值表达式或字符串表达式。
【返回值】
    返回一个String。
【异常/错误】
    无
【描述】
    返回一个代表十六进制数值的 String。
【示例】
    本示例使用 Hex 函数来得到某数值的 16 进制值。
    Dim MyHex
    MyHex = Hex(5) ' 返回 5。
    MyHex = Hex(10) ' 返回 A。
    MyHex = Hex(459) ' 返回 1CB。
【备注】
    如果 number 还不是一个整数,那么在执行前会先被四舍五入成最接近的整数。
    如果 number 为
    所得为
    Null
    Null
    Empty
    零 (0)
    任何其他的数字
    最多可到八个十六进制字符。
    适当范围内的数字,前缀以 &H,可以直接表示十六进制数字。例如,十六进制表示法的 &H10 代表十进制的 16。

=======

Hour


【名称】
    Hour
【类别】
    日期和时间函数
【原形】
    Hour(time)
【参数】
    必选的,time 参数可以是任何能够表示时刻的 Variant、数值表达式、字符串表达式或它们的组合。如果 time 包含 Null,则返回 Null。
【返回值】
    返回一个 Variant (Integer),其值为 0 到 23 之间的整数,表示一天之中的某一钟点。
【异常/错误】
    无
【描述】
    返回时间参数中的小时数,函数值为0到23之间的整数。例如:执行Print Hour(Now)后的结果为:14。
【示例】
    本示例使用 Hour 函数将指定的时间转换为小时数。在开发环境中,日期和时间的原义会根据系统的地区设置,以短式日期和时间格式显示。
    Dim MyTime, MyHour
    MyTime = #4:35:17 PM# ' 指定一时间。
    MyHour = Hour(MyTime) ' MyHour 的值为 16。
【备注】
      日期和时间函数的函数名、函数值类型和函数功能如下表所示。针对表中的举例,设当前的系统时间为2003年4月23日下午两点18分30秒。
    表 日期和时间函数
    函数名
    函数值类型
    功能
    举例
    Now
    Date
    返回当前的系统日期和系统时间
    执行Print Now后的结果为:2003-4-23 14:18:30
    Date[$][()]
    Date
    返回当前的系统日期
    执行Print Date后的结果为:2003-4-23
    Time[$][()]
    Date
    返回当前的系统时间
    执行Print Time后的结果为:14:18:30
    DateSerial(年,月,日)
    Integer
    相对1899年12月30日(为0)返回一个天数值。其中的年、月、日参数为数值型表达式
    执行Print DateSerial (99,06,01)- DateSerial (99,05,01) 后的结果为:31
    DateValue(C)
    Integer
    相对1899年12月30日(为0)返回一个天数值,参数C为字符型表达式
    执行Print DateValue (“99,06,01”)-DateValue(“99,05,01”) 后的结果为:31
    Year(D)
    Integer
    返回日期D的年份,D可以是任何能够表示日期的数值、字符串表达式或它们的组合。其中,参数为天数时,函数值为相对于1899年12月30日后的指定天数的年号,其取值在1753到2078之间
    执行Print Year(Date) 后的结果为:2003
    执行Print Year(365) 后的结果为:1900
    1899年12月30日后的365天是1900年
    Month(D)
    Integer
    返回日期D的月份,函数值为1到12之间的整数
    执行Print Month(Date) 后的结果为:8
    Day(D)
    Integer
    返回日期D的日数,函数值为1到31之间的整数
    执行Print Day(Date) 后的结果为:23
    WeekDay(D)
    Integer
    返回日期D是星期几, 函数值与星期的对应关系如表2.6所示
    执行Print WeekDay (Date)后的结果为:3
    Hour(T)
    Integer
    返回时间参数中的小时数,函数值为0到23之间的整数
    执行Print Hour(Now)后的结果为:14
    Minute(T)
    Integer
    返回时间参数中的分钟数,函数值为0到59之间的整数
    执行Print Minute(Now) 后的结果为:18
    Second(T)
    Integer
    返回时间参数中的秒数,函数值为0到59之间的整数
    执行PrintSecond(Now) 后的结果为:30
    DateAdd(时间单位,时间,D)
    Date
    返回参考日期D加上一段时间T之后的日期,时间单位为一个字符串,表示所要加上的时间的单位,其取值及含义如表2.7所示
    执行Print DateAdd(”m”,2,Date) 后的结果为:
    2003-6-23。
    执行Print DateAdd(”q”,1,Date) 后的结果为:
    2003-7-23
    DateDiff(时间单位,D1,D2)
    Long
    返回两个指定日期D1和D2之间的间隔时间。如果日期D1比D2早,则函数值为正数,否则函数值为负数。时间单位,同DateAdd函数的时间单位参数
    执行Print DateDiff (“m”,#6/16/2002#,#6/16/2003#后的结果为:12
    执行Print DateDiff (“m”,#6/16/2003#,#6/16/2002#后的结果为:-12
    IsDate(参数)
    Boolean
    判断参数是否可以转换成日期,参数可以是任何类型的有效表达式。如果参数的值可转化成日期型数据,则函数值为Tree,否则函数值为False。在Microsoft Windows中,其范围为公元100年1月1日至公元9999年12月31日。
    IsDate(99-6-18)=False
    IsDate(“99-6-18")=True
      说明:(1)在表2.5中,日期参数D是任何能够表示为日期的数值型表达式、字符串型表达式或它们的组合。时间参数T是任何能够表示为时间的数值型表达式、字符串型表达式或它们的组合。
      当参数D是数值型表达式时,其值表示相对于1899年12月30日前后天数,负数是1899年12月30日以前,正数是1899年12月30日以后。
      (2)星期函数Weekday(D)的函数值与星期的对应关系如下表所示。
    表 星期函数Weekday(D)的函数值与星期的对应关系
    函数值
    星期
    函数值
    星期
    1
    星期日
    5
    星期四
    2
    星期一
    6
    星期五
    3
    星期二
    7
    星期六
    4
    星期三
    
    
    

=======

Initialize


【名称】
    Initialize
【类别】
    事件过程
【原形】
      Private Sub object_Initialize( )
【参数】
    object 所在处代表对象表达式,其值是“应用于”列表中的一个对象。
【描述】
    当应用程序创建 Form、MDIForm、User 控件、Property Page Webclass、DHTML Page Designer或类的实例时发生。
【示例】
【备注】
    当应用程序创建一个窗体时,将触发Initialize事件。通过Initialize事件可以初始化窗体需要使用的数据。窗体的Initialize事件发生在Load事件之前。
    如下情况触发 Initialize 事件:
    用 CreateObject 函数创建类的一个实例,如:
    Set X = CreateObject("Project1.MyClass")
    引用窗体或类实例的属性或事件,该属性或事件由用户代码自动创建。
    MyForm.Caption = "Example"
      应用此事件初始化 Form、MDIForm、或类所用的数据。对 Form 或 MDIForm,Initialize 事件在 Load 事件之前发生。

=======

InputBox


【名称】
    InputBox
【类别】
    输入函数
【原形】
    InputBox[$](prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])
    或InputBox[$](提示,[,标题”][默认值][,x坐标,y坐标]) [, 帮助文件,上下文编号])
【参数】
    必选的,varname 参数是一个 Variant,包含用户定义类型变量之外的任何变量。
    InputBox 函数的语法具有以下几个命名参数:
    部分
【描述】
    Prompt
    (提示)
    必需的。作为对话框消息出现的字符串表达式。prompt 的最大长度大约是 1024 个字符,由所用字符的宽度决定。如果 prompt 包含多个行,则可在各行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或回车换行符的组合 (Chr(13) & Chr(10)) 来分隔。
    Title
    (标题)
    可选的。显示对话框标题栏中的字符串表达式。如果省略 title,则把应用程序名放入标题栏中。
    Default
    (默认值)
    可选的。显示文本框中的字符串表达式,在没有其它输入时作为缺省值。如果省略 default,则文本框为空。
    Xpos
    (x坐标)
    可选的。数值表达式,成对出现,指定对话框的左边与屏幕左边的水平距离。如果省略 xpos,则对话框会在水平方向居中。
    Ypos
    (y坐标)
    可选的。数值表达式,成对出现,指定对话框的上边与屏幕上边的距离。如果省略 ypos,则对话框被放置在屏幕垂直方向距下边大约三分之一的位置。
    Helpfile
    (帮助文件)
    可选的。字符串表达式,识别帮助文件,用该文件为对话框提供上下文相关的帮助。如果已提供 helpfile,则也必须提供 context。
    Context
    (上下文编号)
    可选的。数值表达式,由帮助文件的作者指定给某个帮助主题的帮助上下文编号。如果已提供 context,则也必须要提供 helpfile。
    
【返回值】
【异常/错误】
    无
【描述】
    在一对话框来中显示提示,等待用户输入正文或按下按钮,并返回包含文本框内容的 String。在应用程序的运行过程中,出现一个[输入]对话框,用来给一变量赋值。
【示例】
    本示例说明使用 InputBox 函数来显示用户输入数据的不同用法。如果省略 x 及 y 坐标值,则会自动将对话框放置在两个坐标的正中。如果用户单击“确定”按钮或按下“ENTER”按键,则变量 MyValue 保存用户输入的数据。如果用户单击“取消”按钮,则返回一零长度字符串。
    Dim Message, Title, Default, MyValue
    Message = "Enter a value between 1 and 3" ' 设置提示信息。
    Title = "InputBox Demo" ' 设置标题。
    Default = "1" ' 设置缺省值。
    ' 显示信息、标题及缺省值。
    MyValue = InputBox(Message, Title, Default)
    
    ' 使用帮助文件及上下文。“帮助”按钮便会自动出现。
    MyValue = InputBox(Message, Title, , , , "DEMO.HLP", 10)
    
    ' 在 100, 100 的位置显示对话框。
    MyValue = InputBox(Message, Title, Default, 100, 100)
【备注】
      如果同时提供了 helpfile 与 context,用户可以按 F1 来查看与 context 相应的帮助主题。某些主应用程序,例如,Microsoft Excel,会在对话框中自动添加一个 Help 按钮。如果用户单击 OK 或按下ENTER ,则 InputBox 函数返回文本框中的内容。如果用户单击 Cancel,则此函数返回一个长度为零的字符串 ("")。
    注意 如果还要指定第一个命名参数以外的参数,则必须在表达式中使用 InputBox。如果要省略某些位置参数,则必须加入相应的逗号分界符。
    ● [$]:有它时,返回的是字符型数据;没有它时,返回的是变体型数据。
    ● [提示]参数:它是一个字符串,用来提示用户输入什么内容。它可以是汉字,可以显示多行文字,但必须在每行文字的末尾加回车Chr(13)和换行Chr(10)。
    ● [标题]参数:它是一个字符串,是[输入]对话框标题栏中的标题。它是可选项,省略此参数时,则将工程名作为标题。
    ● [默认值]参数:为可选项,用来在[输入]对话框的输入文本框中显示一个默认值。
    ● [x坐标]和[y坐标]参数:表示对话框(左上角)在屏幕上出现的位置。如果省略此参数,则对话出现在屏幕的中央。屏幕左上角为原点。
    ● 此函数常常出现在赋值号的右边,用来给赋值号左边的变量赋值。

=======

InStr


【名称】
    InStr
【类别】
    字符串函数
【原形】
    InStr([start, ]string1, string2[, compare])
【参数】
    InStr 函数的语法具有下面的参数:
    部分
    说明
    start
    可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果 start 包含 Null,将发生错误。如果指定了 compare 参数,则一定要有 start 参数。
    string1
    必要参数。接受搜索的字符串表达式。
    string2
    必要参数。被搜索的字符串表达式。
    Compare
    可选参数。指定字符串比较。如果 compare 是 Null,将发生错误。如果省略 compare,Option Compare 的设置将决定比较的类型。
    ?compare 参数设置为:
    常数
    值
【描述】
    vbUseCompareOption
    -1
    使用Option Compare 语句设置执行一个比较。
    vbBinaryCompare
    0
    执行一个二进制比较。
    vbTextCompare
    1
    执行一个按照原文的比较。
    vbDatabaseCompare
    2
    仅适用于Microsoft Access,执行一个基于数据库中信息的比较。
    
【返回值】
      返回0、1、2、-1或Null等。
【异常/错误】
    无
    描述InStr([start, ]string1, string2[, compare])
    返回指定一字符串在另一字符串中最先出现的位置。在字符串string1中,从start开始找string2,省略start时从string1头开始找。找不到时,函数值为0。
    如果
    InStr返回
    string1 为零长度
    0
    string1 为 Null
    Null
    string2 为零长度
    Start
    string2 为 Null
    Null
    string2 找不到
    0
    在 string1 中找到string2
    找到的位置
    start > string2
    0
    
【示例】
    本示例使用 InStr 函数来查找某字符串在另一个字符串中首次出现的位置。
    Dim SearchString, SearchChar, MyPos
    SearchString ="XXpXXpXXPXXP" ' 被搜索的字符串。
    SearchChar = "P" ' 要查找字符串 "P"。
    ' 从第四个字符开始,以文本比较的方式找起。返回值为 6(小写 p)。
    ' 小写 p 和大写 P 在文本比较下是一样的。
    MyPos = Instr(4, SearchString, SearchChar, 1)
    ' 从第一个字符开使,以二进制比较的方式找起。返回值为 9(大写 P)。
    ' 小写 p 和大写 P 在二进制比较下是不一样的。
    MyPos = Instr(1, SearchString, SearchChar, 0)
    ' 缺省的比对方式为二进制比较(最后一个参数可省略)。
    MyPos = Instr(SearchString, SearchChar) ' 返回 9。
    MyPos = Instr(1, SearchString, "W") ' 返回 0。
【备注】
    InStrB 函数作用于包含在字符串中的字节数据。所以 InStrB 返回的是字节位置,而不是字符位置。
      函数值类型和函数功能如下表所示。
    字符串函数
    函数名
    函数值类型
    功能
    举例
    Chr$(N)
    String
    求以N为ASCII码的字符
    Chr(65)=“A”
    Str$(N)
    String
    将N转换为字符串,如果N>0,则返回的字符串中包含一个前导空格,暗示有一个正号
    Str$(-12345)=“-12345”
    Str(12345)= “ 12345”
    Len(C)
    Long
    求字符串C中包含的字符个数
    Len(“Abab字符串4")=8
    Ucase$(C)
    String
    将字符串C中的小写英文字母转换成大写英文字母
    Ucase(“abABabc")="ABABABC"
    Lcase$(C)
    String
    将字符串C中的大写英文字母转换成小写英文字母
    Ucase(“abABabc")="abababc"
    Space$(N)
    String
    产生N个空格组成的字符串
    Len(Space(6))=6
    String$(N,C)
    String
    产生N个由C指定的第一个字符组成的字符串,C可以是ASCII码数
    String(6,”ABC”)=“AAAAAA”
    String(6,65)=“AAAAAA”
    Left(C,N)
    String
    从字符串C的最左边开始,截取N个字符
    Left$(“ABCDEF",3)="ABC”
    Right$(C,N)
    String
    从字符串C的最右边开始,截取N个字符
    Right$ (“ABCDEF",3)="DEF”
    Mid$(C,N1 [,N2 ])
    String
    从字符串C中N1指定的起始位置处开始,截取N2个字符
    Mid(“ABCDEF”,2,3)=”BCD”
    Mid(“ABCDEF”,2)=”BCDEF”
    Ltrim$(C)
    String
    删除字符串C中的前导空格
    Ltrim(“ ABCD ”)="ABCD ”
    Rtrim$(C)
    String
    删除字符串C中的尾部空格
    Ltrim(“ ABCD ”)=" ABCD”
    Trim$(C)
    String
    删除字符串参数中的前导和尾部空格
    Ltrim(“ ABCD ”)="ABCD”
    StrComp(C1,C2[,N])
    Integer
    比较字符串C1和字符串C2的大小,N是比较类型,取值0、1或2
    StrComp(“ABC",”abc",1)=0
    StrComp(“ABC",”abc",0)=-1
    StrComp(“abc ",” ABC ",0)=1
    InStr([N1,]C1,C2[,N2])
    Integer
    在字符串C1中,从N1开始到N2位置,开始找C2,省略N1时从C1头开始找,省略N2时找到C1尾止。找不到时,函数值为0
    InStr(2,”ABCDE”,”C”,4)=3
    InStr(2,”ABCDEF”,”CDE”)=3
    InStr(”ABCDEFGH”,”CDE”)=3
    InStr(”ABCDEFGH”,”XY”)=0
      说明:(1)表中的C表示是字符串表达式,表中的N表示是数值表达式
      (2)对于数值函数Val(C),逗号“,”和美圆符号“$”,都不能被识别;空格、制表符和换行符都将从参数中去掉;当遇到字母E或D 时,将其按单精度或双精度实型浮点数处理。
      (3)LenB(C)函数与Len(C)函数功能相近,只不过LenB函数求的是字符串的字节数,而不是字符串中字符的个数。例如:LenB(“ABCabc123")=18,LenB(“字符串”)=6。
      (4)对于产生字符串函数String$(N,C),其中,C参数可以为任何有效的数值表达式或字符串表达式,如果为数值表达式,则表示组成字符串的字符的ASCII码;如果为字符串表达式,则其第一个字符将用于产生字符串。
      (5)对于字符串左截函数Left(C,N),N参数为数值表达式,其值指出函数值中包含多少个字符,如果其值为0,则函数值是长度为零的字符串(即空串);如果其值大于或等于字符串C中的字符数,则函数值为整个字符串。
      LeftB函数与Left函数功能相近,只不过LeftB函数求的是字符串的字节数,而不是字符串中字符的个数。LeftB(“ABCDE”,6)=”ABC”。
      (6) 对于字符串右截取函数Right(C,N),N参数为数值表达式,其值指出函数值中包含多少个字符。如果其值为0,则函数值为空串;如果其值大于或等于字符串C中的字符个数,则函数值为整个字符串。
       RightB函数与Right函数功能相近,只不过RightB函数求的是字符串的字节数,而不是字符串中字符的个数。RightB(“ABCDE”,6)=”CDE”。
      (7)N1是数值表达式,其值表示开始截取字符的起始位置。如果该数值超过字符串C中的字符数,则函数值为空串。N2是数值表达式,其值表示要截取的字符数。如果省略该参数,则函数值将包含字符串C中从起始位置到字符串末尾的所有字符。
      MidB函数与Mid函数功能相近,只不过MidB函数求的是字符串的字节数,而不是字符串中字符的个数。例如:MidB(“ABCDEFG”,5,8)=”CDEF”。
      (8)因为将一字符串赋值给一定长字符串变量时,如字符串变量的长度大于字符串的长度,则用空格填充该字符串变量尾部多余的部分,所以在处理定长字符串变量时,删除空格的Ltrim和Rtrim函数是非常有用的。
      (9)对于字符串比较函数StrComp(C1,C2[,N] ),N是指定字符串的比较类型。比较类型可以是0、1或2,若比较类型为0,则执行二进制比较,此时英文字母区分大小写;若比较类型为1,则执行文本比较,此时英文字母不区分大小写;若比较类型为2,则是执行基于数据库信息的比较,仅对Microsoft Access起作用。若省略该参数,则默认比较类型为0。
      当字符串C1小于字符串C2时,函数值为—1;当字符串C1等于字符串C2时,函数值为0:当字符串C1大于字符串C2时,函数值为1。

=======

Int


【名称】
    Int
【类别】
    数学函数
【原形】
    Int(number)
【参数】
    必选的,number 参数是一个 Double 或任何有效的数值表达式
【返回值】
    Integer 类型
【异常/错误】
    无
【描述】
    求不大于number 的最大整数,Int(3.8)=3,Int(-3.8)=-4。
【示例】
      Dim MyNumber
      MyNumber = Int(99.8) ' 返回 99。
      MyNumber = Int(-99.8) ' 返回 -100。
      MyNumber = Int(-99.2) ' 返回 -100。
【备注】
    如果 number 包含 Null,则返回 Null。Int 和 Fix 都会删除 number 的小数部份而返回剩下的整数。Int 和 Fix 的不同之处在于,如果 number 为负数,则 Int 返回小于或等于 number 的第一个负整数,而 Fix 则会返回大于或等于 number 的第一个负整数。例如,Int 将 -8.4 转换成 -9,而 Fix 将 -8.4 转换成 -8。

=======

IsDate


【名称】
    IsDate
【类别】
    日期和时间函数
【原形】
    IsDate(expression)
【参数】
    必选的,expression 参数是一个 Variant,包含日期表达式或字符串表达式,这里的字符串表达式是可以作为日期或时间来认定的。
【返回值】
    返回 Boolean 值,指出一个表达式是否可以转换成日期。
【异常/错误】
    无
【描述】
    返回时间参数中的小时数,函数值为0到23之间的整数。例如:执行Print Hour(Now)后的结果为:14。
【示例】
    本示例使用 IsDate 函数判断表达式是否可以转换为日期格式。
    Dim MyDate, YourDate, NoDate, MyCheck
    MyDate = "February 12, 1969": YourDate = #2/12/69#: NoDate = "Hello"
    MyCheck = IsDate(MyDate) ' 返回 True。
    MyCheck = IsDate(YourDate) ' 返回 True。
    MyCheck = IsDate(NoDate) ' 返回 False。
【备注】
    如果表达式是一个日期,或可以作为有效日期识别,则 IsDate 返回 True;否则返回 False。在 Microsoft Windows 中,有效日期的范围介于公元 100 年 1 月 1 日与公元 9999 年 12 月 31 日之间;其有效范围随操作系统不同而不同。
      日期和时间函数的函数名、函数值类型和函数功能如下表所示。针对表中的举例,设当前的系统时间为2003年4月23日下午两点18分30秒。
    表 日期和时间函数
    函数名
    函数值类型
    功能
    举例
    Now
    Date
    返回当前的系统日期和系统时间
    执行Print Now后的结果为:2003-4-23 14:18:30
    Date[$][()]
    Date
    返回当前的系统日期
    执行Print Date后的结果为:2003-4-23
    Time[$][()]
    Date
    返回当前的系统时间
    执行Print Time后的结果为:14:18:30
    DateSerial(年,月,日)
    Integer
    相对1899年12月30日(为0)返回一个天数值。其中的年、月、日参数为数值型表达式
    执行Print DateSerial (99,06,01)- DateSerial (99,05,01) 后的结果为:31
    DateValue(C)
    Integer
    相对1899年12月30日(为0)返回一个天数值,参数C为字符型表达式
    执行Print DateValue (“99,06,01”)-DateValue(“99,05,01”) 后的结果为:31
    Year(D)
    Integer
    返回日期D的年份,D可以是任何能够表示日期的数值、字符串表达式或它们的组合。其中,参数为天数时,函数值为相对于1899年12月30日后的指定天数的年号,其取值在1753到2078之间
    执行Print Year(Date) 后的结果为:2003
    执行Print Year(365) 后的结果为:1900
    1899年12月30日后的365天是1900年
    Month(D)
    Integer
    返回日期D的月份,函数值为1到12之间的整数
    执行Print Month(Date) 后的结果为:8
    Day(D)
    Integer
    返回日期D的日数,函数值为1到31之间的整数
    执行Print Day(Date) 后的结果为:23
    WeekDay(D)
    Integer
    返回日期D是星期几, 函数值与星期的对应关系如表2.6所示
    执行Print WeekDay (Date)后的结果为:3
    Hour(T)
    Integer
    返回时间参数中的小时数,函数值为0到23之间的整数
    执行Print Hour(Now)后的结果为:14
    Minute(T)
    Integer
    返回时间参数中的分钟数,函数值为0到59之间的整数
    执行Print Minute(Now) 后的结果为:18
    Second(T)
    Integer
    返回时间参数中的秒数,函数值为0到59之间的整数
    执行PrintSecond(Now) 后的结果为:30
    DateAdd(时间单位,时间,D)
    Date
    返回参考日期D加上一段时间T之后的日期,时间单位为一个字符串,表示所要加上的时间的单位,其取值及含义如表2.7所示
    执行Print DateAdd(”m”,2,Date) 后的结果为:
    2003-6-23。
    执行Print DateAdd(”q”,1,Date) 后的结果为:
    2003-7-23
    DateDiff(时间单位,D1,D2)
    Long
    返回两个指定日期D1和D2之间的间隔时间。如果日期D1比D2早,则函数值为正数,否则函数值为负数。时间单位,同DateAdd函数的时间单位参数
    执行Print DateDiff (“m”,#6/16/2002#,#6/16/2003#后的结果为:12
    执行Print DateDiff (“m”,#6/16/2003#,#6/16/2002#后的结果为:-12
    IsDate(参数)
    Boolean
    判断参数是否可以转换成日期,参数可以是任何类型的有效表达式。如果参数的值可转化成日期型数据,则函数值为Tree,否则函数值为False。在Microsoft Windows中,其范围为公元100年1月1日至公元9999年12月31日。
    IsDate(99-6-18)=False
    IsDate(“99-6-18")=True
      说明:(1)在表2.5中,日期参数D是任何能够表示为日期的数值型表达式、字符串型表达式或它们的组合。时间参数T是任何能够表示为时间的数值型表达式、字符串型表达式或它们的组合。
      当参数D是数值型表达式时,其值表示相对于1899年12月30日前后天数,负数是1899年12月30日以前,正数是1899年12月30日以后。
      (2)星期函数Weekday(D)的函数值与星期的对应关系如下表所示。
    表 星期函数Weekday(D)的函数值与星期的对应关系
    函数值
    星期
    函数值
    星期
    1
    星期日
    5
    星期四
    2
    星期一
    6
    星期五
    3
    星期二
    7
    星期六
    4
    星期三
    
    
    

=======

IsNumeric


【名称】
    IsNumeric
【类别】
    判断函数
【原形】
    IsNumeric(expression)
【参数】
    必选的,expression 参数是一个 Variant,包含数值表达式或字符串表达式。
【返回值】
    返回 Boolean 值,指出表达式的运算结果是否为数。
【异常/错误】
    无
【描述】
      判断参数的值是否为数值型。expression 参数可以是任何有效的表达式,如果表达式的值为数值型,则函数值为True,否则函数值为False。例如:
    Dim N1 AS Variant,N2 AS Variant
    N1=10
    N2="ABCD你好"
    则:IsNumeric(N1)的值为True,IsNumeric(N2)的值为False。
【示例】
    本示例使用 IsNumeric 函数判断变量的值是否可为数值。
    Dim MyVar, MyCheck
    MyVar = "53" ' 指定值。
    MyCheck = IsNumeric(MyVar) ' 返回 True。
    
    MyVar = "459.95" ' 指定值。
    MyCheck = IsNumeric(MyVar) ' 返回 True。
    
    MyVar = "45 Help" ' 指定值。
    MyCheck = IsNumeric(MyVar) ' 返回 False。
【备注】
    如果整个 expression 的运算结果为数字,则 IsNumeric 返回 True;否则返回 False。
    如果 expression 是日期表达式,则 IsNumeric 返回 False。

=======

KeyDown


【名称】
    KeyDown
【类别】
    事件过程
【原形】
      Sub Form_KeyDown(KeyCode As Integer,Shift As Integer)
【参数】
      其中,KeyCode和Shift分别是两个整型的参数:KeyCode表示一个键码,即代表某个键的一个整数值。例如:F10键的KeyCode值是121,A键的KeyCode值是65, a键的KeyCode值是65,小键盘数字1键的KeyCode值是97, 大键盘数字1键的KeyCode值是49。它与字母大小写无关;对于有上挡字符和下挡字符的按键,其KeyCode值一样,与下挡字符的ASCII码相同。若想要了解键盘上各个键的键码值,可使用VB的对象浏览器。
      Shift参数:它用于表示事件发生时Shift键、Ctrl键和Alt键的按下或松开状态。可以用一个三位的二进制数表示这三个键的状态,Shift键是第0位,Ctrl键是第1位,Alt键是第2位。其中:每一位都有0和1两种值,分别表示键的放松和按下,这个二进制数转换成十进制数即为Shift的值,例如,当只按下Alt键时,Shift的值为:(100)2=4;按下Alt+Shift键时,Shift的值为:(100)2=5,按下Alt+Ctrl键时,Shift的值为:(100)2=6。
      Shift参数值也有相应的常量,分别为vbShiftMask、vbCtrlMask和vbAltMask,用户同样可以通过对象浏览器找到它们。
【描述】
    当用户在窗体中按下键盘上的某个键(KeyDown)或松开某个键(KeyUp)时,就会产生KeyDown事件或KeyUp事件,这两个事件过程的基本语法格式如下:
【示例】
    本例演示一个响应 F2 以及与 ALT,SHIFT 和 CTRL 相联的组合键类属键盘处理程序。键常数列在对象浏览器中的 Visual Basic (VB) 对象库里。要尝试这个例子,可将代码粘贴到一个含 1 个 TextBox 控件的窗体的声明部分,然后按 F5 键和 ALT+F2, SHIFT+F2,和 CTRL+F2 组合键。
    Private Sub Text1_KeyDown (KeyCode As Integer, Shift As Integer)
    Dim ShiftDown, AltDown, CtrlDown, Txt
    ShiftDown = (Shift And vbShiftMask) > 0
    AltDown = (Shift And vbAltMask) > 0
    CtrlDown = (Shift And vbCtrlMask) > 0
    If KeyCode = vbKeyF2 Then ' 显示键组合.
    If ShiftDown And CtrlDown And AltDown Then
    Txt = "SHIFT+CTRL+ALT+F2."
    ElseIf ShiftDown And AltDown Then
    Txt = "SHIFT+ALT+F2."
    ElseIf ShiftDown And CtrlDown Then
    Txt = "SHIFT+CTRL+F2."
    ElseIf CtrlDown And AltDown Then
    Txt = "CTRL+ALT+F2."
    ElseIf ShiftDown Then
    Txt = "SHIFT+F2."
    ElseIf CtrlDown Then
    Txt = "CTRL+F2."
    ElseIf AltDown Then
    Txt = "ALT+F2."
    ElseIf SHIFT = 0 Then
    Txt = "F2."
    End If
    Text1.Text = "You pressed " & Txt
    End If
    End Sub
【备注】
      (1)单击[视图]@@[对象浏览器]命令,或按F2键,或直接单击工具条上的对象浏览器按钮,这时屏幕上弹出[对象浏览器]对话框。
      (2)在[工程/库]下拉列表框(左上角第一个下拉列表框)中选择VBRUN选项,即选择了相应的对象库,然后在[类]列表框选择组名称KeyCodeConstants选项,即可在其右边的[成员]列表框中列出相应的标准符号常量名称,其中以vbkey开头的常量均为键值常量,单击选中vbkeyFl0选项后,在[对象浏览器]窗口底部的文本框中会显示出它的值及其所代表的键,如下图左图所示。
      (3)也可以在[工程/库]下拉列表框下边的文本框中输入要查找的键值常量名称,再单击[查找]图表按钮,即可找到vbkeyFl0键值常量,如下图右图所示。
       
                 图 [对象浏览器]窗口
    

=======

KeyPress


【名称】
    KeyPress
【类别】
    事件过程
【原形】
    Private Sub Form_KeyPress(keyascii As Integer)
    Private Sub object_KeyPress([index As Integer,]keyascii As Integer)
【参数】
    KeyPress 事件参数包含下列部分:
    部分
【描述】
    object
    一个对象表达式,其值是“应用于”列表中的一个对象。
    index
    一个整数,它用来唯一标识一个在控件数组中的控件。
    keyascii
    是返回一个标准数字 ANSI 键代码的整数。Keyascii 通过引用传递,对它进行改变可给对象发送一个不同的字符。将 keyascii 改变为 0 时可取消击键,这样一来对象便接收不到字符。
      其中,keyascii是一个整数类型的常量,表示所按键的ASCII码值。例如,如果键入A键,则keyascii的值为65;键入a键,则keyascii的值为97;按回车键,则keyascii的值为13,按大小键盘的数字1键,则keyascii的值都为49。
【描述】
    此事件当用户按下和松开一个 ANSI 键时发生。在程序运行期间,若有键盘按键发生时,就会产生KeyPress事件。
【示例】
      本例将输入到 TextBox 控件的文本转换为大写。要尝试这个例子,可将代码粘贴到一个包含一个 TextBox 控件窗体的声明部分,然后按 F5 键并在 TextBox 中输入内容。
    Private Sub Text1_KeyPress (KeyAscii As Integer)
    Char = Chr(KeyAscii)
    KeyAscii = Asc(UCase(Char))
    End Sub
    下面的程序可以获得输入的一串字符。程序如下。
    Dim N As String
    Private Sub Form_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
    Print N
    End If
    N = N + Chr$(KeyAscii)
    End Sub
      运行该程序,依次按26个英文大写字母键,再按回车键,此时窗体显示如下:
      ABCDEFGHIJKLMNOPQRSTUVWXYZ
【备注】
    具有焦点的对象接收该事件。一个窗体仅在它没有可视和有效的控件或 KeyPreview 属性被设置为 True 时才能接收该事件。一个 KeyPress 事件可以引用任何可打印的键盘字符,一个来自标准字母表的字符或少数几个特殊字符之一的字符与 CTRL 键的组合,以及 ENTER 或 BACKSPACE 键。KeyPress 事件过程在截取 TextBox 或 ComboBox 控件所输入的击键时是非常有用的。它可立即测试击键的有效性或在字符输入时对其进行格式处理。改变 keyascii 参数的值会改变所显示的字符。
    可使用下列表达式将 keyascii 参数转变为一个字符:
    Chr(KeyAscii)
    然后执行字符串操作,并将该字符反译成一个控件可通过该表达式解释的 ANSI 数字:
    KeyAscii = Asc(char)
    应当使用 KeyDown 和 KeyUP 事件过程来处理任何不被 KeyPress 识别的击键,诸如:功能键、编辑键、定位键以及任何这些键和键盘换档键的组合等。与 KeyDown 和 KeyUp 事件不同的是,KeyPress 不显示键盘的物理状态,而只是传递一个字符。
    KeyPress 将每个字符的大、小写形式作为不同的键代码解释,即作为两种不同的字符。而 KeyDown 和 KeyUp 用两种参数解释每个字符的大写形式和小写形式:keycode — 显示物理的键(将 A 和 a 作为同一个键返回)和 shift —指示 shift + key 键的状态而且返回 A 或 a 其中之一。
    如果 KeyPreview 属性被设置为 True,窗体将先于该窗体上的控件接收此事件。可用 KeyPreview 属性来创建全局键盘处理例程。
    注意:CTRL+@ 的键盘组合的 ANSI 编号是 0。因为 Visual Basic 将一个零值的 keyascii 识别为一个长度为零的字符串 (""),在应用程序中应避免使用 CTRL+@ 的组合。

=======

KeyUp


【名称】
    KeyUp
【类别】
    事件过程
【原形】
    Sub Form_KeyUp(KeyCode As Integer,Shift As Integer)
【参数】
      其中,KeyCode和Shift分别是两个整型的参数:KeyCode表示一个键码,即代表某个键的一个整数值。例如:F10键的KeyCode值是121,A键的KeyCode值是65, a键的KeyCode值是65,小键盘数字1键的KeyCode值是97, 大键盘数字1键的KeyCode值是49。它与字母大小写无关;对于有上挡字符和下挡字符的按键,其KeyCode值一样,与下挡字符的ASCII码相同。若想要了解键盘上各个键的键码值,可使用VB的对象浏览器。
      Shift参数:它用于表示事件发生时Shift键、Ctrl键和Alt键的按下或松开状态。可以用一个三位的二进制数表示这三个键的状态,Shift键是第0位,Ctrl键是第1位,Alt键是第2位。其中:每一位都有0和1两种值,分别表示键的放松和按下,这个二进制数转换成十进制数即为Shift的值,例如,当只按下Alt键时,Shift的值为:(100)2=4;按下Alt+Shift键时,Shift的值为:(100)2=5,按下Alt+Ctrl键时,Shift的值为:(100)2=6。
      Shift参数值也有相应的常量,分别为vbShiftMask、vbCtrlMask和vbAltMask,用户同样可以通过对象浏览器找到它们。
【描述】
    当用户在窗体中按下键盘上的某个键(KeyDown)或松开某个键(KeyUp)时,就会产生KeyDown事件或KeyUp事件,这两个事件过程的基本语法格式如下:
【示例】
    本例演示一个响应 F2 以及与 ALT,SHIFT 和 CTRL 相联的组合键类属键盘处理程序。键常数列在对象浏览器中的 Visual Basic (VB) 对象库里。要尝试这个例子,可将代码粘贴到一个含 1 个 TextBox 控件的窗体的声明部分,然后按 F5 键和 ALT+F2, SHIFT+F2,和 CTRL+F2 组合键。
    Private Sub Text1_KeyDown (KeyCode As Integer, Shift As Integer)
    Dim ShiftDown, AltDown, CtrlDown, Txt
    ShiftDown = (Shift And vbShiftMask) > 0
    AltDown = (Shift And vbAltMask) > 0
    CtrlDown = (Shift And vbCtrlMask) > 0
    If KeyCode = vbKeyF2 Then ' 显示键组合.
    If ShiftDown And CtrlDown And AltDown Then
    Txt = "SHIFT+CTRL+ALT+F2."
    ElseIf ShiftDown And AltDown Then
    Txt = "SHIFT+ALT+F2."
    ElseIf ShiftDown And CtrlDown Then
    Txt = "SHIFT+CTRL+F2."
    ElseIf CtrlDown And AltDown Then
    Txt = "CTRL+ALT+F2."
    ElseIf ShiftDown Then
    Txt = "SHIFT+F2."
    ElseIf CtrlDown Then
    Txt = "CTRL+F2."
    ElseIf AltDown Then
    Txt = "ALT+F2."
    ElseIf SHIFT = 0 Then
    Txt = "F2."
    End If
    Text1.Text = "You pressed " & Txt
    End If
    End Sub
【备注】
      (1)单击[视图]@@[对象浏览器]命令,或按F2键,或直接单击工具条上的对象浏览器按钮,这时屏幕上弹出[对象浏览器]对话框。
      (2)在[工程/库]下拉列表框(左上角第一个下拉列表框)中选择VBRUN选项,即选择了相应的对象库,然后在[类]列表框选择组名称KeyCodeConstants选项,即可在其右边的[成员]列表框中列出相应的标准符号常量名称,其中以vbkey开头的常量均为键值常量,单击选中vbkeyFl0选项后,在[对象浏览器]窗口底部的文本框中会显示出它的值及其所代表的键,如下图左图所示。
      (3)也可以在[工程/库]下拉列表框下边的文本框中输入要查找的键值常量名称,再单击[查找]图表按钮,即可找到vbkeyFl0键值常量,如下图右图所示。
    
                 图 [对象浏览器]窗口
    

=======

LCase


【名称】
    LCase
【类别】
    字符串函数
【原形】
      LCase(string)
【参数】
    必选的,string 参数为任何有效的字符串表达式。如果 string 包含 Null,将返回 Null。
【返回值】
    返回 Variant (String)数据类型。
【异常/错误】
    无
【描述】
    返回将string 参数字符串中的大写英文字母转换成小写英文字母。
【示例】
    本示例使用 LCase 函数来将某字符串转成全部小写。
    Dim UpperCase, LowerCase
    Uppercase = "Hello World 1234" ' 要输送的字符串。
    Lowercase = Lcase(UpperCase) ' 返回 "hello world 1234"。
【备注】
      只有大写的字母会转成小写;原本小写或非字母之字符保持不变。
      函数值类型和函数功能如下表所示。
    字符串函数
    函数名
    函数值类型
    功能
    举例
    Chr$(N)
    String
    求以N为ASCII码的字符
    Chr(65)=“A”
    Str$(N)
    String
    将N转换为字符串,如果N>0,则返回的字符串中包含一个前导空格,暗示有一个正号
    Str$(-12345)=“-12345”
    Str(12345)= “ 12345”
    Len(C)
    Long
    求字符串C中包含的字符个数
    Len(“Abab字符串4")=8
    Ucase$(C)
    String
    将字符串C中的小写英文字母转换成大写英文字母
    Ucase(“abABabc")="ABABABC"
    Lcase$(C)
    String
    将字符串C中的大写英文字母转换成小写英文字母
    Ucase(“abABabc")="abababc"
    Space$(N)
    String
    产生N个空格组成的字符串
    Len(Space(6))=6
    String$(N,C)
    String
    产生N个由C指定的第一个字符组成的字符串,C可以是ASCII码数
    String(6,”ABC”)=“AAAAAA”
    String(6,65)=“AAAAAA”
    Left(C,N)
    String
    从字符串C的最左边开始,截取N个字符
    Left$(“ABCDEF",3)="ABC”
    Right$(C,N)
    String
    从字符串C的最右边开始,截取N个字符
    Right$ (“ABCDEF",3)="DEF”
    Mid$(C,N1 [,N2 ])
    String
    从字符串C中N1指定的起始位置处开始,截取N2个字符
    Mid(“ABCDEF”,2,3)=”BCD”
    Mid(“ABCDEF”,2)=”BCDEF”
    Ltrim$(C)
    String
    删除字符串C中的前导空格
    Ltrim(“ ABCD ”)="ABCD ”
    Rtrim$(C)
    String
    删除字符串C中的尾部空格
    Ltrim(“ ABCD ”)=" ABCD”
    Trim$(C)
    String
    删除字符串参数中的前导和尾部空格
    Ltrim(“ ABCD ”)="ABCD”
    StrComp(C1,C2[,N])
    Integer
    比较字符串C1和字符串C2的大小,N是比较类型,取值0、1或2
    StrComp(“ABC",”abc",1)=0
    StrComp(“ABC",”abc",0)=-1
    StrComp(“abc ",” ABC ",0)=1
    InStr([N1,]C1,C2[,N2])
    Integer
    在字符串C1中,从N1开始到N2位置,开始找C2,省略N1时从C1头开始找,省略N2时找到C1尾止。找不到时,函数值为0
    InStr(2,”ABCDE”,”C”,4)=3
    InStr(2,”ABCDEF”,”CDE”)=3
    InStr(”ABCDEFGH”,”CDE”)=3
    InStr(”ABCDEFGH”,”XY”)=0
      说明:(1)表中的C表示是字符串表达式,表中的N表示是数值表达式
      (2)对于数值函数Val(C),逗号“,”和美圆符号“$”,都不能被识别;空格、制表符和换行符都将从参数中去掉;当遇到字母E或D 时,将其按单精度或双精度实型浮点数处理。
      (3)LenB(C)函数与Len(C)函数功能相近,只不过LenB函数求的是字符串的字节数,而不是字符串中字符的个数。例如:LenB(“ABCabc123")=18,LenB(“字符串”)=6。
      (4)对于产生字符串函数String$(N,C),其中,C参数可以为任何有效的数值表达式或字符串表达式,如果为数值表达式,则表示组成字符串的字符的ASCII码;如果为字符串表达式,则其第一个字符将用于产生字符串。
      (5)对于字符串左截函数Left(C,N),N参数为数值表达式,其值指出函数值中包含多少个字符,如果其值为0,则函数值是长度为零的字符串(即空串);如果其值大于或等于字符串C中的字符数,则函数值为整个字符串。
      LeftB函数与Left函数功能相近,只不过LeftB函数求的是字符串的字节数,而不是字符串中字符的个数。LeftB(“ABCDE”,6)=”ABC”。
      (6) 对于字符串右截取函数Right(C,N),N参数为数值表达式,其值指出函数值中包含多少个字符。如果其值为0,则函数值为空串;如果其值大于或等于字符串C中的字符个数,则函数值为整个字符串。
       RightB函数与Right函数功能相近,只不过RightB函数求的是字符串的字节数,而不是字符串中字符的个数。RightB(“ABCDE”,6)=”CDE”。
      (7)N1是数值表达式,其值表示开始截取字符的起始位置。如果该数值超过字符串C中的字符数,则函数值为空串。N2是数值表达式,其值表示要截取的字符数。如果省略该参数,则函数值将包含字符串C中从起始位置到字符串末尾的所有字符。
      MidB函数与Mid函数功能相近,只不过MidB函数求的是字符串的字节数,而不是字符串中字符的个数。例如:MidB(“ABCDEFG”,5,8)=”CDEF”。
      (8)因为将一字符串赋值给一定长字符串变量时,如字符串变量的长度大于字符串的长度,则用空格填充该字符串变量尾部多余的部分,所以在处理定长字符串变量时,删除空格的Ltrim和Rtrim函数是非常有用的。
      (9)对于字符串比较函数StrComp(C1,C2[,N] ),N是指定字符串的比较类型。比较类型可以是0、1或2,若比较类型为0,则执行二进制比较,此时英文字母区分大小写;若比较类型为1,则执行文本比较,此时英文字母不区分大小写;若比较类型为2,则是执行基于数据库信息的比较,仅对Microsoft Access起作用。若省略该参数,则默认比较类型为0。
      当字符串C1小于字符串C2时,函数值为—1;当字符串C1等于字符串C2时,函数值为0:当字符串C1大于字符串C2时,函数值为1。

=======

Left


【名称】
    Left
【类别】
    字符串函数
【原形】
      Left(string, length)
【参数】
      Left 函数的语法有下面的命名参数:
    部分
    说明
    string
    必要参数。字符串表达式其中最左边的那些字符将被返回。如果 string 包含 Null,将返回 Null。
    length
    必要参数;为 Variant (Long)。数值表达式,指出将返回多少个字符。如果为 0,返回零长度字符串 ("")。如果大于或等于 string 的字符数,则返回整个字符串。
    
【返回值】
    返回 Variant (String)型数据类型。
【异常/错误】
    无
【描述】
    返回从字符串string的最左边开始,截取 length个字符。
【示例】
    本示例使用 Left 函数来得到某字符串最左边的几个字符。
    Dim AnyString, MyStr
    AnyString = "Hello World" ' 定义字符串。
    MyStr = Left(AnyString, 1) ' 返回 "H"。
    MyStr = Left(AnyString, 7) ' 返回 "Hello W"。
    MyStr = Left(AnyString, 20) ' 返回 "Hello World"。
【备注】
    欲知 string 的字符数,使用 Len 函数。
      注意:LeftB 函数作用于包含在字符串中的字节数据。所以 length 指定的是字节数,而不是要返回的字符数。
      函数值类型和函数功能如下表所示。
    字符串函数
    函数名
    函数值类型
    功能
    举例
    Chr$(N)
    String
    求以N为ASCII码的字符
    Chr(65)=“A”
    Str$(N)
    String
    将N转换为字符串,如果N>0,则返回的字符串中包含一个前导空格,暗示有一个正号
    Str$(-12345)=“-12345”
    Str(12345)= “ 12345”
    Len(C)
    Long
    求字符串C中包含的字符个数
    Len(“Abab字符串4")=8
    Ucase$(C)
    String
    将字符串C中的小写英文字母转换成大写英文字母
    Ucase(“abABabc")="ABABABC"
    Lcase$(C)
    String
    将字符串C中的大写英文字母转换成小写英文字母
    Ucase(“abABabc")="abababc"
    Space$(N)
    String
    产生N个空格组成的字符串
    Len(Space(6))=6
    String$(N,C)
    String
    产生N个由C指定的第一个字符组成的字符串,C可以是ASCII码数
    String(6,”ABC”)=“AAAAAA”
    String(6,65)=“AAAAAA”
    Left(C,N)
    String
    从字符串C的最左边开始,截取N个字符
    Left$(“ABCDEF",3)="ABC”
    Right$(C,N)
    String
    从字符串C的最右边开始,截取N个字符
    Right$ (“ABCDEF",3)="DEF”
    Mid$(C,N1 [,N2 ])
    String
    从字符串C中N1指定的起始位置处开始,截取N2个字符
    Mid(“ABCDEF”,2,3)=”BCD”
    Mid(“ABCDEF”,2)=”BCDEF”
    Ltrim$(C)
    String
    删除字符串C中的前导空格
    Ltrim(“ ABCD ”)="ABCD ”
    Rtrim$(C)
    String
    删除字符串C中的尾部空格
    Ltrim(“ ABCD ”)=" ABCD”
    Trim$(C)
    String
    删除字符串参数中的前导和尾部空格
    Ltrim(“ ABCD ”)="ABCD”
    StrComp(C1,C2[,N])
    Integer
    比较字符串C1和字符串C2的大小,N是比较类型,取值0、1或2
    StrComp(“ABC",”abc",1)=0
    StrComp(“ABC",”abc",0)=-1
    StrComp(“abc ",” ABC ",0)=1
    InStr([N1,]C1,C2[,N2])
    Integer
    在字符串C1中,从N1开始到N2位置,开始找C2,省略N1时从C1头开始找,省略N2时找到C1尾止。找不到时,函数值为0
    InStr(2,”ABCDE”,”C”,4)=3
    InStr(2,”ABCDEF”,”CDE”)=3
    InStr(”ABCDEFGH”,”CDE”)=3
    InStr(”ABCDEFGH”,”XY”)=0
      说明:(1)表中的C表示是字符串表达式,表中的N表示是数值表达式
      (2)对于数值函数Val(C),逗号“,”和美圆符号“$”,都不能被识别;空格、制表符和换行符都将从参数中去掉;当遇到字母E或D 时,将其按单精度或双精度实型浮点数处理。
      (3)LenB(C)函数与Len(C)函数功能相近,只不过LenB函数求的是字符串的字节数,而不是字符串中字符的个数。例如:LenB(“ABCabc123")=18,LenB(“字符串”)=6。
      (4)对于产生字符串函数String$(N,C),其中,C参数可以为任何有效的数值表达式或字符串表达式,如果为数值表达式,则表示组成字符串的字符的ASCII码;如果为字符串表达式,则其第一个字符将用于产生字符串。
      (5)对于字符串左截函数Left(C,N),N参数为数值表达式,其值指出函数值中包含多少个字符,如果其值为0,则函数值是长度为零的字符串(即空串);如果其值大于或等于字符串C中的字符数,则函数值为整个字符串。
      LeftB函数与Left函数功能相近,只不过LeftB函数求的是字符串的字节数,而不是字符串中字符的个数。LeftB(“ABCDE”,6)=”ABC”。
      (6) 对于字符串右截取函数Right(C,N),N参数为数值表达式,其值指出函数值中包含多少个字符。如果其值为0,则函数值为空串;如果其值大于或等于字符串C中的字符个数,则函数值为整个字符串。
       RightB函数与Right函数功能相近,只不过RightB函数求的是字符串的字节数,而不是字符串中字符的个数。RightB(“ABCDE”,6)=”CDE”。
      (7)N1是数值表达式,其值表示开始截取字符的起始位置。如果该数值超过字符串C中的字符数,则函数值为空串。N2是数值表达式,其值表示要截取的字符数。如果省略该参数,则函数值将包含字符串C中从起始位置到字符串末尾的所有字符。
      MidB函数与Mid函数功能相近,只不过MidB函数求的是字符串的字节数,而不是字符串中字符的个数。例如:MidB(“ABCDEFG”,5,8)=”CDEF”。
      (8)因为将一字符串赋值给一定长字符串变量时,如字符串变量的长度大于字符串的长度,则用空格填充该字符串变量尾部多余的部分,所以在处理定长字符串变量时,删除空格的Ltrim和Rtrim函数是非常有用的。
      (9)对于字符串比较函数StrComp(C1,C2[,N] ),N是指定字符串的比较类型。比较类型可以是0、1或2,若比较类型为0,则执行二进制比较,此时英文字母区分大小写;若比较类型为1,则执行文本比较,此时英文字母不区分大小写;若比较类型为2,则是执行基于数据库信息的比较,仅对Microsoft Access起作用。若省略该参数,则默认比较类型为0。
      当字符串C1小于字符串C2时,函数值为—1;当字符串C1等于字符串C2时,函数值为0:当字符串C1大于字符串C2时,函数值为1。
      函数值类型和函数功能如下表所示。
    字符串函数
    函数名
    函数值类型
    功能
    举例
    Chr$(N)
    String
    求以N为ASCII码的字符
    Chr(65)=“A”
    Str$(N)
    String
    将N转换为字符串,如果N>0,则返回的字符串中包含一个前导空格,暗示有一个正号
    Str$(-12345)=“-12345”
    Str(12345)= “ 12345”
    Len(C)
    Long
    求字符串C中包含的字符个数
    Len(“Abab字符串4")=8
    Ucase$(C)
    String
    将字符串C中的小写英文字母转换成大写英文字母
    Ucase(“abABabc")="ABABABC"
    Lcase$(C)
    String
    将字符串C中的大写英文字母转换成小写英文字母
    Ucase(“abABabc")="abababc"
    Space$(N)
    String
    产生N个空格组成的字符串
    Len(Space(6))=6
    String$(N,C)
    String
    产生N个由C指定的第一个字符组成的字符串,C可以是ASCII码数
    String(6,”ABC”)=“AAAAAA”
    String(6,65)=“AAAAAA”
    Left(C,N)
    String
    从字符串C的最左边开始,截取N个字符
    Left$(“ABCDEF",3)="ABC”
    Right$(C,N)
    String
    从字符串C的最右边开始,截取N个字符
    Right$ (“ABCDEF",3)="DEF”
    Mid$(C,N1 [,N2 ])
    String
    从字符串C中N1指定的起始位置处开始,截取N2个字符
    Mid(“ABCDEF”,2,3)=”BCD”
    Mid(“ABCDEF”,2)=”BCDEF”
    Ltrim$(C)
    String
    删除字符串C中的前导空格
    Ltrim(“ ABCD ”)="ABCD ”
    Rtrim$(C)
    String
    删除字符串C中的尾部空格
    Ltrim(“ ABCD ”)=" ABCD”
    Trim$(C)
    String
    删除字符串参数中的前导和尾部空格
    Ltrim(“ ABCD ”)="ABCD”
    StrComp(C1,C2[,N])
    Integer
    比较字符串C1和字符串C2的大小,N是比较类型,取值0、1或2
    StrComp(“ABC",”abc",1)=0
    StrComp(“ABC",”abc",0)=-1
    StrComp(“abc ",” ABC ",0)=1
    InStr([N1,]C1,C2[,N2])
    Integer
    在字符串C1中,从N1开始到N2位置,开始找C2,省略N1时从C1头开始找,省略N2时找到C1尾止。找不到时,函数值为0
    InStr(2,”ABCDE”,”C”,4)=3
    InStr(2,”ABCDEF”,”CDE”)=3
    InStr(”ABCDEFGH”,”CDE”)=3
    InStr(”ABCDEFGH”,”XY”)=0
      说明:(1)表中的C表示是字符串表达式,表中的N表示是数值表达式
      (2)对于数值函数Val(C),逗号“,”和美圆符号“$”,都不能被识别;空格、制表符和换行符都将从参数中去掉;当遇到字母E或D 时,将其按单精度或双精度实型浮点数处理。
      (3)LenB(C)函数与Len(C)函数功能相近,只不过LenB函数求的是字符串的字节数,而不是字符串中字符的个数。例如:LenB(“ABCabc123")=18,LenB(“字符串”)=6。
      (4)对于产生字符串函数String$(N,C),其中,C参数可以为任何有效的数值表达式或字符串表达式,如果为数值表达式,则表示组成字符串的字符的ASCII码;如果为字符串表达式,则其第一个字符将用于产生字符串。
      (5)对于字符串左截函数Left(C,N),N参数为数值表达式,其值指出函数值中包含多少个字符,如果其值为0,则函数值是长度为零的字符串(即空串);如果其值大于或等于字符串C中的字符数,则函数值为整个字符串。
      LeftB函数与Left函数功能相近,只不过LeftB函数求的是字符串的字节数,而不是字符串中字符的个数。LeftB(“ABCDE”,6)=”ABC”。
      (6) 对于字符串右截取函数Right(C,N),N参数为数值表达式,其值指出函数值中包含多少个字符。如果其值为0,则函数值为空串;如果其值大于或等于字符串C中的字符个数,则函数值为整个字符串。
       RightB函数与Right函数功能相近,只不过RightB函数求的是字符串的字节数,而不是字符串中字符的个数。RightB(“ABCDE”,6)=”CDE”。
      (7)N1是数值表达式,其值表示开始截取字符的起始位置。如果该数值超过字符串C中的字符数,则函数值为空串。N2是数值表达式,其值表示要截取的字符数。如果省略该参数,则函数值将包含字符串C中从起始位置到字符串末尾的所有字符。
      MidB函数与Mid函数功能相近,只不过MidB函数求的是字符串的字节数,而不是字符串中字符的个数。例如:MidB(“ABCDEFG”,5,8)=”CDEF”。
      (8)因为将一字符串赋值给一定长字符串变量时,如字符串变量的长度大于字符串的长度,则用空格填充该字符串变量尾部多余的部分,所以在处理定长字符串变量时,删除空格的Ltrim和Rtrim函数是非常有用的。
      (9)对于字符串比较函数StrComp(C1,C2[,N] ),N是指定字符串的比较类型。比较类型可以是0、1或2,若比较类型为0,则执行二进制比较,此时英文字母区分大小写;若比较类型为1,则执行文本比较,此时英文字母不区分大小写;若比较类型为2,则是执行基于数据库信息的比较,仅对Microsoft Access起作用。若省略该参数,则默认比较类型为0。
      当字符串C1小于字符串C2时,函数值为—1;当字符串C1等于字符串C2时,函数值为0:当字符串C1大于字符串C2时,函数值为1。

=======

Len


【名称】
    Len
【类别】
    字符串函数
【原形】
      Len(string | varname)
【参数】
    Len 函数的语法有下面这些部分。
    部分
    说明
    string
    任何有效的字符串表达式。如果 string 包含 Null,会返回 Null。
    Varname
    任何有效的变量名称。如果 varname 包含 Null,会返回 Null。如果 varname 是 Variant,Len 会视其为 String 并且总是返回其包含的字符数。
【返回值】
    返回 Long数据类型。
【异常/错误】
    无
【描述】
    返回包含字符串内字符的数目或是存储一变量所需的字节数。
【示例】
      本示例使用 Len 函数来得知某字符串的长度(字符数)或某变量的大小(位数)。Type...End Type 程序区块定义一个自定义数据类型 CustomerRecord。如果该数据类型定义在对象类模块中,则必需以关键字 Private 开头(表示为私有)。若定义在常规模块中,Type 定义就可以为 Public。
    Type CustomerRecord ' 定义用户自定义的数据类型。
    ID As Integer ' 将此定义放在常规模块中。
    Name As String * 10
    Address As String * 30
    End Type
    
    Dim Customer As CustomerRecord ' 声明变量。
    Dim MyInt As Integer, MyCur As Currency
    Dim MyString, MyLen
    MyString = "Hello World" ' 设置变量初值。
    MyLen = Len(MyInt) ' 返回 2。
    MyLen = Len(Customer) ' 返回 42。
    MyLen = Len(MyString) ' 返回 11。
    MyLen = Len(MyCur) ' 返回 8。
【备注】
    两个可能的参数必须有其一(而且只能有其一)。如为用户定义类型,Len 会返回其写至文件的大小。
    注意:LenB 函数作用于字符串中的字节数据,如同在双字节字符集(DBCS)语言中一样。所以 LenB 返回的是用于代表字符串的字节数,而不是返回字符串中字符的数量。如为用户自定义类型,LenB 返回在内存中的大小,包括元素之间的衬垫。对于使用 LenB的示例代码,请参阅示例主题中的第二个示例。
    注意 当在用户自定义数据类型中使用变长字符串时,Len 可能不能确定实际存储所需的字节数目。
      函数值类型和函数功能如下表所示。
    字符串函数
    函数名
    函数值类型
    功能
    举例
    Chr$(N)
    String
    求以N为ASCII码的字符
    Chr(65)=“A”
    Str$(N)
    String
    将N转换为字符串,如果N>0,则返回的字符串中包含一个前导空格,暗示有一个正号
    Str$(-12345)=“-12345”
    Str(12345)= “ 12345”
    Len(C)
    Long
    求字符串C中包含的字符个数
    Len(“Abab字符串4")=8
    Ucase$(C)
    String
    将字符串C中的小写英文字母转换成大写英文字母
    Ucase(“abABabc")="ABABABC"
    Lcase$(C)
    String
    将字符串C中的大写英文字母转换成小写英文字母
    Ucase(“abABabc")="abababc"
    Space$(N)
    String
    产生N个空格组成的字符串
    Len(Space(6))=6
    String$(N,C)
    String
    产生N个由C指定的第一个字符组成的字符串,C可以是ASCII码数
    String(6,”ABC”)=“AAAAAA”
    String(6,65)=“AAAAAA”
    Left(C,N)
    String
    从字符串C的最左边开始,截取N个字符
    Left$(“ABCDEF",3)="ABC”
    Right$(C,N)
    String
    从字符串C的最右边开始,截取N个字符
    Right$ (“ABCDEF",3)="DEF”
    Mid$(C,N1 [,N2 ])
    String
    从字符串C中N1指定的起始位置处开始,截取N2个字符
    Mid(“ABCDEF”,2,3)=”BCD”
    Mid(“ABCDEF”,2)=”BCDEF”
    Ltrim$(C)
    String
    删除字符串C中的前导空格
    Ltrim(“ ABCD ”)="ABCD ”
    Rtrim$(C)
    String
    删除字符串C中的尾部空格
    Ltrim(“ ABCD ”)=" ABCD”
    Trim$(C)
    String
    删除字符串参数中的前导和尾部空格
    Ltrim(“ ABCD ”)="ABCD”
    StrComp(C1,C2[,N])
    Integer
    比较字符串C1和字符串C2的大小,N是比较类型,取值0、1或2
    StrComp(“ABC",”abc",1)=0
    StrComp(“ABC",”abc",0)=-1
    StrComp(“abc ",” ABC ",0)=1
    InStr([N1,]C1,C2[,N2])
    Integer
    在字符串C1中,从N1开始到N2位置,开始找C2,省略N1时从C1头开始找,省略N2时找到C1尾止。找不到时,函数值为0
    InStr(2,”ABCDE”,”C”,4)=3
    InStr(2,”ABCDEF”,”CDE”)=3
    InStr(”ABCDEFGH”,”CDE”)=3
    InStr(”ABCDEFGH”,”XY”)=0
      说明:(1)表中的C表示是字符串表达式,表中的N表示是数值表达式
      (2)对于数值函数Val(C),逗号“,”和美圆符号“$”,都不能被识别;空格、制表符和换行符都将从参数中去掉;当遇到字母E或D 时,将其按单精度或双精度实型浮点数处理。
      (3)LenB(C)函数与Len(C)函数功能相近,只不过LenB函数求的是字符串的字节数,而不是字符串中字符的个数。例如:LenB(“ABCabc123")=18,LenB(“字符串”)=6。
      (4)对于产生字符串函数String$(N,C),其中,C参数可以为任何有效的数值表达式或字符串表达式,如果为数值表达式,则表示组成字符串的字符的ASCII码;如果为字符串表达式,则其第一个字符将用于产生字符串。
      (5)对于字符串左截函数Left(C,N),N参数为数值表达式,其值指出函数值中包含多少个字符,如果其值为0,则函数值是长度为零的字符串(即空串);如果其值大于或等于字符串C中的字符数,则函数值为整个字符串。
      LeftB函数与Left函数功能相近,只不过LeftB函数求的是字符串的字节数,而不是字符串中字符的个数。LeftB(“ABCDE”,6)=”ABC”。
      (6) 对于字符串右截取函数Right(C,N),N参数为数值表达式,其值指出函数值中包含多少个字符。如果其值为0,则函数值为空串;如果其值大于或等于字符串C中的字符个数,则函数值为整个字符串。
       RightB函数与Right函数功能相近,只不过RightB函数求的是字符串的字节数,而不是字符串中字符的个数。RightB(“ABCDE”,6)=”CDE”。
      (7)N1是数值表达式,其值表示开始截取字符的起始位置。如果该数值超过字符串C中的字符数,则函数值为空串。N2是数值表达式,其值表示要截取的字符数。如果省略该参数,则函数值将包含字符串C中从起始位置到字符串末尾的所有字符。
      MidB函数与Mid函数功能相近,只不过MidB函数求的是字符串的字节数,而不是字符串中字符的个数。例如:MidB(“ABCDEFG”,5,8)=”CDEF”。
      (8)因为将一字符串赋值给一定长字符串变量时,如字符串变量的长度大于字符串的长度,则用空格填充该字符串变量尾部多余的部分,所以在处理定长字符串变量时,删除空格的Ltrim和Rtrim函数是非常有用的。
      (9)对于字符串比较函数StrComp(C1,C2[,N] ),N是指定字符串的比较类型。比较类型可以是0、1或2,若比较类型为0,则执行二进制比较,此时英文字母区分大小写;若比较类型为1,则执行文本比较,此时英文字母不区分大小写;若比较类型为2,则是执行基于数据库信息的比较,仅对Microsoft Access起作用。若省略该参数,则默认比较类型为0。
      当字符串C1小于字符串C2时,函数值为—1;当字符串C1等于字符串C2时,函数值为0:当字符串C1大于字符串C2时,函数值为1。

=======

LinkClose


【名称】
    LinkClose
【类别】
    事件过程
【原形】
    Private Sub Form_LinkClose( )
      Private Sub MDIForm_LinkClose( )
      Private Sub object_LinkClose([index As Integer])
【参数】
    LinkClose 事件语法包括下列部分:
    部分
【描述】
    object
    一个对象表达式,其值是“应用于”列表中的一个对象。
    index
    一个整数,它用来唯一标识一个在控件数组中的控件。
【描述】
    此事件在一个 DDE 对话结束时发生。DDE 对话的两个应用程序任何时候都可以终止对话。
【示例】
    无
【备注】
      通常,一个 LinkClose 事件过程被用来通知 DDE 对话已经终止。也可包括关于重建一个连接的故障排除信息或何处寻求帮助的信息。为了显示简短的信息,可使用 MsgBox 函数。

=======

LinkError


【名称】
    LinkError
【类别】
    事件过程
【原形】
    Private Sub Form_LinkError(linkerr As Integer)
    Private Sub MDIForm_LinkError(linkerr As Integer)
    Private Sub object_LinkError([index As Integer,]linkerr As Integer)
【参数】
    LinkError 事件语法包括下列部分:
    部分
【描述】
    object
    一个对象表达式,其值是“应用于”列表中的一个对象。
    linkerr
    如下边返回值中所述,是一个与 DDE 有关错误的错误号。
    index
    一个整数,它用来唯一标识一个在控件数组中的控件。
    
【返回值】
    下列表格列出了返回给 linkerr 参数的所有错误号以及对每个错误的简短说明:
    值
【描述】
    1
    另一个应用程序按错误的格式已经请求过数据。在 Visual Basic 试图找出另一种应用程序识别的格式时,这种错误可能连续出现几次。
    6
    当发送端窗体上的 LinkMode 属性设置为 0(无)之后,接收端应用程序试图继续 DDE 对话。
    7
    所有源链接都在使用中(每个源最多有 128 个链接)。
    8
    对目标控件来说:一个自动链接或 LinkRequest 方法更新控件中的数据失败。
    ?
    对源窗体来说:目标试图将数据放置到一个控件中去,并且失败。
    11
    无足够的内存给 DDE 使用。
    
【描述】
    当一个 DDE 对话过程中出项错误时,该事件发生。仅在发生了一个 DDE 有关的错误并且没有 Visual Basic Basic 代码被执行来处理这些错误时,才会其错误号要作为参数传递。
【示例】
    本例演示了一个 TextBox MyTextBox,它能够处理选定的错误。 过程根据作为参数 LinkErr 传递的错误号显示一条信息(根据 LinkError 事件主题中的错误列表中改编)。可以直接修改窗体源代码,只需将 Form_LinkError 替换为 MyTextBox_LinkError。
    Private Sub MyTextBox_LinkError (LinkErr As Integer)
    Dim Msg
    Select Case LinkErr
    Case 1
    Msg = "Data in wrong format."
    Case 11
    Msg = "Out of memory for DDE."
    End Select
    MsgBox Msg, vbExclamation, "MyTextBox"
    End Sub
【备注】
      可用一个 LinkError 事件过程通知已发生的错误。也可将关于重建一个联接的恢复问题或故障排除的代码或关于到何处寻求帮助的代码包括在内。为了获得简短消息,可使用 MsgBox 函数。

=======

LinkNotify


【名称】
    LinkNotify
【类别】
    事件过程
【原形】
    Private Sub object_LinkNotify([index As Integer])
【参数】
    LinkNotify 事件参数包括下列部分:
    部分
【描述】
    object
    是一个对象表达式,其值是“应用于”列表中的一个对象。
    index
    是一个整数,它用来唯一地标识一个在控件数组中的控件。
    
【描述】
    如果接收端控件的 LinkMode 属性被设置为 3(通知),当发送端已经改变了由 DDE 链接定义的数据时,此事件发生。
【示例】
       本例将附加一个称为 Picture1 的 PictureBox 控件上,Picture1 的 LinkTopic 和 LinkItem 属性设置在数据源中指定一个图形,其 LinkMode 属性设置为 3 (Notify)。当源改变数据时,若 PictureBox 控件在活动窗体上时,过程会立即更新它;否则,过程将设置一个标志变量。该例仅用作示范。
    Private Sub Picture1_LinkNotify ()
    If Screen.ActiveForm Is Me Then
    Picture1.LinkRequest ' 图片在活动窗体上,所以更新。
    Else
    NewDataFlag = True ' 假定是一个模块级变量。
    End If
    End Sub
【备注】
      通常,在 LinkNotify 事件中,代码可以向用户发出通知,立即取得新数据或延迟到晚一些时候再取数据。可用 LinkRequest 方法从源中获得该新数据。

=======

LinkOpen


【名称】
    LinkOpen
【类别】
    事件过程
【原形】
    Private Sub Form_LinkOpen(cancel As Integer)
      Private Sub MDIForm_LinkOpen(cancel As Integer)
      Private Sub object_LinkOpen([index As Integer,]cancel As Integer)
【参数】
             LinkOpen 事件参数包括下列部分:
    部分
【描述】
    object
    一个对象表达式,其值是“应用于”列表中的一个对象。
    cancel
    是一个整数,它用来确定该 DDE 对话是否建立。让 cancel 设置为 0(缺省值)可建立该对话。将 cancel 设置为任何非零值则拒绝对话。
    index
    一个整数,它用来唯一地标识一个在控件数组中的控件。
    
【描述】
    此事件在一个 DDE 对话正在启动时发生。
【示例】
    无
【备注】
      对窗体来说,此事件在一个接收端应用程序正在与该窗体建立一个 DDE 对话时发生。对控件来说,此事件在一个控件正在与一个源应用程序建立一个 DDE 对话时发生。

=======

Load


【名称】
    Load
【类别】
    事件过程
【原形】
    Private Sub Form_Load( )
      Private Sub MDIForm_Load( )
【参数】
    无
【描述】
      此事件是在一个窗体被装载时发生。当使用 Load 语句启动应用程序,或引用未装载的窗体属性或控件时,此事件发生。
      它的作用是当 Visual Basic 加载窗体对象或调用窗体对象时,先把窗体属性设置为初始值,再执行 Load 事件过程。Load事件很适用于在启动程序时对属性和变量进行初始化。在应用程序运行时,Load事件是在Initialize事件之后产生。
【示例】
    本例演示当一个窗体装载完毕时,向一个 ComboBox 控件中装入数据项。要尝试这个例子,可将代码粘贴到一个包含有一个 ComboBox 控件窗体的声明部分,然后按 F5 键。
    Private Sub Form_Load ()
    Private Sub Form_Load ()
    Combo1.AddItem "Mozart" ' 向列表中添加项。
    Combo1.AddItem "Beethoven"
    Combo1.AddItem "Rock 'n Roll"
    Combo1.AddItem "Reggae"
    Combo1.ListIndex = 2 ' 设置缺省选择。
    End Sub
【备注】
      通常,Load 事件过程用来包含一个窗体的启动代码—例如,指定控件缺省设置值,指明将要装入 ComboBox 或 ListBox 控件的内容,以及初始窗体级变量等。
    Load 事件是在 Intialize 事件之后发生。
      当在代码中引用一个未装载窗体的属性时,该窗体自动被装载但不自动成为可视窗体,除非 MDIChild 属性被设置为 True。如果一个 MDIForm 对象未被装载而一个 MDI 子窗体却被装载,则 MDIForm 和该子窗体都自动被装载并且都将成为可视的窗体。除非使用 Show 方法或将 Visible 属性设置为 True,否则其它窗体都不能显示出来。
      MDIForm Load 事件中的下列代码可自动装载一个 MDI 子窗体(假设 Form1 本身的 MDIChild 属性被设置为 True):
      Dim NewForm As New Form1
      NewForm.Caption = "New Form" '.‘按引用装载窗体’。
      由于所有子窗体在装载时都可视,对 Caption 属性的引用将装载该窗体并使其可视。
      注意:当为诸如 Activate,GotFocus,Paint 和 Resize 等相关事件创建过程时,要确保它们的操作不冲突,而且它们也不会导致循环的事件。

=======

LOC


【名称】
    LOC
【类别】
    磁盘、文件、目录函数
【原形】
      Loc(filenumber)
    或 LOC(文件号)
【参数】
    必选的。 filenumber 参数是任何一个有效的 Integer 文件号。
【返回值】
       返回一个 Long类型异常/错误返回一个在已打开的文件中指定当前读/写位置。Loc 函数对各种文件访问方式的返回值如下表。
    方式
【返回值】
    Random
    上一次对文件进行读出或写入的记录号。
    Sequential
    文件中当前字节位置除以 128 的值。但是,对于顺序文件而言,不会使用 Loc 的返回值,也不需要使用 Loc 的返回值。
    Binary
    上一次读出或写入的字节位置。
【描述】
    获取由[文件号]参数指定的已打开文件的当前访问位置(即文件指针位置)。对于顺序文件,可获取文件中当前访问字节位置除以128再取整,对于随机文件,可获取上一次对文件进行读/写操作的记录号,不使用 Loc 的返回值,也不需要使用 Loc 的返回值。对于二进制文件,可获取读/写的最后字节位置。函数值是长整型数据。
【示例】
    本示例使用 Loc 函数来返回在打开的文件中当前读写的位置。 本示例假设 TESTFILE 文件内含数行文本数据。
    Dim MyLocation, MyLine
    Open "TESTFILE" For Binary As #1 ' 打开刚创建的文件。
    Do While MyLocation < LOF(1) ' 循环至文件尾。
    MyLine = MyLine & Input(1, #1) ' 读入一个字符到变量中。
    MyLocation = Loc(1) ' 取得当前位置。
    ' 在立即窗口中显示。
    Debug.Print MyLine : Tab : MyLocation
    Loop
    Close #1 ' 关闭文件。
【备注】

=======

LOF


【名称】
    LOF
【类别】
    磁盘、文件、目录函数
【原形】
    LOF(filenumber)
    或 LOF(文件号)
【参数】
    必选的。 filenumber 参数是一个 Integer,包含一个有效的文件号。
【返回值】
    返回一个 Long类型。
【异常/错误】
    无
【描述】
    获取由[filenumber](文件号)参数指定的已打开文件的字节长度。表示用 Open 语句打开的文件的大小,该大小以字节为单位。
【示例】
      本示例使用 LOF 函数来得知已打开文件的大小。本示例假设 TESTFILE 文件内含文本数据。
      Dim FileLength
      Open "TESTFILE" For Input As #1 ' 打开文件。
      FileLength = LOF(1) ' 取得文件长度。
      Close #1 ' 关闭文件。
【备注】
      注意:对于尚未打开的文件,使用 FileLen 函数将得到其长度。

=======

Log


【名称】
    Log
【类别】
    数学函数
【原形】
    Log(number)
【参数】
    必选的,number 参数是一个 Double 或任何有效的大于 0 的数值表达式
【返回值】
    Double类型
【异常/错误】
    无
【描述】
    返回指定的number参数的自然对数值。
【示例】
    本示例使用 Log 函数得到某数的自然对数值。
    Dim MyAngle, MyLog
    ' 定义角度(以“弧度”为单位)。
    MyAngle = 1.3
    ' 计算反双曲正弦函数值(inverse sinh())。
    MyLog = Log(MyAngle + Sqr(MyAngle * MyAngle + 1))
【备注】
      自然对数是以 e 为底的对数。常数 e 的值大约是 2.718282。
      如下所示,将 x 的自然对数值除以 n 的自然对数值,就可以对任意底 n 来计算数值 x 的对数值:
      Logn(x) = Log(x) / Log(n)
      下面的示例说明如何编写一个函数来求以 10 为底的对数值:
      Static Function Log10(X)
       Log10 = Log(X) / Log(10#)
    End Function

=======

LostFocus


【名称】
    LostFocus
【类别】
    事件过程
【原形】
    Private Sub Form_LostFocus( )
      Private Sub object_LostFocus([index As Integer])
【参数】
    LostFocus 事件包括下列部分:
    部分
【描述】
    object
    一个对象表达式,其值是“应用于”列表中的一个对象。
    index
    一个整数,它用来唯一地标识一个在控件数组中的控件。
    
【描述】
    此事件是在一个对象失去焦点时发生,焦点的丢失或者是由于制表键移动或单击另一个对象操作的结果,或者是代码中使用 SetFocus 方法改变焦点的结果。
【示例】
       本例演示了在 TextBox 获得或失去焦点(用鼠标或 TAB 键选择)时,改变颜色,并在 Label 控件中显示适当的文字。
    要尝试这个例子,可将代码粘贴到一个 包含 2 个 TextBox 控件和一个 Label 的窗体声明部分,然后按 F5 键并在 Text1 和 Text2 之间移动焦点。 ?
    Private Sub Text1_GotFocus ()
    ' 将焦点用红色显示.
    Text1.BackColor = RGB(255, 0, 0)
    Label1.Caption = "Text1 has the focus."
    End Sub
    
    Private Sub Text1_LostFocus ()
    ' 用蓝色显示失去焦点.
    Text1.BackColor = RGB(0, 0, 255)
    Label1.Caption = "Text1 does’t have the focus。"
    End Sub
【备注】
      LostFocus 事件过程主要是用来对更新进行验证和确认。使用 LostFocus 可以在焦点移离控件时引进确认。这类事件过程的另一种用途与在 GotFocus 事件过程中的应用类似,可以隐藏、显示其它对象或者使它们有效或无效。也可使设置在该对象的 GotFocus 事件过程中的条件取反或对其进行更改。
      如果由 Visual Basic 所建立的 .exe 文件要显示一个由也是用 Visual Basic 所建立的 .dll 文件所创建的对话框,则该 .exe 文件的窗体将得到 Deactivate 和 LostFocus 事件。这可能是不希望的,因为对话框将不能获得 Deactivate 事件:
      如果该对象是进程外的部件。
      如果该对象不是用 Visual Basic 编写成。
      在开发环境中当调用一个用 Visual Basic 所建立的 DDL 时。

=======

LTrim


【名称】
    LTrim
【类别】
    字符串函数
【原形】
      LTrim(string)
【参数】
    必选的,string 参数可以是任何有效的字符串表达式。如果 string 包含 Null,将返回 Null。
【返回值】
    返回 Variant (String)型数据类型。
【异常/错误】
    无
【描述】
    返回String指定字符串的拷贝,没有前导空白 。
【示例】
    本示例使用 LTrim 及 RTrim 函数将某字符串的开头的空格全部去除。
    Dim MyString, TrimString
    MyString = " <-trim-> " ' 设置字符串初值。
    TrimString = LTrim(MyString) ' TrimString = "<-trim-> "。
【备注】
      函数值类型和函数功能如下表所示。
    字符串函数
    函数名
    函数值类型
    功能
    举例
    Chr$(N)
    String
    求以N为ASCII码的字符
    Chr(65)=“A”
    Str$(N)
    String
    将N转换为字符串,如果N>0,则返回的字符串中包含一个前导空格,暗示有一个正号
    Str$(-12345)=“-12345”
    Str(12345)= “ 12345”
    Len(C)
    Long
    求字符串C中包含的字符个数
    Len(“Abab字符串4")=8
    Ucase$(C)
    String
    将字符串C中的小写英文字母转换成大写英文字母
    Ucase(“abABabc")="ABABABC"
    Lcase$(C)
    String
    将字符串C中的大写英文字母转换成小写英文字母
    Ucase(“abABabc")="abababc"
    Space$(N)
    String
    产生N个空格组成的字符串
    Len(Space(6))=6
    String$(N,C)
    String
    产生N个由C指定的第一个字符组成的字符串,C可以是ASCII码数
    String(6,”ABC”)=“AAAAAA”
    String(6,65)=“AAAAAA”
    Left(C,N)
    String
    从字符串C的最左边开始,截取N个字符
    Left$(“ABCDEF",3)="ABC”
    Right$(C,N)
    String
    从字符串C的最右边开始,截取N个字符
    Right$ (“ABCDEF",3)="DEF”
    Mid$(C,N1 [,N2 ])
    String
    从字符串C中N1指定的起始位置处开始,截取N2个字符
    Mid(“ABCDEF”,2,3)=”BCD”
    Mid(“ABCDEF”,2)=”BCDEF”
    Ltrim$(C)
    String
    删除字符串C中的前导空格
    Ltrim(“ ABCD ”)="ABCD ”
    Rtrim$(C)
    String
    删除字符串C中的尾部空格
    Ltrim(“ ABCD ”)=" ABCD”
    Trim$(C)
    String
    删除字符串参数中的前导和尾部空格
    Ltrim(“ ABCD ”)="ABCD”
    StrComp(C1,C2[,N])
    Integer
    比较字符串C1和字符串C2的大小,N是比较类型,取值0、1或2
    StrComp(“ABC",”abc",1)=0
    StrComp(“ABC",”abc",0)=-1
    StrComp(“abc ",” ABC ",0)=1
    InStr([N1,]C1,C2[,N2])
    Integer
    在字符串C1中,从N1开始到N2位置,开始找C2,省略N1时从C1头开始找,省略N2时找到C1尾止。找不到时,函数值为0
    InStr(2,”ABCDE”,”C”,4)=3
    InStr(2,”ABCDEF”,”CDE”)=3
    InStr(”ABCDEFGH”,”CDE”)=3
    InStr(”ABCDEFGH”,”XY”)=0
      说明:(1)表中的C表示是字符串表达式,表中的N表示是数值表达式
      (2)对于数值函数Val(C),逗号“,”和美圆符号“$”,都不能被识别;空格、制表符和换行符都将从参数中去掉;当遇到字母E或D 时,将其按单精度或双精度实型浮点数处理。
      (3)LenB(C)函数与Len(C)函数功能相近,只不过LenB函数求的是字符串的字节数,而不是字符串中字符的个数。例如:LenB(“ABCabc123")=18,LenB(“字符串”)=6。
      (4)对于产生字符串函数String$(N,C),其中,C参数可以为任何有效的数值表达式或字符串表达式,如果为数值表达式,则表示组成字符串的字符的ASCII码;如果为字符串表达式,则其第一个字符将用于产生字符串。
      (5)对于字符串左截函数Left(C,N),N参数为数值表达式,其值指出函数值中包含多少个字符,如果其值为0,则函数值是长度为零的字符串(即空串);如果其值大于或等于字符串C中的字符数,则函数值为整个字符串。
      LeftB函数与Left函数功能相近,只不过LeftB函数求的是字符串的字节数,而不是字符串中字符的个数。LeftB(“ABCDE”,6)=”ABC”。
      (6) 对于字符串右截取函数Right(C,N),N参数为数值表达式,其值指出函数值中包含多少个字符。如果其值为0,则函数值为空串;如果其值大于或等于字符串C中的字符个数,则函数值为整个字符串。
       RightB函数与Right函数功能相近,只不过RightB函数求的是字符串的字节数,而不是字符串中字符的个数。RightB(“ABCDE”,6)=”CDE”。
      (7)N1是数值表达式,其值表示开始截取字符的起始位置。如果该数值超过字符串C中的字符数,则函数值为空串。N2是数值表达式,其值表示要截取的字符数。如果省略该参数,则函数值将包含字符串C中从起始位置到字符串末尾的所有字符。
      MidB函数与Mid函数功能相近,只不过MidB函数求的是字符串的字节数,而不是字符串中字符的个数。例如:MidB(“ABCDEFG”,5,8)=”CDEF”。
      (8)因为将一字符串赋值给一定长字符串变量时,如字符串变量的长度大于字符串的长度,则用空格填充该字符串变量尾部多余的部分,所以在处理定长字符串变量时,删除空格的Ltrim和Rtrim函数是非常有用的。
      (9)对于字符串比较函数StrComp(C1,C2[,N] ),N是指定字符串的比较类型。比较类型可以是0、1或2,若比较类型为0,则执行二进制比较,此时英文字母区分大小写;若比较类型为1,则执行文本比较,此时英文字母不区分大小写;若比较类型为2,则是执行基于数据库信息的比较,仅对Microsoft Access起作用。若省略该参数,则默认比较类型为0。
      当字符串C1小于字符串C2时,函数值为—1;当字符串C1等于字符串C2时,函数值为0:当字符串C1大于字符串C2时,函数值为1。

=======

Mid


【名称】
    Mid
【类别】
    字符串函数
【原形】
      Mid(string, start[, length])
【参数】
    Mid 函数的语法具有下面的命名参数:
    部分
    说明
    string
    必要参数。字符串表达式,从中返回字符。如果 string 包含 Null,将返回 Null。
    start
    必选参数。为 Long。string 中被取出部分的字符位置。如果 start 超过 string 的字符数,Mid 返回零长度字符串 ("")。
    length
    可选参数;为 Variant (Long)。要返回的字符数。如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到尾端的所有字符。
    
【返回值】
    返回 Variant (String)型数据类型。
【异常/错误】
    无
【描述】
    返回从字符串string中start指定的起始位置处开始,截取length个字符。如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到尾端的所有字符。
【示例】
    本示例使用 Mid 语句来得到某个字符串中的几个字符。
    Dim MyString, FirstWord, LastWord, MidWords
    MyString = "Mid Function Demo" 建立一个字符串。
    FirstWord = Mid(MyString, 1, 3) ' 返回 "Mid"。
    LastWord = Mid(MyString, 14, 4) ' 返回 "Demo"。
    MidWords = Mid(MyString, 5) ' 返回 "Funcion Demo"。
【备注】
    欲知 string 的字符数,可用 Len 函数。
    注意:MidB 函数作用于字符串中包含的字节数据,如同在双字节字符集(DBCS)语言中一样。因此其参数指定的是字节数,而不是字符数。对于使用 MidB的示例代码,请参阅示例主题中的第二个示例。
      函数值类型和函数功能如下表所示。
    字符串函数
    函数名
    函数值类型
    功能
    举例
    Chr$(N)
    String
    求以N为ASCII码的字符
    Chr(65)=“A”
    Str$(N)
    String
    将N转换为字符串,如果N>0,则返回的字符串中包含一个前导空格,暗示有一个正号
    Str$(-12345)=“-12345”
    Str(12345)= “ 12345”
    Len(C)
    Long
    求字符串C中包含的字符个数
    Len(“Abab字符串4")=8
    Ucase$(C)
    String
    将字符串C中的小写英文字母转换成大写英文字母
    Ucase(“abABabc")="ABABABC"
    Lcase$(C)
    String
    将字符串C中的大写英文字母转换成小写英文字母
    Ucase(“abABabc")="abababc"
    Space$(N)
    String
    产生N个空格组成的字符串
    Len(Space(6))=6
    String$(N,C)
    String
    产生N个由C指定的第一个字符组成的字符串,C可以是ASCII码数
    String(6,”ABC”)=“AAAAAA”
    String(6,65)=“AAAAAA”
    Left(C,N)
    String
    从字符串C的最左边开始,截取N个字符
    Left$(“ABCDEF",3)="ABC”
    Right$(C,N)
    String
    从字符串C的最右边开始,截取N个字符
    Right$ (“ABCDEF",3)="DEF”
    Mid$(C,N1 [,N2 ])
    String
    从字符串C中N1指定的起始位置处开始,截取N2个字符
    Mid(“ABCDEF”,2,3)=”BCD”
    Mid(“ABCDEF”,2)=”BCDEF”
    Ltrim$(C)
    String
    删除字符串C中的前导空格
    Ltrim(“ ABCD ”)="ABCD ”
    Rtrim$(C)
    String
    删除字符串C中的尾部空格
    Ltrim(“ ABCD ”)=" ABCD”
    Trim$(C)
    String
    删除字符串参数中的前导和尾部空格
    Ltrim(“ ABCD ”)="ABCD”
    StrComp(C1,C2[,N])
    Integer
    比较字符串C1和字符串C2的大小,N是比较类型,取值0、1或2
    StrComp(“ABC",”abc",1)=0
    StrComp(“ABC",”abc",0)=-1
    StrComp(“abc ",” ABC ",0)=1
    InStr([N1,]C1,C2[,N2])
    Integer
    在字符串C1中,从N1开始到N2位置,开始找C2,省略N1时从C1头开始找,省略N2时找到C1尾止。找不到时,函数值为0
    InStr(2,”ABCDE”,”C”,4)=3
    InStr(2,”ABCDEF”,”CDE”)=3
    InStr(”ABCDEFGH”,”CDE”)=3
    InStr(”ABCDEFGH”,”XY”)=0
      说明:(1)表中的C表示是字符串表达式,表中的N表示是数值表达式
      (2)对于数值函数Val(C),逗号“,”和美圆符号“$”,都不能被识别;空格、制表符和换行符都将从参数中去掉;当遇到字母E或D 时,将其按单精度或双精度实型浮点数处理。
      (3)LenB(C)函数与Len(C)函数功能相近,只不过LenB函数求的是字符串的字节数,而不是字符串中字符的个数。例如:LenB(“ABCabc123")=18,LenB(“字符串”)=6。
      (4)对于产生字符串函数String$(N,C),其中,C参数可以为任何有效的数值表达式或字符串表达式,如果为数值表达式,则表示组成字符串的字符的ASCII码;如果为字符串表达式,则其第一个字符将用于产生字符串。
      (5)对于字符串左截函数Left(C,N),N参数为数值表达式,其值指出函数值中包含多少个字符,如果其值为0,则函数值是长度为零的字符串(即空串);如果其值大于或等于字符串C中的字符数,则函数值为整个字符串。
      LeftB函数与Left函数功能相近,只不过LeftB函数求的是字符串的字节数,而不是字符串中字符的个数。LeftB(“ABCDE”,6)=”ABC”。
      (6) 对于字符串右截取函数Right(C,N),N参数为数值表达式,其值指出函数值中包含多少个字符。如果其值为0,则函数值为空串;如果其值大于或等于字符串C中的字符个数,则函数值为整个字符串。
       RightB函数与Right函数功能相近,只不过RightB函数求的是字符串的字节数,而不是字符串中字符的个数。RightB(“ABCDE”,6)=”CDE”。
      (7)N1是数值表达式,其值表示开始截取字符的起始位置。如果该数值超过字符串C中的字符数,则函数值为空串。N2是数值表达式,其值表示要截取的字符数。如果省略该参数,则函数值将包含字符串C中从起始位置到字符串末尾的所有字符。
      MidB函数与Mid函数功能相近,只不过MidB函数求的是字符串的字节数,而不是字符串中字符的个数。例如:MidB(“ABCDEFG”,5,8)=”CDEF”。
      (8)因为将一字符串赋值给一定长字符串变量时,如字符串变量的长度大于字符串的长度,则用空格填充该字符串变量尾部多余的部分,所以在处理定长字符串变量时,删除空格的Ltrim和Rtrim函数是非常有用的。
      (9)对于字符串比较函数StrComp(C1,C2[,N] ),N是指定字符串的比较类型。比较类型可以是0、1或2,若比较类型为0,则执行二进制比较,此时英文字母区分大小写;若比较类型为1,则执行文本比较,此时英文字母不区分大小写;若比较类型为2,则是执行基于数据库信息的比较,仅对Microsoft Access起作用。若省略该参数,则默认比较类型为0。
      当字符串C1小于字符串C2时,函数值为—1;当字符串C1等于字符串C2时,函数值为0:当字符串C1大于字符串C2时,函数值为1。

=======

Month


【名称】
    Month
【类别】
    日期和时间函数
【原形】
    Month(date)
【参数】
    必选的,date 参数可以是任何能够表示日期的 Variant、数值表达式、字符串表达式或它们的组合。如果 date 包含 Null,则返回 Null。
【返回值】
    返回Variant (Integer)数据类型,其值为 1 到 12 之间的整数,表示一年中的某月。
【异常/错误】
    无
【描述】
    返回日期D的月份,函数值为1到12之间的整数。执行Print Month(Date) 后的结果为:8。
【示例】
    本示例使用 Month 函数来得知某个日期的月份。在开发环境中,日期原义会根据系统的地区设置,以短式日期格式显示。
    Dim MyDate, MyMonth
    MyDate = #February 12, 1969# ' 指定一日期。
    MyMonth = Month(MyDate) ' MyMonth 的值为 2。
【备注】
      日期和时间函数的函数名、函数值类型和函数功能如下表所示。针对表中的举例,设当前的系统时间为2003年4月23日下午两点18分30秒。
    表 日期和时间函数
    函数名
    函数值类型
    功能
    举例
    Now
    Date
    返回当前的系统日期和系统时间
    执行Print Now后的结果为:2003-4-23 14:18:30
    Date[$][()]
    Date
    返回当前的系统日期
    执行Print Date后的结果为:2003-4-23
    Time[$][()]
    Date
    返回当前的系统时间
    执行Print Time后的结果为:14:18:30
    DateSerial(年,月,日)
    Integer
    相对1899年12月30日(为0)返回一个天数值。其中的年、月、日参数为数值型表达式
    执行Print DateSerial (99,06,01)- DateSerial (99,05,01) 后的结果为:31
    DateValue(C)
    Integer
    相对1899年12月30日(为0)返回一个天数值,参数C为字符型表达式
    执行Print DateValue (“99,06,01”)-DateValue(“99,05,01”) 后的结果为:31
    Year(D)
    Integer
    返回日期D的年份,D可以是任何能够表示日期的数值、字符串表达式或它们的组合。其中,参数为天数时,函数值为相对于1899年12月30日后的指定天数的年号,其取值在1753到2078之间
    执行Print Year(Date) 后的结果为:2003
    执行Print Year(365) 后的结果为:1900
    1899年12月30日后的365天是1900年
    Month(D)
    Integer
    返回日期D的月份,函数值为1到12之间的整数
    执行Print Month(Date) 后的结果为:8
    Day(D)
    Integer
    返回日期D的日数,函数值为1到31之间的整数
    执行Print Day(Date) 后的结果为:23
    WeekDay(D)
    Integer
    返回日期D是星期几, 函数值与星期的对应关系如表2.6所示
    执行Print WeekDay (Date)后的结果为:3
    Hour(T)
    Integer
    返回时间参数中的小时数,函数值为0到23之间的整数
    执行Print Hour(Now)后的结果为:14
    Minute(T)
    Integer
    返回时间参数中的分钟数,函数值为0到59之间的整数
    执行Print Minute(Now) 后的结果为:18
    Second(T)
    Integer
    返回时间参数中的秒数,函数值为0到59之间的整数
    执行PrintSecond(Now) 后的结果为:30
    DateAdd(时间单位,时间,D)
    Date
    返回参考日期D加上一段时间T之后的日期,时间单位为一个字符串,表示所要加上的时间的单位,其取值及含义如表2.7所示
    执行Print DateAdd(”m”,2,Date) 后的结果为:
    2003-6-23。
    执行Print DateAdd(”q”,1,Date) 后的结果为:
    2003-7-23
    DateDiff(时间单位,D1,D2)
    Long
    返回两个指定日期D1和D2之间的间隔时间。如果日期D1比D2早,则函数值为正数,否则函数值为负数。时间单位,同DateAdd函数的时间单位参数
    执行Print DateDiff (“m”,#6/16/2002#,#6/16/2003#后的结果为:12
    执行Print DateDiff (“m”,#6/16/2003#,#6/16/2002#后的结果为:-12
    IsDate(参数)
    Boolean
    判断参数是否可以转换成日期,参数可以是任何类型的有效表达式。如果参数的值可转化成日期型数据,则函数值为Tree,否则函数值为False。在Microsoft Windows中,其范围为公元100年1月1日至公元9999年12月31日。
    IsDate(99-6-18)=False
    IsDate(“99-6-18")=True
      说明:(1)在表2.5中,日期参数D是任何能够表示为日期的数值型表达式、字符串型表达式或它们的组合。时间参数T是任何能够表示为时间的数值型表达式、字符串型表达式或它们的组合。
      当参数D是数值型表达式时,其值表示相对于1899年12月30日前后天数,负数是1899年12月30日以前,正数是1899年12月30日以后。
      (2)星期函数Weekday(D)的函数值与星期的对应关系如下表所示。
    表 星期函数Weekday(D)的函数值与星期的对应关系
    函数值
    星期
    函数值
    星期
    1
    星期日
    5
    星期四
    2
    星期一
    6
    星期五
    3
    星期二
    7
    星期六
    4
    星期三
    
    
    

=======

MouseDown


【名称】
    MouseDown
【类别】
    事件过程
【原形】
    Private Sub Form_MouseDown(button As Integer, shift As Integer, x As Single, y As Single)
      Private Sub MDIForm_MouseDown(button As Integer, shift As Integer, x As Single, y As Single)
      Private Sub object_MouseDown([index As Integer,]button As Integer, shift As Integer, x As Single, y As Single)
【参数】
               MouseDown事件各种参数包含下列部分:
    部分
【描述】
    object
    返回一个对象表达式,其值是“应用于”列表中的一个对象。
    index
    返回一个整数,用来唯一地标识一个在控件数组中的控件。
    button
    返回一个整数,用来标识该事件的产生是按下 ( MouseDown ) 或者释放 ( MouseUp ) 按钮引起的。button 参数是具有相应于左按钮(位 0),右按钮(位 1),以及中间按钮(位 2)的一个位字段。这些位的值分别等于 1,2,和 4。其中仅有一位被设置,指示出引起该事件的那个按钮。
    shift
    返回一个整数,在 button 参数指定的按钮被按下或者被释放的情况下,该整数相应于 SHIFT,CTRL,和 ALT 键的状态。某键被按下使得一个二进制位被设置。shift 参数是具有相应于 SHIFT 键(位 0),CTRL 键(位 1),以及 ALT 键(位 2)最少二进制位的一个位字段。这些位的值分别等于 1,2,和 4。shift 参数指示这些键的状态。这些位中可能有一些,全部,或者一个也没有被设置,指示这些键中的一些、全部,或者一个也没有被按下。例如,CTRL 和 ALT 键都被按下,则 shift 的值就是 6。
    x, y
    返回一个指定鼠标指针当前位置的数。x 和 y 的值所表示的总是通过该对象 ScaleHeight, ScaleWidth, ScaleLeft, 和ScaleTop 属性所建立的坐标系统的方式。
    其中,button,shift,x和y分别是四个参数。
      (1)button参数:它用来表示哪个鼠标键(左键,中键或右键)被按下或被放松,它是用一个整数来表示的。
    可以用三位的二进制数来表示三个鼠标键的状态,其中:左键是第0位,右键是第1位,中键是第2位。每一位都有0和1两种值,分别表示键的放松和按下,这个二进制数转换成十进制数即为button参数的值,例如,当只按下左键时,button参数值为:(001)2=1;按下右键时,button参数的值为:(010)2=2,按下中键时,button参数的值为:(100)2=4
      (2)button参数值也有相应的常量,分别为vbLeftButton、vbRightButton和vbMiddleButton,用户可以通过对象浏览器找到它们。
      (3)Shift参数:用于表示当某一鼠标键被按下或放松时,Shift键、Ctrl键和Alt键的按下或放松状态。该参数的取值规则与keyDown事件过程中的Shift参数一致。
    (4)x表示鼠标键被按下或放松时,鼠标指针的x轴坐标。
    (5)y表示鼠标键被按下或放松时,鼠标指针的y轴坐标。
【描述】
    这些事件是当按下 ( MouseDown ) 或者释放 ( MouseUp ) 鼠标按钮时发生。
【示例】
    本例演示一个简单的绘图应用程序。当任意鼠标按钮按下并拖动时,MouseDown 事件过程和一个相关的 MouseMove 事件过程协同工作以启动绘图。 MouseUp 事件过程禁止绘图。 要尝试这个例子,可将代码粘贴到一个窗体的声明部分,然后按 F5 键,单击窗体并在鼠标按钮按下时移动鼠标。
    Dim PaintNow As Boolean
    Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As
    Single, Y As Single)
    PaintNow = True ' 启动绘图。
    End Sub
    
    Private Sub Form_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)
    PaintNow = False ' 禁止绘图。
    End Sub
    
    Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)
    If PaintNow Then
    PSet (X, Y) ' 画一个点。
    End If
    End Sub
    
    Private Sub Form_Load ()
    DrawWidth = 10 ' 使用更宽的刷子。
    ForeColor = RGB(0, 0, 255) ' 设置绘图颜色。
    End Sub
【备注】
      前面已介绍了与鼠标相关的Click事件和DblClick事件,它们对于检测是否有鼠标动作非常有用。但在有些应用程序中,需要更紧密地跟踪鼠标动作,或者需要准确检测按下的是鼠标左键、中键还是右键,这些功能可以通过MouseDown和MouseUp事件来完成。
    当用户按下鼠标键时,就会产生MouseDown事件,当用户放松鼠标键时,就会产生MouseUp事件。
      为了在给定的一个鼠标按钮按下或释放时指定将引起的一些操作,应当使用 MouseDown 或者 MouseUp 事件过程。不同于 Click 和 DblClick 事件的是,MouseDown 和 MouseUp 事件能够区分出鼠标的左、右、和中间按钮。也可以为使用 SHIFT, CTRL, 和 ALT 等键盘换挡键编写用于鼠标—键盘组合操作的代码。
      下列情况对 Click 和 DblClick 事件都适用:
    如果鼠标按钮是当其指针在窗体或控件之上时被按下,则该对象将“捕获”鼠标并接收包括最后 MouseUp 事件在内的全部鼠标事件。这暗示了通过鼠标事件所返回的 x,y 鼠标指针坐标值,可以不总是在接收它们的对象的内部区域之内。
      如果鼠标被持续地按下,则第一次按下之后捕获鼠标的对象将接收全部鼠标事件直至所有按钮被释放为止。
      如果要测试 button 或 shift 参数,可以使用对象浏览器中的 Visual Basic (VB) 对象库中所列出的常数,用来定义该参数中的各个二进制位:
    常数(按钮)
    值
【描述】
    vbLeftButton
    1
    左按钮被按下
    vbRightButton
    2
    右按钮被按下
    vbMiddleButton
    4
    中间按钮被按下
    
    常数(换挡)
    值
【描述】
    vbShiftMask
    1
    SHIFT 键被按下。
    vbCtrlMask
    2
    CTRL 键被按下。
    vbAltMask
    4
    ALT 键被按下。
    
      随后这些常数作为位屏蔽,对于按钮的各种组合,无须计算各个组合的唯一的位字段即可进行测试。
     注意:可使用 MouseMove 事件过程对由于鼠标移动而引起的事件进行响应。MouseDown 和 MouseUp 所使用的 button 参数与 MouseMove 所使用的 button 参数是不同的。对于 MouseDown 和 MouseUp 来说,button 参数要精确地指出每个事件的一个按钮,而对于 MouseMove 来说,它指示的是所有按钮的当前状态。

=======

MouseMove


【名称】
    MouseMove
【类别】
    事件过程
【原形】
    Private Sub Form_MouseMove(button As Integer, shift As Integer, x As Single, y As Single)
      Private Sub MDIForm_MouseMove(button As Integer, shift As Integer, x As Single, y As Single)
      Private Sub object_MouseMove([index As Integer,] button As Integer, shift As Integer, x As Single, y As Single)
【参数】
    MouseMove 事件参数包含下列部分:
    部分
【描述】
    object
    一个对象表达式,其值是“应用于”列表中的一个对象。
    index
    一个整数,用来唯一地标识一个在控件数组中的控件。
    button
    一个整数,它对应鼠标各个按钮的状态,如果某个按钮按下,其中就有一个二进制位被设置。button 参数是具有相应于左按钮(位 0),右按钮(位 1),以及中间按钮(位 2)的一个位字段。这些位的值分别等于 1,2,和 4。它指示这些鼠标按钮的整体状态;三个二进制位中的一些、全部、或一个也没有被设置,指示这些按钮中的一些、全部、或一个也没有被按下。
    shift
    一个整数,该整数相应于 SHIFT,CTRL,和 ALT 键的状态。某键被按下使得一个二进制位被设置。shift 参数是具有相应于 SHIFT 键(位 0),CTRL 键(位 1),以及 ALT 键(位 2)最少二进制位的一个位字段。这些位的值分别等于 1,2,和 4。shift 参数指示这些键的状态。这些位中可能有一些、全部、或者一个也没有被设置,指示这些键中的一些、全部、或者一个也没有被按下。例如,CTRL 和 ALT 键都被按下,则 shift 的值就是 6。
    x, y
    一个指定鼠标指针当前位置的数。x 和 y 的值所表示的总是通过该对象 ScaleHeight, ScaleWidth, ScaleLeft,和 ScaleTop 属性所建立的坐标系统的方式。
    
    说明
    MouseMove 事件伴随鼠标指针在对象间移动时连续不断地产生。除非有另一个对象捕获了鼠标,否则,当鼠标位置在对象的边界范围内时该对象就能接收 MouseMove 事件。
    要测试 button 或 shift 参数,可使用对象浏览器中的 Visual Basic (VB) 对象库中所列出的常数,用来定义该参数中的各个位:
    常数(按钮)
    值
【描述】
    vbLeftButton
    1
    左按钮按下。
    vbRightButton
    2
    右按钮按下。
    vbMiddleButton
    4
    中间按钮按下。
    
    常数(换挡)
    值
【描述】
    vbShiftMask
    1
    SHIFT 键按下。
    vbCtrlMask
    2
    CTRL 键按下。
    vbAltMask
    4
    ALT 键按下。
    
    然后这些常数用作位屏蔽,对于按钮的各种组合,无须计算出各个组合的唯一的位字段值即可进行检测。
    要测试某一条件,首先将各个结果赋给一个临时整型变量然后再与一个位屏蔽的 button 或 shift 参数进行比较。测试应当用各个参数进行 And 运算,若结果大于零,则说明该键或按钮被按下。其操作如下:
    LeftDown = (Button And vbLeftButton) > 0
    CtrlDown = (Shift And vbCtrlMask) > 0
    然后,接下去可对结果的各种组合进行检测,其操作如下:
    If LeftDown And CtrlDown Then
    注意 为了对鼠标按钮按下和释放所引起的事件进行处理,可使用 MouseDown 和 MouseUp 事件过程。
    MouseMove 事件的 button 参数与 MouseDown 和 MouseUp 事件的 button 参数是不同的。对于 MouseMove 事件来说,button 参数指示的是所有按钮当前的状态;一个 MouseMove 事件可指示某些、全部或没有一个按钮被按下。对于 MouseDown 和 MouseUp 事件来说,button 参数在每个事件精确地指示一个按钮。
    在 MouseMove 事件中任何时侯移动窗口,都能引起层叠事件。当该窗口移动到指针下面时 MouseMove 事件将产生。即使是鼠标完全不动 MouseMove 事件也能产生。
【描述】
    此事件在移动鼠标时发生。在应用程序运行时,若用户拖动鼠标,就会产生MouseMove事件。
【示例】
    本例演示一个简单的绘图应用程序。当任鼠标按钮按下并拖动时,MouseDown 事件过程和一个相关的 MouseMove 事件协同工作以启动绘图。 MouseUp 事件过程禁止绘图。 要尝试这个例子,可将代码粘贴到一个窗体的声明部分,然后按 F5 键,单击窗体并在鼠标按钮按下时移动鼠标。
    Dim PaintNow As Boolean ' 声明变量.
    Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
    PaintNow = True ' 启动绘图。
    End Sub
    
    Private Sub Form_MouseUp (Button As Integer, X As Single, Y As Single)
    PaintNow = False ' 关闭绘图。
    End Sub
    
    Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)
    If PaintNow Then
    PSet (X, Y) ' 画一个点。
    End If
    End Sub
    
    Private Sub Form_Load ()
    DrawWidth = 10 ' 使用更宽的刷子。
    ForeColor = RGB(0, 0, 255) ' 设置绘图颜色。
    End Sub
【备注】
      这个事件过程中的四个参数button、shift、x和y的意义及取值规则与MouseDown事件过程类似,但button的含义有些差别:
      (1)在MouseMove事件中,button的值表示的是所有鼠标按键的当前状态,即鼠标左键被按下(1)、鼠标右键被按下(2)或所有鼠标键左右键同时被按下(3)。
      (2)在MouseDown事件和MouseUp事件中,button的值表示的是在这次事件中哪个鼠标按键被按下或松开,即左键(1)、右键(2)还是中键(4)。

=======

MouseUP


【名称】
    MouseUP
【类别】
    事件过程
【原形】
      Private Sub Form_MouseUp(button As Integer, shift As Integer, x As Single, y As Single)
      Private Sub MDIForm_MouseUp(button As Integer, shift As Integer, x As Single, y As Single)
      Private Sub object _MouseUp([index As Integer,]button As Integer, shift As Integer, x As Single, y As Single)
【参数】
      MouseDown 和 MouseUp 事件各种参数包含下列部分:
    部分
【描述】
    object
    返回一个对象表达式,其值是“应用于”列表中的一个对象。
    index
    返回一个整数,用来唯一地标识一个在控件数组中的控件。
    button
    返回一个整数,用来标识该事件的产生是按下 ( MouseDown ) 或者释放 ( MouseUp ) 按钮引起的。button 参数是具有相应于左按钮(位 0),右按钮(位 1),以及中间按钮(位 2)的一个位字段。这些位的值分别等于 1,2,和 4。其中仅有一位被设置,指示出引起该事件的那个按钮。
    shift
    返回一个整数,在 button 参数指定的按钮被按下或者被释放的情况下,该整数相应于 SHIFT,CTRL,和 ALT 键的状态。某键被按下使得一个二进制位被设置。shift 参数是具有相应于 SHIFT 键(位 0),CTRL 键(位 1),以及 ALT 键(位 2)最少二进制位的一个位字段。这些位的值分别等于 1,2,和 4。shift 参数指示这些键的状态。这些位中可能有一些,全部,或者一个也没有被设置,指示这些键中的一些、全部,或者一个也没有被按下。例如,CTRL 和 ALT 键都被按下,则 shift 的值就是 6。
    x, y
    返回一个指定鼠标指针当前位置的数。x 和 y 的值所表示的总是通过该对象 ScaleHeight, ScaleWidth, ScaleLeft, 和ScaleTop 属性所建立的坐标系统的方式。
    其中,button,shift,x和y分别是四个参数。
      (1)button参数:它用来表示哪个鼠标键(左键,中键或右键)被按下或被放松,它是用一个整数来表示的。
    可以用三位的二进制数来表示三个鼠标键的状态,其中:左键是第0位,右键是第1位,中键是第2位。每一位都有0和1两种值,分别表示键的放松和按下,这个二进制数转换成十进制数即为button参数的值,例如,当只按下左键时,button参数值为:(001)2=1;按下右键时,button参数的值为:(010)2=2,按下中键时,button参数的值为:(100)2=4
      (2)button参数值也有相应的常量,分别为vbLeftButton、vbRightButton和vbMiddleButton,用户可以通过对象浏览器找到它们。
      (3)Shift参数:用于表示当某一鼠标键被按下或放松时,Shift键、Ctrl键和Alt键的按下或放松状态。该参数的取值规则与keyDown事件过程中的Shift参数一致。
    (4)x表示鼠标键被按下或放松时,鼠标指针的x轴坐标。
    (5)y表示鼠标键被按下或放松时,鼠标指针的y轴坐标。
【描述】
    这些事件是当按下 ( MouseDown ) 或者释放 ( MouseUp ) 鼠标按钮时发生。
【示例】
    本例演示一个简单的绘图应用程序。当任意鼠标按钮按下并拖动时,MouseDown 事件过程和一个相关的 MouseMove 事件过程协同工作以启动绘图。 MouseUp 事件过程禁止绘图。 要尝试这个例子,可将代码粘贴到一个窗体的声明部分,然后按 F5 键,单击窗体并在鼠标按钮按下时移动鼠标。
    Dim PaintNow As Boolean
    Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As
    Single, Y As Single)
    PaintNow = True ' 启动绘图。
    End Sub
    
    Private Sub Form_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)
    PaintNow = False ' 禁止绘图。
    End Sub
    
    Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)
    If PaintNow Then
    PSet (X, Y) ' 画一个点。
    End If
    End Sub
    
    Private Sub Form_Load ()
    DrawWidth = 10 ' 使用更宽的刷子。
    ForeColor = RGB(0, 0, 255) ' 设置绘图颜色。
    End Sub
【备注】
      前面已介绍了与鼠标相关的Click事件和DblClick事件,它们对于检测是否有鼠标动作非常有用。但在有些应用程序中,需要更紧密地跟踪鼠标动作,或者需要准确检测按下的是鼠标左键、中键还是右键,这些功能可以通过MouseDown和MouseUp事件来完成。
    当用户按下鼠标键时,就会产生MouseDown事件,当用户放松鼠标键时,就会产生MouseUp事件。
      为了在给定的一个鼠标按钮按下或释放时指定将引起的一些操作,应当使用 MouseDown 或者 MouseUp 事件过程。不同于 Click 和 DblClick 事件的是,MouseDown 和 MouseUp 事件能够区分出鼠标的左、右、和中间按钮。也可以为使用 SHIFT, CTRL, 和 ALT 等键盘换挡键编写用于鼠标—键盘组合操作的代码。
      下列情况对 Click 和 DblClick 事件都适用:
    如果鼠标按钮是当其指针在窗体或控件之上时被按下,则该对象将“捕获”鼠标并接收包括最后 MouseUp 事件在内的全部鼠标事件。这暗示了通过鼠标事件所返回的 x,y 鼠标指针坐标值,可以不总是在接收它们的对象的内部区域之内。
      如果鼠标被持续地按下,则第一次按下之后捕获鼠标的对象将接收全部鼠标事件直至所有按钮被释放为止。
      如果要测试 button 或 shift 参数,可以使用对象浏览器中的 Visual Basic (VB) 对象库中所列出的常数,用来定义该参数中的各个二进制位:
    常数(按钮)
    值
【描述】
    vbLeftButton
    1
    左按钮被按下
    vbRightButton
    2
    右按钮被按下
    vbMiddleButton
    4
    中间按钮被按下
    
    常数(换挡)
    值
【描述】
    vbShiftMask
    1
    SHIFT 键被按下。
    vbCtrlMask
    2
    CTRL 键被按下。
    vbAltMask
    4
    ALT 键被按下。
    
      随后这些常数作为位屏蔽,对于按钮的各种组合,无须计算各个组合的唯一的位字段即可进行测试。
     注意:可使用 MouseMove 事件过程对由于鼠标移动而引起的事件进行响应。MouseDown 和 MouseUp 所使用的 button 参数与 MouseMove 所使用的 button 参数是不同的。对于 MouseDown 和 MouseUp 来说,button 参数要精确地指出每个事件的一个按钮,而对于 MouseMove 来说,它指示的是所有按钮的当前状态。

=======

MsgBox


【名称】
    MsgBox
【类别】
    消息函数
【原形】
    MsgBox(prompt[, buttons] [, title] [, helpfile, context])
    或 MsgBox(提示[,按钮值][,标题])
【参数】
    MsgBox 函数的语法具有以下几个命名参数:
    部分
【描述】
    Prompt
    必需的。字符串表达式,作为显示在对话框中的消息。prompt 的最大长度大约为 1024 个字符,由所用字符的宽度决定。如果 prompt 的内容超过一行,则可以在每一行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或是回车与换行符的组合 (Chr(13) & Chr(10)) 将各行分隔开来。
    Buttons
    可选的。数值表达式是值的总和,指定显示按钮的数目及形式,使用的图标样式,缺省按钮是什么以及消息框的强制回应等。如果省略,则 buttons 的缺省值为 0。
    Title
    可选的。在对话框标题栏中显示的字符串表达式。如果省略 title,则将应用程序名放在标题栏中。
    Helpfile
    可选的。字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件。如果提供了 helpfile,则也必须提供 context。
    Context
    可选的。数值表达式,由帮助文件的作者指定给适当的帮助主题的帮助上下文编号。如果提供了 context,则也必须提供 helpfile。
    
    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) 说明哪一个按钮是缺省值;而第四组值 (0, 4096) 则决定消息框的强制返回性。将这些数字相加以生成 buttons 参数值的时候,只能由每组值取用一个数字。
    注意 这些常数都是 Visual Basic for Applications (VBA) 指定的。结果,可以在程序代码中到处使用这些常数名称,而不必使用实际数值。
      
【返回值】
    常数
    值
【描述】
    vbOK
    1
    OK
    vbCancel
    2
    Cancel
    vbAbort
    3
    Abort
    vbRetry
    4
    Retry
    vbIgnore
    5
    Ignore
    vbYes
    6
    Yes
    vbNo
    7
    No
    
    说明
    在提供了 helpfile 与 context 的时候,用户可以按 F1 来查看与 context 相应的帮助主题。像 Microsoft Excel 这样一些主机应用程序也会在对话框中自动添加一个 Help 按钮。
    如果对话框显示 Cancel 按钮,则按下 ESC 键与单击 Cancel 按钮的效果相同。如果对话框中有 Help 按钮,则对话框中提供有上下文相关的帮助。但是,直到其它按钮中有一个被单击之前,都不会返回任何值。
    注意 如果还要指定第一个命名参数以外的参数,则必须在表达式中使用 MsgBox。为了省略某些位置参数,必须加入相应的逗号分界符。
    
【异常/错误】
    无
【描述】
      出现一个[消息]对话框,在此[消息]对话框中显示提示信息,等待用户单击按钮,并返回一个整型数值,告诉应用程序用户单击的是哪一个按钮。
       说明:(1)[提示]参数:它是一个字符串表达式,表示显示在对话框中的提示信息。它可以是汉字,可以显示多行提示文字。
      (2)[标题]参数:它是一个字符串表达式,是[消息]对话框标题栏中的标题文字。省略此参数时,则将工程名作为标题。它是一个为可选项。
      (3)按钮值参数为可选项,它是一个数值型表达式,表示在对话框中显示的按钮的数目、形式、图标样式和缺省按钮以及等待模式等信息,如表2.9所示,在此表的每组值中取一个数字相加,即可生成此参数值。如果省略此参数,则默认为0。
    表2.9 按钮参数的取值及其含义
    类型
    按钮值
    解 释
    按钮
    0
    在[消息]对话框中显示“确定”按钮
    
    1
    在[消息]对话框中显示“确定”和“取消”按钮
    
    2
    在[消息]对话框中显示“终止(A)”、重试(R)”和“忽略(I)”按钮
    
    3
    在[消息]对话框中显示“是(Y)”、“否(N)”和“取消”按钮
    
    4
    在[消息]对话框中显示“是(Y)”和“否(N)”按钮
    
    5
    在[消息]对话框中显示“重试(R)”和“取消”按钮
    图标
    16
    在[消息]对话框中显示“X”图标
    
    32
    在[消息]对话框中显示“?”图标
    
    48
    在[消息]对话框中显示“!”图标
    
    64
    在[消息]对话框中显示“I”图标
    默认按钮
    0
    在[消息]对话框中第1个按钮是缺省值
    
    256
    在[消息]对话框中第2个按钮是缺省值
    
    512
    在[消息]对话框中第3个按钮是缺省值
    等待模式
    0
    应用程序暂停运行,直到用户对[消息]对话框作出响应才继续执行下面的程序
    
    4096
    全部应用程序都被挂起,直到用户对消息框作出响应才执行下面程序
      例如:如果[消息]对话框内显示“是(Y)”、“否(N)”和“取消”按钮,同时显示“!”图标,则按钮参数的取值应为3+48=51;如果[消息]对话框内显示“重试(R)”和“取消”按钮,同时显示“?”图标,则按钮参数的取值应为5+32=37。
      (4)函数值为整型,如表2.10所示。它告诉程序用户单击了哪一个按钮。如果[消息]对话框内显示[Cancel]按钮,则按ESC键和单击[Cancel]按钮的效果一样。
    表2.10 消息函数的函数值及其含义
    函数值
    含义
    函数值
    含义
    1
    OK(确定)
    5
    Ignore(忽略)
    2
    Cancel(取消)
    6
    Yes(是)
    3
    Abort(终止)
    7
    No(否)
    4
    Retry(重试)
    
    
      
【示例】
    本示例使用 MsgBox 函数,在具有“是”及“否”按钮的对话框中显示一条严重错误信息。示例中的缺省按钮为“否”,MsgBox 函数的返回值视用户按哪一个钮而定。本示例假设 DEMO.HLP 为一帮助文件,其中有一个内容代码为 1000。
    Dim Msg, Style, Title, Help, Ctxt, Response, MyString
    Msg = "Do you want to continue ?" ' 定义信息。
    Style = vbYesNo + vbCritical + vbDefaultButton2 ' 定义按钮。
    Title = "MsgBox Demonstration" ' 定义标题。
    Help = "DEMO.HLP" ' 定义帮助文件。
    Ctxt = 1000 ' 定义标题
    ' 上下文。
    ' 显示信息。
    Response = MsgBox(Msg, Style, Title, Help, Ctxt)
    If Response = vbYes Then ' 用户按下“是”。
    MyString = "Yes" ' 完成某操作。
    Else ' 用户按下“否”。
    MyString = "No" ' 完成某操作。
    End If
【备注】

=======

Now


【名称】
    Now
【类别】
    日期和时间函数
【原形】
    Now
【参数】
【返回值】
    返回Variant (Date)数据类型。
【异常/错误】
    无
【描述】
    返回一个根据计算机系统设置的日期和时间来指定日期和时间。
【示例】
    本示例使用 Now 函数返回系统当前的日期与时间。
    Dim Today
    Today = Now ' 将系统当前的日期与时间给变量。
【备注】
      日期和时间函数的函数名、函数值类型和函数功能如下表所示。针对表中的举例,设当前的系统时间为2003年4月23日下午两点18分30秒。
    表 日期和时间函数
    函数名
    函数值类型
    功能
    举例
    Now
    Date
    返回当前的系统日期和系统时间
    执行Print Now后的结果为:2003-4-23 14:18:30
    Date[$][()]
    Date
    返回当前的系统日期
    执行Print Date后的结果为:2003-4-23
    Time[$][()]
    Date
    返回当前的系统时间
    执行Print Time后的结果为:14:18:30
    DateSerial(年,月,日)
    Integer
    相对1899年12月30日(为0)返回一个天数值。其中的年、月、日参数为数值型表达式
    执行Print DateSerial (99,06,01)- DateSerial (99,05,01) 后的结果为:31
    DateValue(C)
    Integer
    相对1899年12月30日(为0)返回一个天数值,参数C为字符型表达式
    执行Print DateValue (“99,06,01”)-DateValue(“99,05,01”) 后的结果为:31
    Year(D)
    Integer
    返回日期D的年份,D可以是任何能够表示日期的数值、字符串表达式或它们的组合。其中,参数为天数时,函数值为相对于1899年12月30日后的指定天数的年号,其取值在1753到2078之间
    执行Print Year(Date) 后的结果为:2003
    执行Print Year(365) 后的结果为:1900
    1899年12月30日后的365天是1900年
    Month(D)
    Integer
    返回日期D的月份,函数值为1到12之间的整数
    执行Print Month(Date) 后的结果为:8
    Day(D)
    Integer
    返回日期D的日数,函数值为1到31之间的整数
    执行Print Day(Date) 后的结果为:23
    WeekDay(D)
    Integer
    返回日期D是星期几, 函数值与星期的对应关系如表2.6所示
    执行Print WeekDay (Date)后的结果为:3
    Hour(T)
    Integer
    返回时间参数中的小时数,函数值为0到23之间的整数
    执行Print Hour(Now)后的结果为:14
    Minute(T)
    Integer
    返回时间参数中的分钟数,函数值为0到59之间的整数
    执行Print Minute(Now) 后的结果为:18
    Second(T)
    Integer
    返回时间参数中的秒数,函数值为0到59之间的整数
    执行PrintSecond(Now) 后的结果为:30
    DateAdd(时间单位,时间,D)
    Date
    返回参考日期D加上一段时间T之后的日期,时间单位为一个字符串,表示所要加上的时间的单位,其取值及含义如表2.7所示
    执行Print DateAdd(”m”,2,Date) 后的结果为:
    2003-6-23。
    执行Print DateAdd(”q”,1,Date) 后的结果为:
    2003-7-23
    DateDiff(时间单位,D1,D2)
    Long
    返回两个指定日期D1和D2之间的间隔时间。如果日期D1比D2早,则函数值为正数,否则函数值为负数。时间单位,同DateAdd函数的时间单位参数
    执行Print DateDiff (“m”,#6/16/2002#,#6/16/2003#后的结果为:12
    执行Print DateDiff (“m”,#6/16/2003#,#6/16/2002#后的结果为:-12
    IsDate(参数)
    Boolean
    判断参数是否可以转换成日期,参数可以是任何类型的有效表达式。如果参数的值可转化成日期型数据,则函数值为Tree,否则函数值为False。在Microsoft Windows中,其范围为公元100年1月1日至公元9999年12月31日。
    IsDate(99-6-18)=False
    IsDate(“99-6-18")=True
      说明:(1)在表2.5中,日期参数D是任何能够表示为日期的数值型表达式、字符串型表达式或它们的组合。时间参数T是任何能够表示为时间的数值型表达式、字符串型表达式或它们的组合。
      当参数D是数值型表达式时,其值表示相对于1899年12月30日前后天数,负数是1899年12月30日以前,正数是1899年12月30日以后。
      (2)星期函数Weekday(D)的函数值与星期的对应关系如下表所示。
    表 星期函数Weekday(D)的函数值与星期的对应关系
    函数值
    星期
    函数值
    星期
    1
    星期日
    5
    星期四
    2
    星期一
    6
    星期五
    3
    星期二
    7
    星期六
    4
    星期三
    
    
    

=======

Oct


【名称】
    Oct
【类别】
    转换函数
【原形】
    Oct (number)
【参数】
    必选的,number 参数为任何有效的数值表达式或字符串表达式。
【返回值】
    返回一个 Variant (String)。
【异常/错误】
    无
【描述】
    返回 Variant (String),代表一数值的八进制值。
【示例】
    本示例使用 Oct 函数将某数值转换为 8 进制表达式。
    Dim MyOct
    MyOct = Oct(4) ' 返回 4。
    MyOct = Oct(8) ' 返回 10。
    MyOct = Oct(459) ' 返回 713。
【备注】
    如果 number 尚非整数,那么在执行前会先四舍五入成最接近的整数。
    如果 number 为
    Oct 返回
    Null
    Null
    Empty
    零 (0)
    任何其他的数字
    最多可到 11 个八进制字符。
    
    可以将适当范围的数前缀以 &O 来直接表示八进制数字。例如,八进制表示法的 &O10 代表十进制的 8。

=======

OLECompleteDrag


【名称】
    OLECompleteDrag
【类别】
    事件过程
【原形】
    Private Sub object_OLECompleteDrag([effect As Long])
【参数】
    OLECompleteDrag 事件参数包含下面部分:
    部分
【描述】
    Object
    对象表达式,其值是“应用于”列表中的一个对象。
    Effect
    源对象设置的长整型数,用来识别执行的动作,这样当部件被移动后允许源采取适当的动作(例如,如果源被从一个部件移到另一个部件,则执行删除数据操作)。可能的取值列于“设置值”中。
    
    effect 设置如下:
    常数
    值
【描述】
    VbDropEffectNone
    0
    放目标不接受数据, 或者放操作被取消。
    VbDropEffectCopy
    1
    放结果保存于从源到目标的数据拷贝中。初始数据没有被拖放操作改变。
    VbDropEffectMove
    2
    放结果保存于初始数据的连接中,该数据是在拖放源和放目标之间产生的。
    
【描述】
    当源部件被放到目标部件时发生,并通知源部件拖放操作被执行或取消。
【示例】
      无
【备注】
    OLECompleteDrag 事件是 OLE 拖放操作最后调用的事件。当对象被放到目标部件时,此事件通知源部件所执行的动作。目标通过 OLEDragDrop 事件的 effect 参数设置此值。基于此,源可决定需采取的适当动作。例如,若对象被移到目标 (vbDropEffectMove),移动后源需要在自身删除该对象。
    如果 OLEDragMode 设置为 Automatic,则 Visual Basic 执行缺省的动作。此事件仍然发生,允许添加或改变动作。
      大部分部件支持人工 OLE 拖放事件,也有一些支持自动化 OLE 拖放事件。

=======

OLEDragDrop


【名称】
    OLEDragDrop
【类别】
    事件过程
【原形】
    Private Sub object_OLEDragDrop(data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single)
【参数】
      OLEDragDrop 事件参数包含下面部分:
    部分
【描述】
    Object
    对象表达式,其值是“应用于”列表中的一个对象。
    Data
    DataObject 对象,包含源提供的格式,另外也可能包含这些格式的数据。若 DataObject 不包含数据,则当控件调用 GetData 方法时提供数据。SetData 和 Clear 方法不能用在这里。
    Effect
    源对象设置的长整型数,用来识别执行的动作,这样当部件被移动后允许源采取适当的动作(例如,如果源被从一个部件移到另一个部件,则执行删除数据操作)。可能的取值列于“设置值”中。
    Button
    整数,当按下鼠标键时,与鼠标状态相对应。左键为位 0,右键为位 1,中键为位 2。这些位相应的值分别为 1,2 和 4,它代表了鼠标键的状态。可设置三个位中的部分、全部或根本不设置,相应地表明部分、全部按键被按下或没有按键按下。
    Shift
    整数,当按下 SHIFT、ctrl 和 ALT 键时,与这些键状态相对应。 shift 键为位 0,ctrl 键为位 1,alt 键为位 2。这些位相应的值分别为 1,2 和 4,shift 参数代表了这些键的状态。可设置三个位中的部分、全部或根本不设置,相应地表明部分、全部按键被按下或没有按键按下。例如,同时按下 ctrl 和 ALT 键,shift 值为 6。
    x,y
    确定鼠标指针当前位置的数值。x 和 y 值由对象的 ScaleHeight、ScaleWidth、ScaleLeft 和 ScaleTop 属性设置的坐标系统的格式来表示。
    VbDropEffectScroll
    -2147483648一个掩码,指出放下目标窗口已经滚动或应该滚动。
    
    effect 设置如下:
    常数
    值
【描述】
    VbDropEffectNone
    0
    放目标不接受数据。
    VbDropEffectCopy
    1
    放结果保存于从源到目标的数据拷贝中。初始数据没有被拖放操作改变。
    VbDropEffectMove
    2
    放结果保存于要从拖放源移到放源的数据中。移动后,拖放源要删除数据。
    
【描述】
    当源部件决定放操作能发生,且源部件被放到目标部件时,此事件发生。注意 仅当 OLEDropMode 被设置为 1 (Manual) 时,此事件才发生。
【示例】
    无
【备注】
    源 ActiveX 部件应总是屏蔽 effect 参数值,以确保同将来实现的 ActiveX 部件兼容。目前,仅使用了 effect 参数 32 位中的 3 位,然而将来的 Visual Basic 版本就可能用到其它位。所以考虑到将来的问题, 拖源和放目标在进行任何比较之前应屏蔽这些值。

=======

OLEDragOver


【名称】
    OLEDragOver
【类别】
    事件过程
【原形】
    Private Sub object_OLEDragOver(data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single, state As Integer)
【参数】
    OLEDragOver 事件语法包含下面部分:
    部分
【描述】
    object
    对象表达式,其值是“应用于”列表中的一个对象。
    ddta
    DataObject 对象,包含源提供的格式,另外也可能包含这些格式的数据。若 DataObject 不包含数据,则当控件调用 GetData 方法时提供数据。SetData 和 Clear 方法不能用在这里。
    effect
    源对象最初设置的长整型数,用来识别它支持的效果。在事件过程中,此参数必须被目标部件正确地设置。effect 值由所有活动的效果(如设置值表)逻辑 Or 确定。目标部件应检查这些效果以及其它参数以确定哪个动作适合于它,然后把此参数设置为允许的效果之一(如源所规定),以便确定放置选项到部件该执行哪个动作。可能的取值列于“设置值”中。
    button
    整数,当按下鼠标键时,与鼠标状态相对应。左键为位 0,右键为位 1,中键为位 2。这些位相应的值分别为 1,2 和 4,它代表了鼠标键的状态。可设置三个位中的部分、全部或根本不设置,相应地表明部分、全部按键被按下或没有按键按下。
    shift
    整数,当按下 SHIFT、CTRL 和 ALT 键时,与这些键状态相对应。SHIFT 键为位 0,CTRL 键为位 1,ALT 键为位 2。这些位相应的值分别为 1,2 和 4,shift 参数代表了这些键的状态。可设置三个位中的部分、全部或根本不设置,相应地表明部分、全部按键被按下或没有按键按下。例如,同时按下 CTRL 和 ALT 键,shift 值为 6。
    x,y
    在目标窗体或控件中, 规定当前鼠标指针水平 (x) 和垂直 (y) 位置的数。x 和 y 值由对象的 ScaleHeight、ScaleWidth、ScaleLeft 和 ScaleTop 属性设置的坐标系统格式来表示。
    state
    整数,相应于控件的转换状态,此控件将被拖放到与其相关的目标窗体或控件中。可能的取值列于“设置值”中。
    
    设置值
    effect 设置如下:
    常数
    值
【描述】
    vbDropEffectNone
    0
    放目标不接受数据。
    VbDropEffectCopy
    1
    放结果保存于从源到目标的数据拷贝中。初始数据没有被拖放操作改变。
    VbDropEffectMove
    2
    放结果保存于要从拖放源移到放源的数据中。移动后,拖放源要删除数据。
    vbDropEffectScroll
    -2147483648
    (&H80000000)
    在目标部件中,滚动正在或将要发生。此值与其它值共同使用。注意 仅当在部件中执行自己的滚动时才能应用。
    
    state 设置如下:
    常数
    值
【描述】
    vbEnter
    0
    在目标范围内源部件正被拖动。
    VbLeave
    1
    在目标范围之外源部件正被拖动。
    VbOver
    2
    在目标内源部件已经从一个位置移到另一个位置。
    
【描述】
    当一个部件在另一个部件上拖动时发生。
【示例】
    无
【备注】
      如果 state 参数是 vbLeave,表明鼠标指针已离开目标,则 x 和 y 参数保持为零值。
      源 ActiveX 部件应总是屏蔽 effect 参数值,以确保同将来实现的 ActiveX 部件兼容。现在仅使用了 effect 参数 32 位中的 3 位,然而将来的 Visual Basic 版本就可能用到其它位。所以考虑到将来的问题,拖源和放目标在进行任何比较之前应屏蔽这些值。
      例如,源部件不能把 effect 同 vbDropEffectCopy 相比,如:
      If Effect = vbDropEffectCopy...
      而应屏蔽该值或被搜寻的值,如:
      If Effect And vbDropEffectCopy = vbDropEffectCopy...
      -或-
      If (Effect And vbDropEffectCopy)...
      允许在 Visual Basic 新版本中定义新的放效果,并与现存的代码保持向后兼容性。
      大部分部件支持人工 OLE 拖放事件,也有一些支持自动化 OLE 拖放事件。

=======

OLEGiveFeedback


【名称】
    OLEGiveFeedback
【类别】
    事件过程
【原形】
    Private Sub object_OLEGiveFeedback(effect As Long, defaultcursors As Boolean)
【参数】
    OLEGiveFeedback 事件语法包含下面部分:
    部分
【描述】
    object
    对象表达式,其值是“应用于”列表中的一个对象。
    effectt
    在 OLEDragOver 事件中目标部件设置的长整型数, 若放选定项,则由此数确定要执行的动作。允许源采取合适的动作(例如给出可视的反馈)。可能的取值列于“设置值”中。
    defaultcursors
    布尔值,决定 Visual Basic 使用部件缺省鼠标图标,还是自定义鼠标图标。
    ?
    True(缺省) = 使用缺省鼠标图标。
    ?
    False = 不用缺省图标。必须用 Screen 对象的 MousePointer 属性设置鼠标图标。
    
    effect 设置如下:
    常数
    值
【描述】
    vbDropEffectNone
    0
    放目标不接受数据。
    vbDropEffectCopy
    1
    放结果保存于从源到目标的数据拷贝中。初始数据没有被拖放操作改变。
    vbDropEffectMove
    2
    放结果保存于要从拖放源移到放源的数据中。移动后,拖放源要删除数据。
    vbDropEffectScroll
    -2147483648
    (&H80000000)
    在目标部件中,滚动正在或将要发生。此值与其它值共同使用。注意仅当在部件中执行自己的滚动时才能应用。
    
【描述】
    在每个 OLEDragOver 事件后发生。OLEGiveFeedback 允许源部件提供可视的反馈,例如通过改变鼠标的图标来表明放目标后将发生什么,或者在选项上提供可视的反馈(在源部件中)以指出将发生什么。
【示例】
    
【备注】
      如果 OLEGiveFeedback 事件中没有代码,或者如果 defaultcursors 参数设为 True,则 Visual Basic 自动地把鼠标图标设为部件提供的缺省图标。
      源 ActiveX 部件应总是屏蔽 effect 参数值,以确保同将来实现的 ActiveX 部件兼容。现在仅使用了 effect 参数 32 位中的 3 位,然而将来的 Visual Basic 版本就可能用到其它位。所以考虑到将来的问题,拖源和放目标在进行任何比较之前应屏蔽这些值。
      例如,源部件不能把 effect 同 vbDropEffectCopy 相比,如:
       If Effect = vbDropEffectCopy...
      而应屏蔽该值或被搜寻的值,如:

=======

OLESetData


【名称】
    OLESetData
【类别】
    事件过程
【原形】
    Private Sub object_OLESetData(data As DataObject, dataformat As Integer)
【参数】
    OLESetData 事件语法包含下面部分:
    部分
【描述】
    object
    对象表达式,其值是“应用于”列表中的一个对象。
    data
    放置所需数据的 DataObject 对象。部件调用 SetData 方法加载所需的格式。
    dataformat
    整数,确定目标部件所需要的数据格式。源部件用此值来确定向 DataObject 对象加载的内容。
    
【描述】
    当目标部件在源的 DataObject 对象上执行 GetData 方法,但是还没有加载规定格式的数据时,在源部件上发生。
【示例】
    无
【备注】
      在某些情况下,特别是在源部件支持多种格式时,可能希望延迟向源部件 DataObject 对象加载数据以节省时间。此事件允许源对给定的数据格式仅响应一个请求。调用此事件时,源应该检查 format 参数以确定需加载的内容,然后在 DataObject 上执行 SetData 方法加载数据,这些数据随后被送回到目标部件。

=======

OLEStartDrag


【名称】
    OLEStartDrag
【类别】
    事件过程
【原形】
    Private Sub object_OLEStartDrag(data As DataObject, allowedeffects As Long)
【参数】
    OLEStartDrag 事件语法包含下面部分:
    部分
【描述】
    object
    对象表达式,其值是“应用于”列表中的一个对象。
    data
    DataObject 对象,含源所提供的格式以及(可选)适合那些格式的数据。若 DataObject 不包含数据,则当控件调用 GetData 方法时会提供。程序员应提供此事件中该参数的值。SetData 和 Clear 方法不能用于此处。
    allowedeffects
    长整型数,包含源部件支持的效果。其可能的取值列于“设置值”中。程序员应提供此事件中该参数的值。
    
      allowedeffects 设置如下:
    常数
    值
【描述】
    vbDropEffectNone
    0
    放目标不接受数据。
    VbDropEffectCopy
    1
    放结果保存于从源到目标的数据拷贝中。初始数据没有被拖放操作改变。
    VbDropEffectMove
    2
    放结果保存于要从拖源移到放源的数据中。移动后,拖源要删除数据。
    
【描述】
    当部件的 OLEDrag 方法被执行时,或者在 OLEDragMode 属性被设为 Automatic,部件初始化 OLE 拖放操作时发生。
      此事件指定源部件支持的数据格式和放效果。也可用于向 DataObject 对象中插入数据。
【示例】
    无
【备注】
      源部件应该针对所支持的数据使用逻辑 Or 运算符,并把结果放到 allowedeffects 参数中。目标部件使用此值确定合适的动作(以及合适的用户反馈)。
      如果部件的 OLEDragMode 属性被设为 Automatic,OLEStartDrag 事件也会发生。这样就允许在部件执行该操作后,再次向 DataObject 对象加入格式及数据。也可以通过清除 DataObject 对象(用 Clear 方法)忽略部件的缺省行为,然后加入自己的数据和格式。
      除非目标部件需要,可能希望延迟向 DataObject 对象中加载数据。这样,由于没有加载多余的数据格式,使源部件节省了时间。当目标在 DataObject 上执行 GetData 方法时,若 DataObject 中未包含所需的数据,则源的 OLESetData 事件会发生。此时,数据可被加载到 DataObject 中,这将依次地向目标提供数据。

=======

原创粉丝点击