VB 常数 数据类型 编译指令

来源:互联网 发布:淘宝网运动衣 编辑:程序博客网 时间:2024/04/20 17:05

VB 常数 数据类型 编译指令

Calendar 常数

可在代码中的任何地方用下列常数代替实际值:

常数 值 描述
vbCalGreg 0 指出使用的是阳历。
vbCalHijri 1 指出使用的是伊斯兰历法。

--------------------------------------------------------------------------------

Color 常数

可在代码中的任何地方用下列常数代替实际值:

常数 值 描述
vbBlack 0x0 黑色
vbRed 0xFF 红色
vbGreen 0xFF00 绿色
vbYellow 0xFFFF 黄色
vbBlue 0xFF0000 蓝色
vbMagenta 0xFF00FF 紫红色
vbCyan 0xFFFF00 青色
vbWhite 0xFFFFFF 白色

--------------------------------------------------------------------------------

Comparison常数

下列常数由 Visual Basic for Applications 中的类型库定义,可用来在代码中的任何地方代替实际值:

常数 值 描述
VbUseCompareOption -1 使用Option Compare语句的设置进行比较。
VbBinaryCompare 0 进行二进制的比较。
VbTextCompare 1 进行文字的比较。
vbDatabaseCompare 2 用于 Microsoft Access(仅限于Windows),进行以数据库所含信息为基础的比较。

--------------------------------------------------------------------------------

Compiler 常数

Visual Basic for Applications 定义了一些不能与 #If...Then...#Else 指令一起使用的常数。这 些常数除了其范围是全局的;也就是说,除了可在工程中到处应用,在功能上与 #If...Then...#Else 指令定义的常数相同。

在 16 位开发平台上,编译常数定义如下:

常数 值 描述
Win16 True 指出开发环境是 16 位。
Win32 False 指出开发环境不是 32 位。


在 32 位开发平台上,编译常数定义如下:

常数 值 描述
Win16 False 指出开发环境不是 16 位。
Win32 True 指出开发环境是 32 位。

--------------------------------------------------------------------------------

Date 常数

可在代码中的任何地方用下列常数代替实际值:

参数值

firstdayofweek 参数具有以下这些值:

常数 值 描述
vbUseSystem 0 使用 NLS API 设置。
vbSunday 1 星期日(缺省)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六


firstdayofyear 参数具有以下这些值:

常数 值 描述
vbUseSystem 0 使用 NLS API 设置。
VbUseSystemDayOfWeek 0 使用系统设置中为星期的第一天指定的星期数。
VbFirstJan1 1 由 1 月 1 日所在的那个星期开始(缺省)。
vbFirstFourDays 2 由新的一年中第一个至少有 4 天的星期开始。
vbFirstFullWeek 3 由一年中第一个完整的星期开始。


返回值

常数 值 描述
vbSunday 1 星期日
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六

--------------------------------------------------------------------------------

日期格式常数

仅当您的工程对包含这些常数定义的相应类型库有一个显式引用时,才可以使用这些常数 。

常数 值 描述
vbGeneralDate 0 显示日期和/或时间。对于一个实数,显示日期和时间。如果没有小数部分,则仅显示日期。如果没有整数部分,则仅显示时间。日期和时间的显示由系统设置值确定。
vbLongDate 1 用计算机区域设置值指定的长日期格式显示日期。
vbShortDate 2 用计算机区域设置值指定的短日期格式显示日期。
vbLongTime 3 用计算机区域设置值指定的长时间格式显示时间。
vbShortTime 4 用计算机区域设置值指定的短时间格式显示时间。

--------------------------------------------------------------------------------

Dir、GetAttr 和 SetAttr 常数

可在代码中的任何地方用下列常数代替实际值:

常数 值 描述
vbNormal 0 正常的(Dir 和 SetAttr 的缺省值)
vbReadOnly 1 只读的
vbHidden 2 隐藏的
vbSystem 4 系统文件
vbVolume 8 卷标
vbDirectory 16 目录或文件夹
vbArchive 32 文件自上一次备份后已经改变

--------------------------------------------------------------------------------

