vbs常数不用定义,可直接使用,vbs常数的前缀是vb,而不是vbs,因为vbs是从VB语言简化而来的。
(一)MsgBox常数:
MsgBox输出提示框:
MsgBox(prompt, [buttons], [title], [helpfile], [context])
参数说明:
prompt
对话框的提示信息
类型:String,或者一个CStr函数支持的表达式
buttons
可选。指定对话框的按钮和图标
类型:Integer 缺省值:0,其中不同类型的常数值可以累加
title
可选。对话框的标题栏
类型:String,或者一个CStr函数支持的表达式
helpfile
可选。帮助文件的文件名
类型:String
MsgBox运行时并不检测文件名是否有效,如果要指定该参数,必须同时指定context参数,对话框中将自动添加“帮助”按钮,“帮助”按钮使用的是winxp中的帮助文件的格式
context
可选。帮助文件中的某一篇文档的编号,类型:Long,或者一个CLng函数支持的表达式,如果要指定该参数,必须同时指定helpfile参数,对话框中将自动添加“帮助”按钮,“帮助”按钮使用的是winxp中的帮助文件的格式返回值
返回值:返回值表示用户点击了哪个按钮
类型:Integer
MsgBox示例:
‘MsgBox函数示例
Dim s
MsgBox “a” & ChrW(&H302) & “1” & ChrW(&H302) & “23” & ChrW(&H488) & “4” & vbLf & _
“a” & ChrW(&H302) & “1234”
MsgBox “信息提示图标”, vbInformation
MsgBox “没有图标”, , “标题栏”, “C:\help.cnm”, 12345
s = MsgBox(“警告消息图标”, vbYesNo + vbExclamation, “示例”)
Select Case s
Case vbOK
MsgBox “你点击了 确定 按钮”
Case vbCancel
MsgBox “你点击了 取消 按钮”
Case vbAbort
MsgBox “你点击了 中止 按钮”
Case vbRetry
MsgBox “你点击了 重试 按钮”
Case vbIgnore
MsgBox “你点击了 忽略 按钮”
Case vbYes
MsgBox “你点击了 是 按钮”
Case vbNo
MsgBox “你点击了 否 按钮”
End Select
s = “2014” & Chr(0) & “7578”
MsgBox “MsgBox函数把Chr(0)当作字符串结束标志” & vbLf & _
“字符串的长度为 ” & Len(s) & vbLf & _
“字符串的内容为 ” & s
(二)数据类型常数:
01.vbEmpty~~~未初始化
02.vbNull~~~无有效数据
03.vbInteger~~~整数,双字节有符号整数
04.vbLong~~~长整数,四字节有符号整数
05.vbSingle~~~单精度浮点数,四字节浮点数
06.vbDouble~~~双精度浮点数,八字节浮点数
07.vbCurrency~~~货币
08.vbDate~~~日期时间
09.vbString~~~字符串
10.vbObject~~~对象
11.vbError~~~错误
12.vbBoolean~~~布尔值
13.vbDataObject~~~数据对象
14.vbDecimal~~~十进制数
15.vbByte~~~字节,单字节无符号整数
16.vbArray + vbByte~~~字节数组
17.vbArray + vbVariant~~~普通数组
数据类型常数示例:
Dim s
MsgBox TypeName(s) ‘Empty
MsgBox VarType(s) ‘0
s = Null
MsgBox TypeName(s) ‘Null
MsgBox VarType(s) ‘1
s = 32767
MsgBox TypeName(s) ‘Integer
MsgBox VarType(s) ‘2
s = 32768
MsgBox TypeName(s) ‘Long
MsgBox VarType(s) ‘3
s = CSng(1)
MsgBox TypeName(s) ‘Single
MsgBox VarType(s) ‘4
s = 1.0
MsgBox TypeName(s) ‘Double
MsgBox VarType(s) ‘5
s = CCur(1)
MsgBox TypeName(s) ‘Currency
MsgBox VarType(s) ‘6
s = Now()
MsgBox TypeName(s) ‘Date
MsgBox VarType(s) ‘7
s = “大师·张三丰”
MsgBox TypeName(s) ‘String
MsgBox VarType(s) ‘8
Set s = Err
MsgBox TypeName(s) ‘Object
MsgBox VarType(s) ‘9
Call abc( , 1) ‘最后一个参数不能缺省
Sub abc(x, y)
MsgBox TypeName(x) ‘Error
MsgBox VarType(x) ’10
End Sub
s = True
MsgBox TypeName(s) ‘Boolean
MsgBox VarType(s) ’11
s = CreateObject(“Scripting.FileSystemObject”).Drives.[_NewEnum]
MsgBox TypeName(s) ‘Unknown
MsgBox VarType(s) ’13
s = CByte(1)
MsgBox TypeName(s) ‘Byte
MsgBox VarType(s) ’17
With CreateObject(“Msxml2.DOMDocument”).CreateElement(“binary”)
.DataType = “bin.hex” ’16进制
.Text = “3230313437353738” ’32是第一字节,30是第二字节
s = .NodeTypedValue ‘生成一个字节数组
End With
MsgBox TypeName(s) ‘Byte()
MsgBox VarType(s) ‘8209
s = Array(“李白”, “杜甫”)
MsgBox TypeName(s) ‘Variant()
MsgBox VarType(s) ‘8204
(三)日期和时间常数:
VBS日期和时间常数包括 DateDiff 和 FormatDateTime
(1)DateDiff:求两个日期时间的间隔
DateDiff(interval, date1, date2, [firstdayofweek], [firstweekofyear])
参数说明:
interval
指定要返回的间隔的类别
类型:String
取值范围:在DateDiff函数中,y和d是一样的,都代表天数
date1
一个日期时间表达式
类型:Date,或者一个CDate函数支持的表达式
date2
一个日期时间表达式
类型:Date,或者一个CDate函数支持的表达式
firstdayofweek
可选。指定星期中的第一天的常数
类型:Integer
取值范围: 缺省值:1
firstweekofyear
可选。指定一年的第一周的常数
类型:Integer
取值范围: 缺省值:1 ,DateDiff函数中,firstweekofyear参数没有用
返回值:
两个日期时间的间隔的数值
类型:Long
函数示例DateDiff函数示例:
Dim date1, date2
date1 = #2002-08-26#
date2 = #2003-01-01#
MsgBox DateDiff(“yyyy”, date1, date2) ‘1 (年)
MsgBox DateDiff(“yyyy”, date2, date1) ‘-1 (年)
MsgBox DateDiff(“q”, date1, date2) ‘2 (季度)
MsgBox DateDiff(“m”, date1, date2) ‘5 (月)
date1 = #2002-08-24# ‘周六
date2 = #2002-08-26# ‘周一
MsgBox DateDiff(“y”, date1, date2) ‘2 (天)
MsgBox DateDiff(“d”, date1, date2) ‘2 (天)
MsgBox DateDiff(“w”, date1, date2) ‘0 (周,按一周七天算)
MsgBox DateDiff(“ww”, date1, date2) ‘1 (周,按每周的第一天算)
date1 = #2002-08-26 06:07:08#
date2 = #2002-08-27 18:07:08#
MsgBox DateDiff(“h”, date1, date2) ’36 (时)
MsgBox DateDiff(“n”, date1, date2) ‘2160 (分)
MsgBox DateDiff(“s”, date1, date2) ‘129600 (秒)
date1 = #2004-01-04# ‘周日
date2 = #2004-01-12# ‘周一
MsgBox DateDiff(“ww”, date1, date2, vbSunday) ‘1
‘vbSunday表示每周的第一天是周日
‘2个日期之间有1个周日 (date1不计算在内)
MsgBox DateDiff(“ww”, date1, date2, vbMonday) ‘2
‘vbMonday表示每周的第一天是周一
‘2个日期之间有2个周一 (date2计算在内)
‘————————————————————————————————————–
(2)FormatDateTime将一个日期时间表达式按指定格式输出
FormatDateTime(datetime, [NamedFormat])
参数说明:
datetime
一个日期时间表达式
类型:Date,或者一个CDate函数支持的表达式NamedFormat
可选。输出的格式
类型:Integer
缺省值:0
返回值:
一个日期或时间表达式
类型:String
根据区域设置里的日期和时间格式的不同,返回值也将不同示例
FormatDateTime 函数示例:
Dim t
‘根据区域设置的不同,下面的显示结果也将不同
t = #2001/1/2 1:1:1#
MsgBox FormatDateTime(t, 0) & vbLf & _
FormatDateTime(t, 1) & vbLf & _
FormatDateTime(t, 2) & vbLf & _
FormatDateTime(t, 3) & vbLf & _
FormatDateTime(t, 4)
MsgBox Year(t) & “-” & _
Right(“0” & Month(t), 2) & “-” & _
Right(“0″ & Day(t), 2) & ” ” & _
Right(“0” & Hour(t), 2) & “:” & _
Right(“0” & Minute(t), 2) & “:” & _
Right(“0” & Second(t), 2)
(四)vbs其它常数:
vbs其它常数示例:
‘示例:vbs其它常数
MsgBox Hex(vbCyan) ‘FFFF00
MsgBox vbDatabaseCompare ‘2
MsgBox vbUseDefault ‘-2
MsgBox vbObjectError ‘-2147221504
MsgBox vbCr = Chr(13) ‘True
MsgBox vbCrLf = Chr(13) & Chr(10) ‘True
MsgBox vbFormFeed = Chr(12) ‘True
MsgBox vbLf = Chr(10) ‘True
MsgBox vbNewLine = Chr(13) & Chr(10) ‘True
MsgBox vbNullChar = Chr(0) ‘True
MsgBox vbNullString = “” ‘True
MsgBox vbTab = Chr(9) ‘True
MsgBox vbVerticalTab = Chr(11) ‘True
MsgBox IsNull(vbNullChar) ‘False
MsgBox IsNull(vbNullString) ‘False’示例:一个vbNullString不能用””代替的示例
‘需要先注册第三方组件dynwrap.dll以调用API,本例调用FindWindow
Dim oWshShell, oFSO, oDynamicWrapper, s
Set oWshShell = CreateObject(“WScript.Shell”)
Set oFSO = CreateObject(“Scripting.FileSystemObject”)
s = oWshShell.ExpandEnvironmentStrings(“%windir%\SysWOW64\WScript.exe”)
If oFSO.FileExists(s) = True And LCase(WScript.FullName) <> LCase(s) Then
oWshShell.Run s & ” “”” & WScript.ScriptFullName & “”””
WScript.Quit()
End If
oWshShell.Run “%windir%\system32\calc.exe”
MsgBox “下面查找新打开的标题栏:计算器”, vbSystemModal
Set oDynamicWrapper = CreateObject(“DynamicWrapper”)
oDynamicWrapper.Register “user32.dll”, “FindWindow”, “i=ss”, “f=s”, “r=l”
s = oDynamicWrapper.FindWindow(vbNullString, “计算器”)
MsgBox “窗口句柄: ” & s
Views: 52