驱动器类型常数

仅当您的工程对包含这些常数定义的相应类型库有一个显式引用时,才可以使用这些常数。

常数 值 描述
Unknown 0 不能确定驱动器类型。
Removable 1 驱动器具有可删除介质。包括所有软盘驱动器和许多其它种类的存储设备。
Fixed 2 驱动器具有固定介质(不可删除的)。包括可删除硬盘在内的所有硬盘驱动器。
Remote 3 网络驱动器。包括在网络上任何地方都可以共享的驱动器。
CDROM 4 驱动器是一个CD-ROM。包括只读的CD-ROM和可读写的CD-ROM。
RAMDisk 5 驱动器是本地计算机上的一块随机存取内存(RAM),它工作起来就象是磁盘驱动器一样。

--------------------------------------------------------------------------------

文件属性常数

仅当您的工程对包含这些常数定义的相应类型库有一个显式引用时,才可以使用这些常数。

常数 值 描述
Normal 0 普通文件。没有设置属性。
ReadOnly 1 只读文件。属性是可读/写。
Hidden 2 隐藏文件。属性是可读/写。
System 4 系统文件。属性是可读/写。
Volume 8 磁盘驱动器卷标。属性是只读。
Directory 16 文件夹或目录。属性是只读。
Archive 32 自上次备份后已经改变的文件。属性是可读/写。
Alias 64 链接或快捷方式。属性是只读。
Compressed 128 压缩文件。属性是只读。

--------------------------------------------------------------------------------

文件输入/输出常数

仅当您的工程对包含这些常数定义的相应类型库有一个显式引用时,才可以使用这些常数。

常数 值 描述
ForReading 1 打开文件用于只读操作。不能对文件进行写操作。
ForWriting 2 打开文件用于写操作。如果存在具有相同文件名的文件,文件原有的内容被覆盖。
ForAppending 8 打开文件并向文件的结尾写入。

--------------------------------------------------------------------------------

Dir、GetAttr 和 SetAttr 常数?

可在代码中的任何地方用下列常数代替实际值:

常数 值 描述
vbNormal 0 正常的(Dir 和 SetAttr 的缺省值)
vbReadOnly 1 只读的
vbHidden 2 隐藏的
vbSystem 4 系统文件
vbVolume 8 卷标
vbDirectory 16 目录或文件夹
vbArchive 32 文件自上一次备份后已经改变

--------------------------------------------------------------------------------

IMEStatus 常数

可在代码中的任何地方用下列常数代替实际值。

日文国别的常数如下所示:

常数 值 描述
vbIMEModeNoControl 0 没有安装 IME(缺省)
vbIMEModeOn 1 打开 IME
vbIMEModeOff 2 关闭 IME
vbIMEModeDisable 3 无效的 IME
vbIMEModeHiragana 4 完整宽度 Hiragana 模式
vbIMEModeKatakana 5 完整宽度 Katakana 模式
vbIMEModeKatakanaHalf 6 半宽度 Katakana 模式
vbIMEModeAlphaFull 7 完整宽度 Alphanumeric 模式
vbIMEModeAlpha 8 半宽度 Alphanumeric 模式


韩国地区的常数如下所示:

常数值描述

vbIMEModeAlphaFull7完整宽度 Alphanumeric 模式

vbIMEModeAlpha8半宽度 Alphanumeric 模式

vbIMEModeHangulFull9完整宽度 Hangul 模式

vbIMEModeHangul10半宽度 Hangul 模式

中文地区的常数值如下:

常数值描述

vbIMEModeNoControl0没有安装 IME (缺省)

vbIMEModeOn1IME 打开

vbIMEModeOff2IME off


--------------------------------------------------------------------------------

Keycode 常数

可在代码中的任何地方用下列常数代替实际值:

常数 值 描述
vbKeyLButton 0x1 鼠标左键
vbKeyRButton 0x2 鼠标右键
vbKeyCancel 0x3 CANCEL 键
vbKeyMButton 0x4 鼠标中键
vbKeyBack 0x8 BACKSPACE 键
vbKeyTab 0x9 TAB 键
vbKeyClear 0xC CLEAR 键
vbKeyReturn 0xD ENTER 键
vbKeyShift 0x10 SHIFT 键
vbKeyControl 0x11 CTRL 键
vbKeyMenu 0x12 MENU 键
vbKeyPause 0x13 PAUSE 键
vbKeyCapital 0x14 CAPS LOCK 键
vbKeyEscape 0x1B ESC 键
vbKeySpace 0x20 SPACEBAR 键
vbKeyPageUp 0x21 PAGE UP 键
vbKeyPageDown 0x22 PAGE DOWN 键
vbKeyEnd 0x23 END 键
vbKeyHome 0x24 HOME 键
vbKeyLeft 0x25 LEFT ARROW 键
vbKeyUp 0x26 UP ARROW 键
vbKeyRight 0x27 RIGHT ARROW 键
vbKeyDown 0x28 DOWN ARROW 键
vbKeySelect 0x29 SELECT 键
vbKeyPrint 0x2A PRINT SCREEN 键
vbKeyExecute 0x2B EXECUTE 键
vbKeySnapshot 0x2C SNAPSHOT 键
vbKeyInsert 0x2D INSERT 键
vbKeyDelete 0x2E DELETE 键
vbKeyHelp 0x2F HELP 键
vbKeyNumlock 0x90 NUM LOCK 键


A 至 Z 键与 A – Z 字母的 ASCII 码相同:

常数 值 描述
vbKeyA 65 A 键
vbKeyB 66 B 键
vbKeyC 67 C 键
vbKeyD 68 D 键
vbKeyE 69 E 键
vbKeyF 70 F 键
vbKeyG 71 G 键
vbKeyH 72 H 键
vbKeyI 73 I 键
vbKeyJ 74 J 键
vbKeyK 75 K 键
vbKeyL 76 L 键
vbKeyM 77 M 键
vbKeyN 78 N 键
vbKeyO 79 O 键
vbKeyP 80 P 键
vbKeyQ 81 Q 键
vbKeyR 82 R 键
vbKeyS 83 S 键
vbKeyT 84 T 键
vbKeyU 85 U 键
vbKeyV 86 V 键
vbKeyW 87 W 键
vbKeyX 88 X 键
vbKeyY 89 Y 键
vbKeyZ 90 Z 键


0 至 9 键与数字 0 – 9 的 ASCII 码相同:

常数 值 描述
vbKey0 48 0 键
vbKey1 49 1 键
vbKey2 50 2 键
vbKey3 51 3 键
vbKey4 52 4 键
vbKey5 53 5 键
vbKey6 54 6 键
vbKey7 55 7 键
vbKey8 56 8 键
vbKey9 57 9 键


下列常数代表数字键盘上的键:

常数 值 描述
vbKeyNumpad0 0x60 0 键
vbKeyNumpad1 0x61 1 键
vbKeyNumpad2 0x62 2 键
vbKeyNumpad3 0x63 3 键
vbKeyNumpad4 0x64 4 键
vbKeyNumpad5 0x65 5 键
vbKeyNumpad6 0x66 6 键
vbKeyNumpad7 0x67 7 键
vbKeyNumpad8 0x68 8 键
vbKeyNumpad9 0x69 9 键
vbKeyMultiply 0x6A MULTIPLICATION SIGN (*) 键
vbKeyAdd 0x6B PLUS SIGN (+) 键
vbKeySeparator 0x6C ENTER 键
vbKeySubtract 0x6D MINUS SIGN (-) 键
vbKeyDecimal 0x6E DECIMAL POINT (.) 键
vbKeyDivide 0x6F DIVISION SIGN (/) 键


下列常数代表功能键:

常数 值 描述
vbKeyF1 0x70 F1 键
vbKeyF2 0x71 F2 键
vbKeyF3 0x72 F3 键
vbKeyF4 0x73 F4 键
vbKeyF5 0x74 F5 键
vbKeyF6 0x75 F6 键
vbKeyF7 0x76 F7 键
vbKeyF8 0x77 F8 键
vbKeyF9 0x78 F9 键
vbKeyF10 0x79 F10 键
vbKeyF11 0x7A F11 键
vbKeyF12 0x7B F12 键
vbKeyF13 0x7C F13 键
vbKeyF14 0x7D F14 键
vbKeyF15 0x7E F15 键
vbKeyF16 0x7F F16 键


--------------------------------------------------------------------------------

Miscellaneous 常数

下列常数由 Visual Basic for Applications 中的类型库定义,可用来在代码中的任何地方代替实际值:

常数 等于 描述
vbCrLf Chr(13) + Chr(10) 回车符与换行符结合
vbCr Chr(13) 回车符
vbLf Chr(10) 换行符
vbNewLine Chr(13) + Chr(10)   平台指定的新行字符;适用于当前平台
vbNullChar Chr(0) 值为 0 的字符
vbNullString 值为 0 的字符串 用来调用外部过程;与长度为零的字符串 ("") 不同
vbObjectError -2147221504 用户定义的错误号应当大于该值,例如:
Err.Raise Number = vbObjectError + 1000
vbTab Chr(9) Tab 字。
vbBack Chr(8) 退格字符
vbFormFeed Chr(12) 在 Microsoft Windows 中没有作用
vbVerticalTab Chr(11) 在 Microsoft Windows 中没有作用


--------------------------------------------------------------------------------

MsgBox 常数

可在代码中的任何地方使用下列常数代替实际值:

MsgBox 参数

常数 值 描述
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 关键消息
vbQuestion 32 警告询问
vbExclamation 48 警告消息
vbInformation 64 通知消息
vbDefaultButton1 0 第一个按钮是缺省的(缺省值)
vbDefaultButton2 256 第二个按钮是缺省的
vbDefaultButton3 512 第三个按钮是缺省的
vbDefaultButton4 768 第四个按钮是缺省的
vbApplicationModal 0 应用程序形态的消息框(缺省值)
vbSystemModal 4096 系统强制返回的消息框
vbMsgBoxHelpButton 16384 添加Help按钮到消息框
VbMsgBoxSetForeground 65536 指定消息框窗口作为前景窗口
vbMsgBoxRight 524288 文本是右对齐的
vbMsgBoxRtlReading 1048576 指定在希伯来语和阿拉伯语系统中,文本应当显示为从右到左读


MsgBox 返回值

常数 值 描述
vbOK 1 按下 OK 按钮
vbCancel 2 按下 Cancel 按钮
vbAbort 3 按下 Abort 按钮
vbRetry 4 按下 Retry 按钮
vbIgnore 5 按下 Ignore 按钮
vbYes 6 按下 Yes 按钮
vbNo 7 按下 No 按钮


--------------------------------------------------------------------------------

QueryClose常数

下列常数可以用于代码中的任何位置以代替实际值:

常数 值 描述
vbFormControlMenu 0 用户从窗体上的Control 菜单选择Close 命令。
vbFormCode 1 Unload 语句被从代码中调用。
vbAppWindows 2 当前 Microsoft Windows 操作环境会话结束。
vbAppTaskManager 3 Windows Task Manager 正在关闭应用程序。

--------------------------------------------------------------------------------

Dir、GetAttr 和 SetAttr 常数?

可在代码中的任何地方用下列常数代替实际值:

常数 值 描述
vbNormal 0 正常的(Dir 和 SetAttr 的缺省值)
vbReadOnly 1 只读的
vbHidden 2 隐藏的
vbSystem 4 系统文件
vbVolume 8 卷标
vbDirectory 16 目录或文件夹
vbArchive 32 文件自上一次备份后已经改变

--------------------------------------------------------------------------------

Shell 常数

可在代码中的任何地方使用下列常数代替实际值:


常数 值 描述
vbHide 0 窗口是隐藏的,并且焦点被传递给隐藏窗口。
vbNormalFocus 1 窗口拥有焦点,并且恢复到原来的大小与位置。
vbMinimizedFocus 2 窗口缩小为图符并拥有焦点。
vbMaximizedFocus 3 窗口最大化并拥有焦点。
vbNormalNoFocus 4 窗口被恢复到最近一次的大小与位置。当前活动窗口仍为活动窗口。
vbMinimizeNoFocus 6 窗口缩小为图符。当前活动窗口仍为活动窗口。

--------------------------------------------------------------------------------

特殊文件夹常数

仅当您的工程对包含这些常数定义的相应类型库有一个显式引用时,才可以使用这些常数。

常数 值 描述
WindowsFolder 0 Windows文件夹包含由Windows操作系统安装的文件。
SystemFolder 1 System(系统)文件夹包含库、字体和设备驱动程序。
TemporaryFolder 2 Temp(临时)文件夹用于存储临时文件。它的路径可在TMP环境变量中找到。


--------------------------------------------------------------------------------

StrConv 常数

可在代码中的任何地方使用下列常数代替实际值:

Constant 值 描述
vbUpperCase 1 将字符串转换成大写字符。
vbLowerCase 2 将字符串转换成小写字符。
vbProperCase 3 将字符串中每个词的第一个字母转换成大写。
vbWide 4 将字符串中的窄(单字节)字符转换成宽(双字节)字符。适用于远东地区。
vbNarrow 8 将字符串中的宽(双字节)字符转换成窄(单字节)字符。适用于远东地区。
vbKatakana 16 将字符串中的 Hiragana 字符转换成 Katakana 字符;只适用于日文地区。
vbHiragana 32 将字符串中的 Katakana 字符转换成 Hiragana 字符;只适用于日文地区。
vbUnicode 64 利用缺省的系统代码页将字符串转换成 Unicode。
vbFromUnicode 128 将字符串由 Unicode 转换成缺省的系统代码页。


--------------------------------------------------------------------------------

System Color 常数

可在代码中的任何地方用下列常数代替实际值:

常数 值 描述
vbScrollBars 0x80000000 滚动条颜色
vbDesktop 0x80000001 桌面颜色
vbActiveTitleBar 0x80000002 活动窗口的标题栏颜色
vbInactiveTitleBar 0x80000003 非活动窗口的标题栏颜色
vbMenuBar 0x80000004 菜单背景色
vbWindowBackground 0x80000005 窗口背景色
vbWindowFrame 0x80000006 窗口框架颜色
vbMenuText 0x80000007 菜单文本颜色
vbWindowText 0x80000008 窗口文本颜色
vbTitleBarText 0x80000009 标题、调整框和滚动箭头的文本颜色
vbActiveBorder 0x8000000A 活动窗口边框颜色
vbInactiveBorder 0x8000000B 非活动窗口边框颜色
vbApplicationWorkspace 0x8000000C 多文档界面 (MDI) 应用程序的背景色
vbHighlight 0x8000000D 控件中选中项目的背景色
vbHighlightText 0x8000000E 控件中选中项目的文本颜色
vbButtonFace 0x8000000F 命令按钮表面阴影颜色
vbButtonShadow 0x80000010 命令按钮边缘阴影颜色
vbGrayText 0x80000011 灰色(无效)文本
vbButtonText 0x80000012 下压按钮文本颜色
vbInactiveCaptionText 0x80000013 非活动标题文本颜色
vb3DHighlight 0x80000014 3-D 显示元素的突出显示颜色
vb3DDKShadow 0x80000015 3-D 显示元素的最深阴影颜色
vb3DLight 0x80000016 vb3Dhighlight 之外最亮的 3-D 颜色  
vbInfoText 0x80000017 工具提示文本颜色
vbInfoBackground 0x80000018 工具提示背景色


--------------------------------------------------------------------------------

三态常数

仅当您的工程对包含这些常数定义的相应类型库有一个显式引用时,才可以使用这些常数。

常数 值 描述
TristateTrue –1 True
TristateFalse 0 False
TristateUseDefault –2 使用缺省设置值。

--------------------------------------------------------------------------------

VarType 常数

可在代码中的任何地方用下列常数代替实际值:

常数 值 描述
vbEmpty 0 未初始化(缺省值)
vbNull 1 不含任何有效数据
vbInteger 2 Integer
vbLong 3 长整数
vbSingle 4 单精度浮点数
vbDouble 5 双精度浮点数
vbCurrency 6 Currency
vbDate 7 Date
vbString 8 String
vbObject 9 对象
vbError 10 错误
vbBoolean 11 布尔
vbVariant 12 Variant(只用于变体的数组类型)
vbDataObject 13 数据访问对象
vbDecimal 14 Decimal
vbByte 17 Byte
vbUserDefinedType 36 包含用户定义类型的变量
vbArray 8192 数组


--------------------------------------------------------------------------------

Visual Basic 常数

Visual Basic for Applications 定义了一些常数,使程序设计变得更为简单。下列常数可在程序代码中的任何地方代替实际值:

Calendar 常数

Color 常数

Compiler 常数

Date 常数

Dir、GetAttr 和 SetAttr 常数

IMEStatus 常数

Instr、StrComp 常数

Keycode 常数

Miscellaneous 常数

MsgBox 常数

QueryClose 常数

QueryClose 常数

Shell 常数

StrConv 常数

System Color 常数

VarType 常数


--------------------------------------------------------------------------------

Boolean 数据类型

Boolean 变量存储为 16 位(2 个字节)的数值形式,但只能是 True 或是 False。Boolean 变量的值显示为 True 或 False(在使用 Print 的时候),或者 #TRUE# 或 #FALSE#(在使用 Write # 的时候)。使用关键字 True 与 False 可将 Boolean 变量赋值为这两个状态中的一个。

当转换其他的数值类型为 Boolean 值时,0 会转成 False,而其他的值则变成 True。当转换 Boolean 值为其他的数据类型时,False 成为 0,而 True 成为 -1。


--------------------------------------------------------------------------------

Byte 数据类型

Byte 变量存储为单精度型、无符号整型、8 位(1个字节)的数值形式,范围在 0 至 255 之间。

Byte 数据类型在存储二进制数据时很有用。


--------------------------------------------------------------------------------

Currency 数据类型

Currency 变量存储为 64 位(8 个字节)整型的数值形式,然后除以 10,000 给出一个定点数,其小数点左边有 15 位数字, 右边有 4 位数字。这种表示法的范围可以从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807。Currency 的类型声明字符为at号 (@)。

Currency 数据类型在货币计算与定点计算中很有用,在这种场合精度特别重要。


--------------------------------------------------------------------------------

Date 数据类型

Date 变量存储为 IEEE 64 位(8 个字节)浮点数值形式,其可以表示的日期范围从 100 年 1 月 1 日到 9999 年 12 月 31 日,而时间可以从 0:00:00 到 23:59:59。任何可辨认的文本日期都可以赋值给 Date 变量。日期文字须以数字符号 (#) 扩起来,例如,#January 1, 1993# 或 #1 Jan 93#。

Date 变量会根据计算机中的短日期格式来显示。时间则根据计算机的时间格式(12 或 24 小时制)来显示。

当其他的数值类型要转换为 Date 型时,小数点左边的值表示日期信息,而小数点右边的值则表示时间。午夜为 0 而中午为 0.5。负整数表示 1899 年 12 月 30 日之前的日期。


--------------------------------------------------------------------------------

Decimal 数据类型

Decimal 变量存储为 96 位(12 个字节)无符号的整型形式,并除以一个 10 的幂数。这个变比因子决定了小数点右面的数字位数,其 范围从 0 到 28。变比因子为 0(没有小数位)的情形下,最大的可能值为 +/- 79,228,162,514,264,337,593,543,950,335。而在有 28 个小数位的情况下,最大值为 +/- 7.9228162514264337593543950335,而最小的非零值为 +/- 0.0000000000000000000000000001。

注意 此时,Decimal 数据类型只能在 Variant中使用,也就是说,不能声明一变量为 Decimal 的类型。不过可用 Cdec 函数,创建一个子类型为 Decimal 的 Variant。


--------------------------------------------------------------------------------

Double 数据类型

Double(双精度浮点型)变量存储为 IEEE 64 位(8 个字节)浮点数值的形式,它的范围在负数的时候是从 - 1.79769313486232E308 到 -4.94065645841247E-324,而正数的时候是从 4.94065645841247E -324 到 1.79769313486232E308。Double 的类型声明字符是数字符号 (#)。


--------------------------------------------------------------------------------

Integer 数据类型

Integer 变量存储为 16位(2 个字节)的数值形式,其范围为 -32,768 到 32,767 之间。Integer 的类型声明字符是百分比符号 (%)。

也可以用 Integer 变量来表示枚举值。枚举值可包含一个有限集合,该集合包含的元素都是唯一的整数,每一个整数都在它使用时的上下文当中有 其特殊意义。枚举值为在已知数量的选项中做出选择提供了一种方便的方法,例如,black = 0,white = 1 等等。较好的编程作法是使用 Const 语句将每个枚举值定义成常数。


--------------------------------------------------------------------------------

Long 数据类型

Long(长整型)变量存储为 32 位(4 个字节)有符号的数值形式,其范围从 -2,147,483,648 到 2,147,483,647。Long 的类型声明字符为和号 (&)。


--------------------------------------------------------------------------------

Object 数据类型

Object 变量存储为 32 位(4 个字节)的地址形式,其为对象的引用。利用 Set 语句,声明为 Object 的变量可以赋值为任何对象的引用。

注意 虽然以 Object 类型声明的变量足以适应包含对各种对象的引用,但是绑定到变量引用的对象总是在晚期(运行时)绑定。要强迫在早期(编译时间)绑定的话,须将对象的引用赋值给用特定类名称声明的变量。


--------------------------------------------------------------------------------

Single 数据类型

Single(单精度浮点型)变量存储为 IEEE 32 位(4 个字节)浮点数值的形式,它的范围在负数的时候是从 - 3.402823E38 到 -1.401298E-45,而在正数的时候是从 1.401298E-45 到 3.402823E38。Single 的类型声明字符为感叹号 (!)。


--------------------------------------------------------------------------------

String 数据类型

字符串有两种:变长与定长的字符串。

变长字符串最多可包含大约 20 亿 ( 2^31)个字符。


定长字符串可包含 1 到大约 64K ( 2^16 ) 个字符。
注意 Public 定长字符串不能在类模块中使用。

String 之字符码的范围是 0 到 255。字符集的前 128 个字符(0 到 127)对应于标准的 U.S. 键盘上的字符与符号。这 前 128 个字符与 ASCII 字符集中所定义的相同。后 128 个字符(128 到 255)则代表特殊字符,例如国际字符,重音符号,货币符号 及分数。String 的类型声明字符为美元号 ($)。


--------------------------------------------------------------------------------

用户定义数据类型

可以是任何用 Type 语句定义的数据类型。用户自定义类型可包含一个或多个某种数据类型的数据元素、数组或一个先前定义的用户自定义类型。例如:

Type MyType
    MyName As String    '定义字符串变量存储一个名字。
    MyBirthDate As Date    '定义日期变量存储一个生日。
    MySex As Integer    '定义整型变量存储性别
End Type             '(0 为女,1 为男)

--------------------------------------------------------------------------------

Variant 数据类型

Variant 数据类型是所有没被显式声明(用如 Dim、Private、Public 或 Static等语句)为其他类型变量的数据类型。Variant 数据类型并没有类型声明字符。

Variant 是一种特殊的数据类型,除了定长 String 数据及用户定义类型外,可以包含任何种类的数据。Variant 也可以包含 Empty、Error、Nothing 及 Null等特殊值。可以用 VarType 函数或 TypeName 函数来决定如何处理 Variant 中的数据。

数值数据可以是任何整型或实型数,负数时范围从 -1.797693134862315E308 到 -4.94066E-324,正数时则从 4.94066E-324 到 1.797693134862315E308。通常,数值Variant 数据保持为其 Variant 中原来的数据 类型。例如,如果把一个 Integer赋值给 Variant,则接下来的运算会把此 Variant 当成 Integer 来处理。然而,如果算术 运算针对含 Byte、Integer、Long 或 Single 之一的Variant 执行,并当结果超过原来数据类型的正常范围时,则在 Variant 中的结果会提升到较大的数据类型。如 Byte 则提升到 Integer,Integer 则提升到 Long,而 Long和 Single 则提升为 Double。当 Variant 变量中有 Currency、Decimal 及 Double 值超过它们各自的范围时, 会发生错误。

可以用 Variant 数据类型来替换任何数据类型,这样会更有适应性。如果 Variant 变量的内容是数字,它可以用字符串来表示数字或是用它实际的值来表示,这将由上下文来决定,例如:

Dim MyVar As Variant
MyVar = 98052

在前面的例子中,MyVar 内有一实际值为 98052 的数值。像期望的那样,算术运算子可以对 Variant 变量运算,其中包含数值或能 被解释为数值的字符串数据。如果用 + 运算子来将 MyVar 与其他含有数字的 Variant 或数值类型的变量相加,结果便是一算术和。

Empty 值用来标记尚未初始化(给定初始值)的Variant 变量。内含 Empty 的 Variant 在数值的上下文中表示 0,如果是用在字符串的上下文中则表示零长度的字符串 ("")。

不应将 Empty 与 Null 弄混。Null 是表示 Variant 变量确实含有一个无效数据。

在 Variant 中,Error 是用来指示在过程中出现错误时的特殊值。然而,不像对其他种类的错误那样,程序并不产生普通的应用程序级的错 误处理。这可以让程序员,或应用程序本身,根据此错误值采取另外的行动。可以用 CVErr 函数将实数转换为错误值来产生 Error 值。


--------------------------------------------------------------------------------

#Const 指令

用来定义 Visual Basic 的条件编译常数。

语法

#Const constname = expression

#Const 编译指令的语法具有以下几个部分:

部分 描述
constname 必要;Variant (String)。常数;名称要遵守变量命名的约定。
expression 必要。文字、其他的条件编译常数或包含除了 Is 以外的算术或逻辑运算符的任意组合。


说明

条件编译常数在其出现的模块中总是 Private。不可能利用 #Const 指令建立 Public 编译常数。Public 编译常数只能在用户接口中建立。

在 expression 中只能使用编译常数及文字。使用一个用 Const 定义的标准常数,或者使用一个未定义的常数,都会导致错误发生。反之,用 #Const 关键字定义的常数也只能用于条件编译。

不管条件编译常数在程序中的位置如何,都总是在模块级别中进行计算。


--------------------------------------------------------------------------------

#If...Then...#Else 指令

条件编译已选择的 Visual Basic 代码块。

语法

#If expression Then

statements

[#ElseIf expression-n Then

[elseifstatements]]

[#Else

[elsestatements]]

#End If

#If...Then...#Else 指令的语法具有以下几个部分:

部分 描述
expression 必要。包含一个或多个条件编译常数、文字与运算符的任何表达式,其值为 True 或 False。
statements 必要。Visual Basic 程序行或编译指令,如果关联的表达式为 True,则运行它们。
expression-n 可选。由一或多个条件编译常数、文字和运算符组成的任何一个表达式,其值为 True 或 False。
elseifstatements 可选。一个或多个程序行或编译命令,如果 expression-n 为 True,则运行它们。
elsestatements 可选。一个或多个程序行或编译命令,如果以前的expression 或 expression-n 中没有一个为 True,则运行它们。


说明

#If...Then...#Else 指令的作用与 If...Then...Else 语句相同,其差异在于 #If、#Else、 #ElseIf,及 #End If 指令没有单独成行的形式,也就是说,在指令所在的那一行,不能有其他代码出现。条件编译通常用来编译不同平台上的同 一个程序。也可以用来避免调试程序代码出现在可执行程序中。条件编译时被排除的程序代码在最后的可执行文件中被完全略去,所以不会对程序的大小或功能有任 何影响。

无论结果如何,都要计算所有表达式。所以,在表达式中用到的所有常数都必须加以定义— 任何未定义的常数都会被当作 Empty 来计算取值。

注意    Option Compare 语句不会影响 #If 及 #ElseIf 语句中的表达式。条件编译指令中的表达式总是用 Option Compare Text 计算值。

 

更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn