admin 管理员组文章数量: 1184232
2024年3月5日发(作者:vheditor下载)
VB 可用指令、函数 索引表
1、Abs 求绝对值
●适用于VB、VBA、VBScript。
●用法:传回值 = Abs(数值)
○VB与VBA: Private Sub Command1_Click()
Dim HerVal As Integer
HerVal = 345
MyVal = Abs(HerVal)
End Sub
●MyVal的值为345。
Private Sub Command1_Click()
= "5679"
MyVal = Abs(Val())
End Sub
●MyVal的值为5679
Private Sub Command1_Click()
MyVal = Abs(12345)
Abs(-12345)
End Sub
●于Debug对话框内打出12345
○vbScript:
2、ActiveControl 得到焦点的对象
●适用于VB。
●用法:变量 = 对象.ActiveControl.属性
●用法:对象.ActiveControl.属性 = 资料
○VB: Private Sub Command1_Click()
MsgBox
End Sub
Private Sub Command1_Click()
MsgBox & ":" &
End Sub
Private Sub Command1_Click()
n = "我得到焦点"
End Sub
Private Sub Timer1_Timer
n = "Focus:" &
End Sub
3、ActiveForm 得到焦点的表单
●如果你的程序是以MDI的方式为诉求,AvtiveForm这个方法将提功你更多的便利。
●适用于VB。
●用法:变量 = 对象.ActiveForm.属性
●用法:对象.ActiveForm.属性 = 资料
○VB: Private Sub Command1_Click()
MsgBox
End Sub
Private Sub Command1_Click()
n = "我的窗体得到焦点"
1
End Sub
Private Sub Timer1_Timer
For N = 0 To - 1
If Forms(N).hWnd =
Then
n = "得到焦点的窗体序号:" & N
Next
End Sub
4、Array 指定数组
●我们有一些相关的资料要传给某变量,使其成为一个数组时,我们使用Array。用法:变量=Array(资料1,资料2,......,资料n)
●适用于VB、VBA、VBScript。
●用法:未定义变量 = Array(资料1,资料2,...,资料n)
○VB与VBA: Private Sub Command1_Click()
MyVal = Array(0, 1, 2, 3, 4, 5, 6, 7, 8) For I =
0 To 8
Print MyVal(I)
Next
End Sub
Private Sub Command1_Click()
Dim Total As Integer
MyVal = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) For
I = 0 To 9
Total = Total + MyVal(I)
Next
End Sub
○vbScript:
5、App 得知程序信息
●适用于VB
●用法:传回值 = App.属性
○VB: ●得知程序的说明
字符串 = ts
●得知程序的公司名称
字符串 = yName
●得知程序的原始名称
字符串 = e
●得知程序的文件描述
字符串 = scription
●得知程序的说名文件名称
字符串 = le
●得知程序的版权
字符串 = opyright
●得知程序的商标
字符串 = rademarks
●得知程序的版本
字符串 =
字符串 =
●得知程序的路径
字符串 =
●得知程序是否重覆执行。
If stance Then
MsgBox "程序不得重覆执行", vbokonly '值为True时,程序重覆执行
End
Else
MsgBox "程序第一次执行", vbokonly
End If
●得知程序的产品名称
字符串 = tName
6、AppActivate 激活执行中的应用程序
●AppActivate。用法:AppActivate 视窗的Title,是否等待。
是否等待,其值为布尔数(Boolean),当值为True,也就是等到该程序调用完成后,本程序才会继续执行,当值为False,也就是不理会该程序是否调用完成后,本程继续执行。 EX:假若我们已经启动了Microsoft
Word..我们要将他推到最上一层.. Private Sub
Command1_Click()
AppActivate "Microsoft Word"
End Sub
EX:假若我们已经启动了NC4,且正在阅读千千VB站,Title会变成 "千千VB站 - Netscape",我们要将他推到最上一层..
Private Sub Command1_Click()
AppActivate "千千VB站 - Netscape"
End Sub
●Shell。用法:Shell 程序路径、名称,视窗类型。
视窗类型
值 作用
0 隐藏视窗
1 视窗普通状态且得到焦点
2 视窗最小化且得到焦点
3 视窗最大化且得到焦点
4 视窗普通状态但失去焦点
6 视窗最小化但失去焦点
EX:
Private Sub Command1_Click()
Shell "C:", 1
End Sub
●AppActivate与Shell的应用。
Shell会传回一个程序的ProcessID,我们可以用ProcessID来用AppActivate来启动
Private Sub Command1_Click()
Dim MyProID
MyProID = Shell
("C:")
AppActivate MyProID
End Sub
※若是AppActivate ProcessID发生错误,表示该程序(Process)并没有启动、执行。
2
8、AscW 求字符的UniCode
●Asc(传回字符串第一个字系统字码)
MyVal = Asc("A")
MyVal = 65
MyVal = Asc("小")
MyVal = -23440
●AscB 传回字符串第一个位元字码
用法:传回值 = AscB(字)
例:
MyVal = AscB("A")
MyVal的值为65
MyVal = AscB("小")
MyVal的值为15
●AscW 传回字符串第一个字Unicode码
用法:传回值 = AscW(字)
例:
MyVal = AscW("A")
MyVal的值为65
MyVal = AscW("小")
MyVal的值为23567
●Chr 系统字码转成字
用法:字符串 = Chr(系统字码)
例:
Dim MyStr As String
MyStr = Chr(65)
MyStr的内容为"A"
MyStr = Chr(-23440)
MyStr的内容为"小"
= Chr(65) & Chr(66) & Chr(67)
的内容为"ABC"
●ChrB 位元码转成字符
用法:字符串 = ChrB(位元码)
例:
MyStr = ChrB(65)
MySt的内容为"A"
MyStr = ChrB(15)
MyStr的内容为
非列印字符,无法显示
●ChrW Unicode字码转成字
用法:字符串 = ChrW(Unicode字码)
MyStr = ChrW(65)
MyStr的内容为"A"
MyStr = ChrW(23567)
MyStr的内容为"小"
●LCase 字符串全转小写
用法:字符串 = LCase(字符串)
例:
MyStr = LCase("123ABcd倩倩")
MyStr的内容为"123abcd倩倩"
MyStr = LCase("123ABcb倩倩")
MySt的内容为"123abcd倩倩"
没想到吧,lCase对中文全角字符也有效的!
●UCase 字符串全转大写
用法:字符串 = UCase(字符串)
例:
MyStr = LCase("123ABcd倩倩")
MyStr的内容为"123ABCD倩倩"
MyStr = LCase("123ABcb倩倩")
MyStr的内容为"123ABCD倩倩"
●StrConv(字格式转换)
用法:字符串 = StrConv(字符串,功能)
例:
MyStr = StrConv("千千VBvbVBvb资源中心", 1)
MyStr的值为"千千VBVBVBVB资源中心"
StrConv的功能:
1 所有英文字转大写
2 所有英文字转大写
3 第一个英文字大写
4 所有半型字转全型字
8 所有全型字转半型字
64 所有Single Code字转成UniCode字
128 所有UniCode字转成Single Code字
※Signle Code→以单一位元组(1Byte/8Bit)作为一个字的处理单位的字码。
※UniCode→由ISO(国际标准组织)订定的标准字码,以两个位元组(2Byte/16Bit)组成一个字,作为一个字处理单位的字码。
9、Call 调用子程序
●Call。
Function、Sub、Property等通常把它们叫作子程序。
●我们写好子程序后要调用来使用,我们就会直接在程序码打上该子程序的名称。
Sub PrintOne()
Print "One"
End Sub Function PrintTwo()
Print "Two"
End Sub Private Sub Cmd1_Clcik()
PrintOne
PrintTwo
End Sub
●结果会打出One及Two。
以前在QB的习惯是
Sub PrintOne()
Print "One"
End Sub Function PrintTwo() As Long
Print "Two"
PrintTwo = 1
End Sub Private Sub Cmd1_Clcik()
Call PrintOne
Call PrintTwo
End Sub
●结果也会打出One及Two。
10、Calendar 选择月历
●适用于VB、VBA。
●用法:Calendar = 总类
○VB、VBA: Private Sub Command1_Click()
Calendar = 0
Print Date$
Calendar = 1
Print Date$
End Sub
●月历总类
3
常数 值 说明
vbCalGreg 0 使用 Gregorian 月历 (预设)
vbCalHijri 1 使用 Hijri 月历
11、Choose 取出一列值的某个值
●Choose。
Private Sub Cmd1_Clcik()
For I = 1 To 7
Print Choose(I, "Sunday", "Monday",
"Tuesday", "Wednesdya", "Thursday",
"Friday", "Saturdau")
Next
End Sub
●结果会依序打出Sunday ..... Saturday。
●一般来说,这个函数要写在Function里才有价值。
Function WhatDay(Indx As Integer) As String
WhatDay = Choose(Indx, "Sunday",
"Monday", "Tuesday", "Wednesdya",
"Thursday", "Friday", "Saturdau")
End Function
Private Sub Cmd1_Clcik()
Print WhatDay(1)
End Sub
12、CBool 数值转成布尔数
●CCur。
数值转货币。 EX: Private Sub Command1_Click()
MyVal = CCur(3123.45)
Print MyVal
Next End Sub
●CInt。
小数转整数,采四舍五入的方式计算。
Ex:
MyVal = CInt(HerVal)
MyVal = CInt(Val())
MyVal = CInt(123.45)
MyVal = CInt(-12345)
CInt(-123.45)
CInt(12345) 传回 12345
CInt(12345.4) 传回 12345
CInt(12345.5) 传回 12346
CInt(-12345.4) 传回 -12345
Cint(-12345.5) 传回 -12346
●CLng。
小数转长整数,采四舍五入的方式计算。
Ex:
MyVal = CLng(HerVal)
MyVal = CLng(Val())
MyVal = CLng(123.45)
MyVal = CLng(-12345)
CLng(-123.45)
CLng(12345) 传回 12345
CLng(12345.4) 传回 12345
CLng(12345.5) 传回 12346
CLng(-12345.4) 传回 -12345
CLng(-12345.5) 传回 -12346
●CByte。
数值转位元组。 EX:
Private Sub Command1_Click()
Dim MyVal As Byte
MyVal = CByte(127)
Print MyVal
Next End Sub
●CBool。
数值转布尔数。 EX:
Private Sub Command1_Click()
Dim MyVal As Boolean
MyVal = CBool(-1)
Print MyVal
Next End Sub
●CSng。
数值转单精度浮点数(含小数点的数)。 EX:
Private Sub Command1_Click()
Dim MyVal As Single
MyVal = CSng(3.14159)
Print MyVal
Next End Sub
●CDbl。
数值转双精度浮点数(含小数点的数)。 EX:
Private Sub Command1_Click()
Dim MyVal As Double
MyVal = CDbl(299792.458)
Print MyVal
Next End Sub
●CVar。
数值转可变变量。 EX:
Private Sub Command1_Click()
MyVal = CVar(299792.458)
Print MyVal
Next End Sub
13、CDate 数据转成时间
※假设今天是 1999年1月2日
●Date
MyDate = Date
MyDate = 01/02/99
●Date$
MyDate = Date$
MyDate = 1999/01/02
●Now
MyDate = Now
MyDate = 01/02/99 10:38:05 AM
●Year(Date)
MyDate = Year(Date)
MyDate = 1999
●Month(Date)
MyDate = Month(Date)
MyDate = 1
●Day(Date)
MyDate = Day(Date)
MyDate = 2
●WeekDay(Date)
MyDate = WeekDay(Date)
MyDate = 3
WeekDay传回值
1 = 星期日
2 = 星期一
3 = 星期二
4 = 星期三
5 = 星期四
6 = 星期五
7 = 星期六
●CDate(数值)
MyDate = CDate(-1000000)
MyDate = 03/16/1626
MyDate = CDate(-1)
MyDate = 12/29/1989
MyDate = CDate(0)
MyDate = 12:00:00 AM
MyDate = CDate(1)
MyDate = 12/31/1989
MyDate = CDate(2)
MyDate = 01/01/1900
MyDate = CDate(3)
MyDate = 01/02/1900
MyDate = CDate(100)
MyDate = 04/09/1900
MyDate = CDate(36162)
MyDate = 01/02/99
14、ChDir 改变目前路径缓充的路径
●到别的文件夹。
使用VB的文件处理函数。
ChDir "已存在文件夹已存在文件夹"或字符串
EX:ChDir MyPath
EX:ChDir "Confidential"
EX:ChDir "ConfidentialMarital"
EX:ChDir ".Myshop"
15、ChDrive 改变目前磁盘缓充的磁盘
●到别的磁盘驱动器。
使用VB的文件处理函数。
ChDrive "磁盘代号"
EX:ChDrive Mydrive
EX:ChDrive "A"
EX:ChDrive "B"
EX:ChDrive "H"
16、CInt 数据转成Integer
●Int。
以数学线性来讲,Int会取一个具有小数的数值右方的整数
2 1
0.4 0 -1
+----------+------+---+----------+
Int取0.4右方的整数 0
Ex:
MyVal = Int(HerVal)
MyVal = Int(Val())
MyVal = Int(123.45)
Int(-123.45)
Int(12345) 传回 12345
Int(12345.2) 传回 12345
Int(-12345.2) 传回 -12346
4
●Fix。
无条件截去小数
Ex:
MyVal = Fix(HerVal)
MyVal = Fix(Val())
MyVal = Fix(123.45)
MyVal = Sgn(-12345)
Fix(-123.45)
Fix(12345) 传回 12345
Fix(12345.2) 传回 12345
Fix(-12345.2) 传回 -12345
●CInt。
小数转整数,采四舍五入的方式计算。
Ex:
MyVal = CInt(HerVal)
MyVal = CInt(Val())
MyVal = CInt(123.45)
MyVal = CInt(-12345)
CInt(-123.45)
CInt(12345) 传回 12345
CInt(12345.4) 传回 12345
CInt(12345.5) 传回 12346
CInt(-12345.4) 传回 -12345
CInt(-12345.5) 传回 -12346
●CLng。
小数转长整数,采四舍五入的方式计算。
Ex:
MyVal = CLng(HerVal)
MyVal = CLng(Val())
MyVal = CLng(123.45)
MyVal = CLng(-12345)
CLng(-123.45)
CLng(12345) 传回 12345
CLng(12345.4) 传回 12345
CLng(12345.5) 传回 12346
CLng(-12345.4) 传回 -12345
CLng(-12345.5) 传回 -12346
17、Command 读出程序的参数
●得知程序参数。
参数是指程序执行前由操作系统传来的值。 EX: %1 /autoplay /close
speed=1 -jm -vva
有底线标明处即是大家所称的参数。
字符串 = Command
18、Const 定义常数
●定义常数。
Const 合法的变量名称字符串 数值
Ex:
Const PI = 3.9
Deg2Rad = PI / 180
Const Sin30 = 0.5
Const Cos30 = 0.4
Sin30 ^ 2 + Cos30
19、CurDir 得知目前路径缓充的路径
●CurDir传回目前所在的文件夹
MyPath = CurDir("C")
MyPath = CurDir("D")
MyPath = CurDir("E")
结果可能为:
MyPath = "C:WINDOWSTEMP"
MyPath = "D:PHOTOSTORE~STUPIDS64"
MyPath = "E:DROP&FALL"
●Dir传回目前的文件夹或文件
MyPath = Dir("C:PATHFILENAME")
结果可能为:
MyPath 不为 "C:PATHFILENAME",表示路径或文件不存在。
MyPath = "C:PATHFILENAME",表示路径或文件存在。
19、DateSerial 字符串转日期
●DateAdd 日期加法得日期
●用法:传回日期 = DateAdd(日期间隔种类, 增加量, 日期) Private Sub Command1_Click()
Print DateAdd("ww", 6, #2/28/99#)
End Sub
●输出结果:#4/11/99# ,1999-2-28六周后是1999-4-11。
●DateDiff 日期相减得数值
●用法:传回值 = DateDiff(日期间隔种类, 增加量,
日期)
Private Sub Command1_Click()
Print DateAdd("ww", #1/1/99#, #12/31/99#)
End Sub
●输出结果:52 ,1999-1-1至1999-12-31共有52周。
●DatePart 日期部份资讯
●用法:传回值 = DatePart(日期间隔种类, 增加量,
日期)
Private Sub Command1_Click()
Print DateAdd("q", #4/1/99#)
End Sub
●输出结果:2 ,1999-4-1是第2季。
日期间隔种类
yyyy 年
q 季
m 月
y 太阳日
d 号
w 星期
ww 周
h 时
n 分
s 秒
20、DateValue 数字转日期
5
●DateValue 将字串转换成日期
Dim Tmp As Date
Tmp = DateVal("1999/5/1")→Tmp = 05/01/99
Tmp = DateVal("99/5/1")→Tmp = 05/01/99
Tmp = DateVal("99/05/01")→Tmp = 05/01/99
Tmp = DateVal("05/01/99")→Tmp = 05/01/99
Tmp = DateVal("05-01-99")→Tmp = 05/01/99
Tmp = DateVal("05-01-1999")→Tmp = 05/01/99
Tmp = DateVal("May/01/99")→Tmp = 05/01/99
●DateSerial 将字数值换成日期
Dim Tmp As Date
Tmp = DateSeral(99,5,1)→Tmp = 05/01/99
Tmp = DateSeral(1999,5,1)→Tmp = 05/01/99
●TimeValue 将字串转换成时间
Dim Tmp As Date
Tmp = TimeVal("1:1:5")→Tmp = 01:01:05 AM
Tmp = TimeVal("01:01:05")→Tmp = 01:01:05 AM
Tmp = TimeVal("13:01:05")→Tmp = 01:01:05 PM
Tmp = TimeVal("1:1:5 PM")→Tmp = 01:01:05 PM
Tmp = TimeVal("PM 1:1:5")→Tmp = 01:01:05 PM
Tmp = TimeVal("1:1:5 下午")→Tmp = 01:01:05 PM
Tmp = TimeVal("下午 1:1:5")→Tmp = 01:01:05 PM
●TimeSerial 将字数值换成日期
Dim Tmp As Date
Tmp = TimeSeral(1,1,5)→Tmp = 01:01:05 AM
Tmp = TimeSeral(13,1,5)→Tmp = 01:01:05 PM
21、DeleteSetting 删除系统登录内的数据
●把我们把自己的登录在系统登录内的资料删除。
●适用于VB、VBA。
●用法:DeleteSetting 程序名称, Section, Key值
○VB、VBA:
Private Sub Command1_Click()
DeleteSetting "瓜瓜筒", "Install"
End Sub
●若省略Key值,则所有Section内的Key都会被删除。
●相关资讯请阅读SaveSetting及GetSetting。
22、DDB 折旧的计算
●这是VB处理财务的函数,用于折旧的计算。
●适用于VB、VBA。
●用法:传回值 = DDB(初始成本, 年限结束时的剩馀价值(年), 生命长度(年), 计算周期(年), 衰减平衡速率)
○VB、VBA:
Private Sub Command1_Click()
Print "这台设备的折旧率为:"; DDE(500000,
10, 15, 10)
End Sub
●衰减平衡速率:省略时以 2(双衰减方法)为预设
23、Dir 得知目前路径内的文件名
●CurDir传回目前所在的文件夹
MyPath = CurDir("C")
MyPath = CurDir("D")
MyPath = CurDir("E")
6
结果可能为:
MyPath = "C:WINDOWSTEMP"
MyPath = "D:PHOTOSTORE~STUPIDS64"
MyPath = "E:DROP&FALL"
●Dir传回目前的文件夹或文件
MyPath = Dir("C:PATHFILENAME")
结果可能为:
MyPath 不为 "C:PATHFILENAME",表示路径或文件不存在。
MyPath = "C:PATHFILENAME",表示路径或文件存在。
24、DoEvents 闲置函数
处理其它事件是什么呢?顾名思意,就是先行处理程序里其它正在发生的事件,当程序陷入回圈时,整个程序都会停在处理回圈上,当回圈尚未被处理结束,程序便一直被停摆,在这个时间内而有其它事件发生时,VB会视而不见,为了解决这个麻烦的问题,DoEvents便是因此而但生。
EX:
For N = 1 To 100000
n = N
Next
按程序的流程来说,n的内容会依序由1开始显示到100000,可是事时上程序却停顿一会,并直接跳到显示100000,这并不是电脑速度很快的缘故,而是VB正忙於For ... Next ...回圈,而不处理其它正在发生的事件。为了解决这个问题,DoEvents函式就要上场了。
For N = 1 To 100000
n = N
DoEvents
Next
还有一例:
Open "" For Input As #1
Do Until EOF(1)
Line Input #1,MyStr
= + MyStr
+ vbCrlf
Loop
Close #1
照理说可以看到文字一段一段被放入TextBox,可是结果也是停顿一段时间後,整个TextBox就会突然出现所有的文字。姐决方法就是加入DoEvents。
Open "" For Input As #1
Do Until EOF(1)
Line Input #1,MyStr
= + MyStr
+ vbCrlf
DoEvents
Loop
Close #1
25、Environ 取得环境变量的数据
●在DOS时代,为了方便让程序查阅一些基本系统资讯,我们会在或直接在Command下设定Set Name = XXXXXX ,这些东西就是环境变数,大加熟悉的环境变数如:Path = xxxxx、SOUND =
XXX、TEMP = XXXX。
●适用於VB、VBA。
●用法:字符串 = Environ(项次 或 字符串)
○VB、VBA: Private Sub Command1_Click()
Dim Idx As Integer
Do
Print Environ(Idx)
idx = idx + 1
Loop Environ(Idx) = ""
End Sub
Private Sub Command1_Click()
Dim Idx As Integer
Print Environ("TEMP")
End Sub
26、EOF 某个文件缓冲的指标是否到档尾
●我们用VB处理文件时,由与文件都会有个指标来指定读那一笔资料,在循序档内,我们无法指定指标指向那一笔,每读一笔资料,指标自动向下一笔移动,若无法得知已到了最后一笔再读出文件时,会发生很严重的错误。
●适用于VB、VBA。
●用法:传回值 = EOF(文件编号)
○VB、VBA:
Private Sub Command1_Click()
Open "" For Input As #1
Do
Input #1,MyStr
Loop Until EOF(1)
Close #1
End Sub
27、Erase 重新初始化数组
●适用于VB、VBA。
●用法:Erase 数组
○VB、VBA:
Private Sub Command1_Click()
Dim A(100000) As Long
Dim DyA() As Long
Dim StrA(1000) As Long
For N = 0 To 100000
A(N) = N
Next
Erasr A 'A的每一个元素都被清除,都等于0
ReDim DyA(10000)
Erase DyA '整个DyA所占用的记忆体空间都被释放
For N = 0 To 1000
StrA(N) = "这是一个元素里的字串"
Next
Erase StrA 'StrA每个元素都被清除成 "" (空字串)
End Sub
28、Fix 去除小数
●Int。
以数学线性来讲,Int会取一个具有小数的数值右方的整数
2 1 0.4 0 -1
7
+----------+------+---+----------+
Int取0.4右方的整数 0
Ex:
MyVal = Int(HerVal)
MyVal = Int(Val())
MyVal = Int(123.45)
Int(-123.45)
Int(12345) 传回 12345
Int(12345.2) 传回 12345
Int(-12345.2) 传回 -12346
●Fix。
无条件截去小数
Ex:
MyVal = Fix(HerVal)
MyVal = Fix(Val())
MyVal = Fix(123.45)
MyVal = Sgn(-12345)
Fix(-123.45)
Fix(12345) 传回 12345
Fix(12345.2) 传回 12345
Fix(-12345.2) 传回 -12345
●CInt。
小数转整数,采四舍五入的方式计算。
Ex:
MyVal = CInt(HerVal)
MyVal = CInt(Val())
MyVal = CInt(123.45)
MyVal = CInt(-12345)
CInt(-123.45)
CInt(12345) 传回 12345
CInt(12345.4) 传回 12345
CInt(12345.5) 传回 12346
CInt(-12345.4) 传回 -12345
CInt(-12345.5) 传回 -12346
●CLng。
小数转长整数,采四舍五入的方式计算。
Ex:
MyVal = CLng(HerVal)
MyVal = CLng(Val())
MyVal = CLng(123.45)
MyVal = CLng(-12345)
CLng(-123.45)
CLng(12345) 传回 12345
CLng(12345.4) 传回 12345
CLng(12345.5) 传回 12346
CLng(-12345.4) 传回 -12345
CLng(-12345.5) 传回 -12346
29、FileCopy To 复制文件
●如何复制文件。
使用VB的文件处理函数。
FileCopy "来源磁盘:来源文件夹来源文件名"或字串 To "目的磁盘:目的文件夹目的文件名"或字串
EX:FileCopy "C:Temp~" To
"D:"
EX:FileCopy "" To
"A:"
支援统配字符
EX:FileCopy "C:Temp*.tmp" To
"D:Text"
EX:FileCopy "C:Temp~" To
"D:Text"
30、FileAttr 文件开启模式
●适用于VB、VBA。
●用法:传回值 = FileAttr(文件编号,传回模式)
○VB、VBA:
Private Sub Command1_Click()
Open "" For Append As #1
Print FileAttr(1, 1)
Close #1
End Sub
●传回值:
Mode
Input
Output
Random
Append
Binary
1
2
4
8
32
Value
31、FileDateTime 文件存档日期
●适用于VB、VBA。
●用法:传回值 = FileDateTime(文件名)
○VB、VBA:
Private Sub Command1_Click()
Print FileDateTime("c:")
End Sub
32、FileLen 文件长度
●适用于VB、VBA。
●用法:长整数 = FileLen(文件名)
○VB、VBA:
Private Sub Command1_Click()
Print "文件长度" ;
FileLen("C:")
End Sub
33、Filter 筛选数组
●Filter是VB6新提供的函数,VB5的使用者无法试验。
●用法:传回数组 = Filter(原始数组, 筛选条件,
传回符合条件资料或传回不符合条件资料, 筛选方式)
●Filter的功用在于帮你快速筛选数组内的资料,再以数组的方式传回。
Private Sub Command1_Click()
Dim MyStr(5) As String
MyStr(0) = "Abcdefgh"
MyStr(1) = "千千VB站"
MyStr(2) = "aBCDeF"
MyStr(3) = "123&*678Abcd123"
MyStr(4) = "Xyz-0001-Z0C"
MyRslt = Filter(MyStr, "abc", True,
VBTextCompare) For Each Prt In MyRslt
Print Prt
Next
8
End Sub
●结果Prt打出:"Abcdefgh"、"aBCDeF"、"123&*678Abcd123"
○也就是说MyRslt(0)="Abcdefgh"、MyRslt(1)="aBCDeF"、MyRslt(2)="123&*678Abcd123"
Private Sub Command1_Click()
Dim MyStr(5) As String
MyStr(0) = "Abcdefgh"
MyStr(1) = "千千VB站"
MyStr(2) = "aBCDeF"
MyStr(3) = "123&*678Abcd123"
MyStr(4) = "Xyz-0001-Z0C"
MyRslt = Filter(MyStr, "abc", False,
VBTextCompare) For Each Prt In MyRslt
Print Prt
Next
End Sub
●结果Prt打出:"千千VB站"、"Xyz-0001-Z0C"
34、Format 数据格式化输出
●有网友问:为什么用Format("A:"),VB却告诉我错误,也无法对软碟机格式化?
Ans:VB所提供的Format函数并不像DOS的Format有相同的功能,VB的Format函数是把资料包裹成指订的样式输出。
●用法:传回数组 = Format(资料, 格式)
●简单范例。 Private Sub Command1_Click()
Print Format(1234, "0#####")
End Sub
●结果Prt打出:"001234"
Private Sub Command1_Click()
Print Format(1234, "(0#####)")
End Sub
●结果Prt打出:"(001234)"
Private Sub Command1_Click()
Dim TlPrice As Long
TlPrice = TtPrice + 430
TlPrice = TtPrice + 120
TlPrice = TtPrice + 230
Print Format(TtPrice, "总价是0#####元")
End Sub
●结果Prt打出:"总价是000780元"
Private Sub Command1_Click()
Dim TlPrice As Long
TlPrice = TtPrice + 430
TlPrice = TtPrice + 120
TlPrice = TtPrice + 230
Print Format(TtPrice, "总价是#####0000元")
End Sub
●结果Prt打出:"总价是0780元"
Private Sub Command1_Click()
Dim MyTime As String
MyTime ="12:5:6"
Print Format(MyTime, "hh:mm:ss")
End Sub
●结果Prt打出:"12:05:06"
Private Sub Command1_Click()
Dim MyTime As String
MyTime ="12:5:6"
Print Format(MyTime, "AMPM hh:mm:ss")
End Sub
●结果Prt打出:"PM 12:05:06"
Private Sub Command1_Click()
Dim MyTime As String
MyTime ="77/10/18"
Print Format(MyTime, "倩倩的生日
yyyy/mm/dd")
End Sub
●结果Prt打出:"倩倩的生日 1977/10/18"
格式说明
#
0
y
m
d
h
s
:
/
显示数字
在#前未满#的位数都补0、在#后未满0位数都补0
显示年
显示月或分
显示日
显示时
显示秒
时间分隔
日期分隔
●这是VB得到VB系统登录的方法,以二维数组传回。
●适用于VB、VBA。
●用法:未定义变量 = GetAllSetting(程序名称,
Section)
○VB、VBA:
Private Sub Command1_Click()
MySettings = GetAllSetting(appname := "瓜瓜筒", section := "Install")
For N = LBound(MySettings, 1) To
UBound(MySettings, 1)
MySettings(N, 0), MySettings(N,
1)
Next N
End Sub
●叁考DeleteSetting、GetSetting、SaveSetting。
38、GetAttr 得知文件属性
VB文件属性代码
0 一般
1 只读
2 隐藏
4 系统
16 文件夹
32 保存属性
这些数值可以综合运用,当一个文件只读且又是保存属性,则属性代码为
1 + 32 = 33。
隐藏文件夹的属性代号 2 + 16 = 18。
AMPM 显示是上午或下午
35、FreeFile 空的文件编号
●我们在VB要开启一个文件读写时,须指定一个空文件编号(文件缓冲)给文件,可用FreeFile得知那个文件编号的缓冲是空着没使用。 ●适用于VB、VBA。
●用法:传回值 = FreeFile
○VB、VBA:
Private Sub Command1_Click()
F = FreeFile Open "" For Append As
#F
Print #F,"哈哈哈"
Close #F
End Sub
36、FV 求得定期、定额支付且固定利率下之年金的值
●这是VB处理财务的函数"用于付出多少贷款的计算。
●适用于VB、VBA。
●用法:传回值 = FV(利率, 总期数, 每一期所付的金额, 您未来一系列付款(或一次付清)的现值, 贷款到期时间的方式)
○VB、VBA:
Private Sub Command1_Click()
Print "你贷款所须付的钱为:"; FV(0.09/12,
20*12, 15000)
End Sub
●贷款到期时间的方式:贷款在贷款周期结束时到期为 0。贷款是在周期开始时到期为 1。预设值为 0。
37、GetAllSetting 得到所有系统登录的资讯
9
●GetAttr。
得知文件的属性:
Private Sub Command1_Click()
Print GetAttr("C:")
If GetAttr("C:") And 1 Then
Print "此文件只读"
If GetAttr("C:") And 2 Then
Print "此文件隐藏"
If GetAttr("C:") And 4 Then
Print "此文件为系统文件"
If GetAttr("C:") And 16 Then
Print "此文件为文件夹"
If GetAttr("C:") And 32 Then
Print "此文件为保存属性"
End Sub
●SetAttr。
设定文件的属性:
Private Sub Command1_Click()
SetAttr "C:", 1 + 2 + 32
Print "C: 此文件设定成 只读
& 隐藏 & 保存属性"
End Sub
39、GetSetting 得到系统登录的资讯
●这是VB得到VB系统登录的方法。
●适用于VB、VBA。
●用法:未定义变量 = GetAllSetting(程序名称,
Section, Key值, 预设)
○VB、VBA:
Private Sub Command1_Click()
MySetting = GetSetting(appname := "瓜瓜筒", section := "Install", key := "IconType"
default :="1")
MySetting
End Sub
●预设值是只若无传回值时的传回值。
●叁考DeleteSetting、GetSetting、SaveSetting。
40、Hour 得知日期变量内是几时
在VB里,无论你是怎样声明一个数值的型态,它都是以二进制做运算,二进制运算的缺点是会有浮点位数限制与误差,将数字转成十进制则问题解决啦。
MyVal = CDec(N)
MyVal = CDec("99999999999.9999999")
●Hex(把数字转成十六位元表示的字符串)
MyStr = Hex(0)
MyStr = 0
MyStr = Hex(10)
MyStr = A
MyStr = Hex(100)
MyStr = 64
●Oct(把数字转成八位元表示的字符串)
MyStr = Oct(0)
MyStr = 0
MyStr = Oct(8)
MyStr = 10
MyStr = Oct(18)
MyStr = 22
41、Hour 得知日期变量内是几时
※假设现在时刻 23:05:16
●Time
MyStr = Time
MyStr = 11:05:16 PM
●Time(设定时间)
Time = #11:05:16#
●Time$
MyStr = Time$
MyStr = 23:05:16
●Time$(设定时间)
Time$ = "23:05:16"
●Timer(传为由0:00:00开始到现在的秒数
MyVal = Timer
MyVal = 83116
●Hour
MyVal = Hour(Time)
MyVal = 23
●Minute
MyVal = Minute(Time)
MyVal = 5
●Second
MyVal = Second(Time)
MyVal = 16
42、If . Then . Else 判断结构
设计VB程序除了学会使用函数、功能与变数组合运用变换外,也要学习使用判断与法,If ... Then ...
Else 这个语法便提供你判断数值或运算值。
10
If的用法:
(01)If 运算式 Then 程序码
If A = 1 Then MsgBox "A等於1"
If A ^ 2 + B ^ 2 = C ^ 2 Then
n = "这是一个三角形"
If True Then MsgBox "True"
(02)If 运算式 Then 程序码 Else 程序码
If A = 1 Then MsgBox "A等於1" Else
MsgBox "A不等於1"
If A ^ 2 + B ^ 2 = C ^ 2 Then
n = "这是一个三角形" Else
n = "这不是三角形"
If True Then MsgBox "True" Else
MsgBox "False"
(03)If 运算式 Then
程序码
Else
程序码
End If
If A = 1 Then
MsgBox "A等於1"
Else
MsgBox "A不等於1"
End IF
If A ^ 2 + B ^ 2 = C ^ 2 Then
n = "这是一个三角形"
Else
n = "这不是三角形"
End If
(04)多重的If,可以视情况自由搭配。
If 运算式 Then
If 运算式 Then 程序码
Else
If 运算式 Then
程序码
Else
程序码
End If
End If
43、IMEStatus 得知IME输入法状态
●适用于VB、VBA。
●用法:传回值 = IMESataus
○VB: Private Sub Command1_Click()
MsgBox IMEStatus
End Sub
●传回值
○下列为中文(繁体和简体)地区的传回值:
常数
vbIMENoOP
vbIMEOn
vbIMEOff
值 说明
0 没有安装 IME
1 开启 IME
2 关闭 IME
○下列为日本地区的传回值:
常数
vbIMENoOP
vbIMEOn
vbIMEOff
vbIMEDisable
vbIMEHiragana
值 说明
0 没有安装 IME
1 开启 IME
2 关闭 IME
3 未启用 IME
4
Hiragana 双位元组字符(DBC)
vbIMEKatakanaDbl 5 Katakana DBC
vbIMEKatakanaSng 6
Katakana 单位元组字符(SBC)
vbIMEAlphaDbl 7 Alphanumeric DBC
vbIMEAlphaSng 8 Alphanumeric SBC
○在韩国地区,其传回值为传回的前五个位元,其设定如下:
位元 值
0
1
2
3
4
44、InStr 寻找字符串里的字符串
●InStr(传回字串里某个字串在第几个字的位置)
MyVal = InStr(, "倩倩")
MyVal = InStr("倩倩的VB网站", "VB")
MyVal = 4
●InStrB(传回字串里某个字串在第几个字符的位置)
MyVal = InStrB(, "倩倩姐")
MyVal = InStrB("倩倩的VB网站", "VB")
MyVal = 7
●Len(传回字串有多少字数)
MyVal = Len(MyStr)
MyVal = Len("倩倩的VB网站")
MyVal = 7
●LenB(传回字串有多少字符)
MyVal = LenB(MyStr)
MyVal = LenB("倩倩的VB网站")
MyVal = 14
●StrComp(比较字串)
MyVal = StrComp(MyStr1, MyStr2, 0)
MyVal = StrComp("Abcd", "abcd", 0)
MyVal = -1
MyVal = StrComp("Abcd", "abcd", 1)
MyVal = 0
传回值 = StrComp([字串1], [字串2], 比较模式)
传为值:
1 字串1 大于 字串2
11
说明 值 说明
0 没有安装 IME
0 未启用的 IME
0 IME 英文模式
1 已安装 IME
1 启用的 IME
1 Hangeul 模式
0 Banja 模式 (SB) 1 Junja 模式 (DB)
0 正常模式 1 Hanja 转换模式
0 字串1 等于 字串2
-1 字串1 小于 字串2
Null 字串1 与 字串2 都是 Null 字符
比较模式:
0 转成字码比较 (半型全型大小写不同)
1 字符比较 (半型全型大小写都相同)
45、InStrB 寻找字符串里的ASCII
●InStr(传回字串里某个字串在第几个字的位置)
MyVal = InStr(, "倩倩")
MyVal = InStr("倩倩的VB网站", "VB")
MyVal = 4
●InStrB(传回字串里某个字串在第几个字符的位置)
MyVal = InStrB(, "倩倩姐")
MyVal = InStrB("倩倩的VB网站", "VB")
MyVal = 7
●Len(传回字串有多少字数)
MyVal = Len(MyStr)
MyVal = Len("倩倩的VB网站")
MyVal = 7
●LenB(传回字串有多少字符)
MyVal = LenB(MyStr)
MyVal = LenB("倩倩的VB网站")
MyVal = 14
●StrComp(比较字串)
MyVal = StrComp(MyStr1, MyStr2, 0)
MyVal = StrComp("Abcd", "abcd", 0)
MyVal = -1
MyVal = StrComp("Abcd", "abcd", 1)
MyVal = 0
传回值 = StrComp([字串1], [字串2], 比较模式)
传为值:
1 字串1 大于 字串2
0 字串1 等于 字串2
-1 字串1 小于 字串2
Null 字串1 与 字串2 都是 Null 字符
比较模式:
0 转成字码比较 (半型全型大小写不同)
1 字符比较 (半型全型大小写都相同)
46、IntStrRev 由字符串右边开始寻找字符串里的字符串
●与InStr功能相同但方向颠倒,起始位置的方向也不一样。
●用法:传回值 = InStrRev(被找字符串, 要找的字符串, 开始倒着找的起始位置)
Private Sub Command1_Click()
Dim MyStr As String
MyStr =
"4567890"
Print InStrRev(MyStr, "7")
End Sub
●输出结果:27
●InStrRev是从起始位置开始倒着找
Private Sub Command1_Click()
Dim MyStr As String
MyStr =
"4567890"
Print InStrRev(MyStr, "7", 25)
End Sub
●输出结果:17,这是从字符串第25个字倒着找回来的结果。
47、Join 将数组数据加入分隔字符后组合成一新字符串
●可以在VB5里找到Join关键字,但在VB5里用来处理资料库,VB6加入Join为正式函数。
●用法:传回字符串 = Join(原始数组, 分隔字符串)
Private Sub Command1_Click()
Dim MyStr(3) As String
MyStr(0) = "倩倩"
MyStr(1) = "网友门"
MyStr(2) = "VB高手"
Print Join(MyStr, "与")
End Sub
●输出结果:"倩倩与网友们与VB高手与"
48、Kill 删除文件
●如何删除程序。
使用VB的文件处理函数。
Kill "磁盘:文件夹文件名"或字串
EX:Kill MyPathFile
EX:Kill "C:MyTmp~"
EX:Kill
"C:
解决法:
使用统配字符 Kill
"C:MyDirMyMusic*.stm"
Kill "C:MyDirsexyf??"
49、LBound 得知数组最小起始范围
LBound用於取回阵列最小值,UBound用於取回阵列最大值。
Dim MyArr(5000)
Min = LBound(MyArr)
Max = UBound(MyArr)
Min = 0
Max = 5000
Dim MyArr(1000 To 5000)
Min = LBound(MyArr)
Max = UBound(MyArr)
Min = 1000
Max = 5000
Dim MyArr(1000 To 5000, 10 To 50)
Min = LBound(MyArr, 2)
Max = UBound(MyArr, 2)
Min = 10
Max = 50
50、Left 截取字符串左边几个字
●如何截取字串中某个字串。
(1)Left - 截取字串左边某几个字符
字串变数 = Left(字串, 字符数)
Ex:
MyStr = "ABCDEFGHIJKLMN"
MyStr = Left(MyStr, 4)
12
MyStr的内容变成 "ABCD"
MyHour = Left(Time$, 2)
MyHour的内容变成时间里「小时」的部份
Rnd传回值是小於1的小数,若我们要取整数0到9为
数字变数 = Int(Rnd * 10)
(2)Mid - 截取字串中某个起始位置开始的某几个字符
字串变数 = Mid(字串, 起始位置 ,字符数)
Ex:
MyStr = "ABCDEFGHIJKLMN"
MyStr = Mid(MyStr, 5, 6)
MyStr的内容变成 "EFGHIJ"
MyMinute = Left(Time$, 4, 2)
MyMinute的内容变成时间里「分钟」的部份
(3)Right - 截取字串右边某几个字符
字串变数 = Right(字串, 字符数)
Ex:
MyStr = "ABCDEFGHIJKLMN"
MyStr = Right(MyStr, 4)
MyStr的内容变成 "KLMN"
MySecond = Right(Time$, 2)
MySecond的内容变成时间里「秒」的部份
51、Len 得知字符串的字数
●InStr(传回字串里某个字串在第几个字的位置)
MyVal = InStr(, "倩倩")
MyVal = InStr("倩倩的VB网站", "VB")
MyVal = 4
●InStrB(传回字串里某个字串在第几个字符的位置)
MyVal = InStrB(, "倩倩姐")
MyVal = InStrB("倩倩的VB网站", "VB")
MyVal = 7
●Len(传回字串有多少字数)
MyVal = Len(MyStr)
MyVal = Len("倩倩的VB网站")
MyVal = 7
●LenB(传回字串有多少字符)
MyVal = LenB(MyStr)
MyVal = LenB("倩倩的VB网站")
MyVal = 14
●StrComp(比较字串)
MyVal = StrComp(MyStr1, MyStr2, 0)
MyVal = StrComp("Abcd", "abcd", 0)
MyVal = -1
MyVal = StrComp("Abcd", "abcd", 1)
MyVal = 0
传回值 = StrComp([字串1], [字串2], 比较模式)
传为值:
1 字串1 大于 字串2
0 字串1 等于 字串2
-1 字串1 小于 字串2
Null 字串1 与 字串2 都是 Null 字符
比较模式:
0 转成字码比较 (半型全型大小写不同)
1 字符比较 (半型全型大小写都相同)
52、LoadPicture 载入图形
●LoadPicture。
载入图形: Private Sub Command1_Click()
Set Picture1 =
LoadPicture("D:")
End Sub Private Sub Command2_Click()
Set Picture1 = LoadPicture("D:")
End Sub Private Sub Command3_Click()
Set =
LoadPicture("D:")
End Sub
●SavePicture。
储存图形:(※只能储存成BMP图档)
Private Sub Command1_Click()
Save Image, "c:"
End Sub
53、LSet 字符串向左对齐
●String(填入N个相同的字)
MyStr = String(N, MyChr)
MyStr = String(6, "瓜"")
MyStr = 瓜瓜瓜瓜瓜瓜
●Space(填入N个空白)
MyStr = Space(N)
MyStr = Space(7)
●LSet(字串向左对齐)
MyStr = ""
LSet MyStr = "千千VB站"
结果:"千千VB站 "(在右方加上7个空白)
●RSet(字串向右对齐)
MyStr = ""
LSet MyStr = "千千VB站"
结果:" 千千VB站"(在左方加上7个空白)
●Tab(打出n个制表字符,只用在Print方法)
A = "12345"
B = "09876"
Print A; Tab(1); B
结果:"12345 09876"
54、LTrim 移除字符串最左边的空白字符
假设一字串变数TmpStr = " 我爱吃东西 ",看看经过下面几个函数处理过有何变化。
●LTrim 删除字串左边的空白字串
TmpStr = LTrim(TmpStr) ←TmpStr = "我爱吃东西 "
●RTrim 删除字串右边的空白字串
TmpStr = RTrim(TmpStr) ←TmpStr = " 我爱吃东西"
●Trim 删除字串首尾的空白字串
TmpStr = Trim(TmpStr) ←TmpStr = "我爱吃东西"
55、Mid 截取字符串里某些字符串
●如何截取字串中某个字串。
(1)Left - 截取字串左边某几个字符
字串变数 = Left(字串, 字符数)
13
Ex:
MyStr = "ABCDEFGHIJKLMN"
MyStr = Left(MyStr, 4)
MyStr的内容变成 "ABCD"
MyHour = Left(Time$, 2)
MyHour的内容变成时间里「小时」的部份
Rnd传回值是小於1的小数,若我们要取整数0到9为
数字变数 = Int(Rnd * 10)
(2)Mid - 截取字串中某个起始位置开始的某几个字符
字串变数 = Mid(字串, 起始位置 ,字符数)
Ex:
MyStr = "ABCDEFGHIJKLMN"
MyStr = Mid(MyStr, 5, 6)
MyStr的内容变成 "EFGHIJ"
MyMinute = Left(Time$, 4, 2)
MyMinute的内容变成时间里「分钟」的部份
(3)Right - 截取字串右边某几个字符
字串变数 = Right(字串, 字符数)
Ex:
MyStr = "ABCDEFGHIJKLMN"
MyStr = Right(MyStr, 4)
MyStr的内容变成 "KLMN"
MySecond = Right(Time$, 2)
MySecond的内容变成时间里「秒」的部份
56、MkDir 建立新的数据颊
●如何建立文件夹。
使用VB的文件处理函数。
MkDir "已存在磁盘:已存在文件夹未存在文件夹"或字串
EX:MkDir MyPath
EX:MkDir "C:MyTmp"
EX:MkDir "C:MyDirMyshopMyDoc"
上式中,若"C:MyDirMyshop"不存在时则会造成Error值传回。
解决法:
MkDir "C:MyDir"
MkDir "C:MyDirMyshop"
MkDir "C:MyDirMyshopMyDoc"
57、Name As 更改文件名
●如何更改文件名。
使用VB的文件处理函数。
Name "来源文件名" As "目的文件名"
EX:Name MyOldFile As MyNewFile
EX:Name "A" As "B"
EX:Name "" As ""
EX:Name "" As ""
57、Option VB内部一些选项设定
依照设计者个人喜好而订定的选项。
●Option Base {0|1}
设定所有的VB阵列第一个元素是0或是1,预设值为0。
Dim Tmp(10) As String
MsgBox LBound(Tmp)为0
MsgBox UBound(Tmp)为9
For I = 0 To 9
Tmp(I) = I
Next
(General)
Option Base 1
(Sub)
Dim Tmp(10) As String(br> MsgBox LBound(Tmp)为1
MsgBox UBound(Tmp)为10
For I = 1 To 10
Tmp(I) = I
Next
●Option Compare {Binary|Text|DataBase}
设定所有VB变数是以两位元比较、字符比较或是用数据库比较大小,预设为Text。
两字串A="A" B="a"
在预设值为Text下,A=B。
(General)
Option Compare Binary
(Sub)
两字串A="A" B="a"
在值为Binary下,A < B(按ASCII码大小比较)。
●Option Explicit
设定所有VB变数必需要有严格的宣告。
(General)
Option Explicit
(Sub)
A = 123 ← A变数没有做宣告,故会产生 Error
(General)
Option Explicit
(Sub)
Dim A As Integer
A = 123 ← A变数有做宣告,故才能正常的执行
58、PopupMenu 跳出菜单
●PopupMenu。
※什么是菜单(Menu)?如果你不知道,请到 新手教学"单元的第一个额外课程找找。
用法 PopupMenu MenuName
假若我们要让一个有子菜单,名称为 MenuDulax 的菜单蹦出,该怎麽写?
Private Sub Cmd1_Click()
PopupMenu MenuDulax
End Sub
假若我们要在Form1上按鼠标右键而跳出菜单,该怎麽做?
Private Sub Form1(Button As Integer, Shift As Integer,
X ......)
If Button = 2 Then PopupMenu MenuDulax
End Sub
59、Print 列印数据
Print这个含数在BASIC里是什么东西呢!?由屏幕印资出料吗!?我们说:「错」,Print由指定的装置输出,平常的预设是由屏幕输出,所以在VB里使用Print时,结果会显示在Form上。
Print "倩倩"
Form会显示出"倩倩"字串
14
MyVal = 9876543210
Print MyVal
MyStr = Hex(100)
Form会显示出9876543210数字
Print 1 * 2 / 3 - 4 + 5
Form会显示出1.66666666666数字
因预设是屏幕,故会由Form输出,我们可以藉由Open来帮我们指定输出装置。
Open "C:" For Output As #1 '当Open后方装置名称接文件名时,输出装置改成磁盘机
Print #1, "倩倩" '输出至指定装置
Close #1 '关闭输出装置回到屏幕
Open "prn" For Output As #1 '输出至标准列印装置
Print #1, "倩倩" '输出至指定装置
Close #1 '关闭输出装置回到屏幕
印表机控制权被Windows的印表机管理员拿走,结果无反应
Open "lpt1" For Output As #1 '输出至平行埠1
Print #1, "倩倩" '输出至指定装置
Close #1 '关闭输出装置回到屏幕
调用lpt1时,因对lpt1送出资料後,装置一直没有回应而使程序陷入无穷回圈里,须以ctrl+alt+del关闭程序
Open "aux" For Output As #1 '输出至辅助输出装置
Print #1, "倩倩" '输出至指定装置
Close #1 '关闭输出装置回到屏幕
倩倩姐的电脑没有AUX,VB说 I/O设备存取失败
Open "com1" For Output As #1 '输出至序列埠1
Print #1, "倩倩" '输出至指定装置
Close #1 '关闭输出装置回到屏幕
倩倩的电脑Com1接鼠标,Com1在一个时间内只能做单向资料传输,因此出资讯後电脑不检查是否有回应。鼠标不属於输出装置,因此鼠标没有任何反应(难到滑数还会自动跑走,废话)
Open "nul" For Output As #1 '输出至虚拟装置
Print #1, "倩倩" '输出到虚拟装置
Close #1 '关闭输出装置回到屏幕
这个装置本来就不会有任何反应
60、QBColor 设定颜色(16色)
●QBColor 使用QBasic的颜色
EX:
lor = QBColor(1)
QBColor(0)→●
QBColor(1)→●
QBColor(2)→●
QBColor(3)→●
QBColor(4)→●
QBColor(5)→●
QBColor(6)→●
QBColor(7)→●
QBColor(8)→●
QBColor(9)→●
QBColor(10)→●
QBColor(11)→●
QBColor(12)→●
QBColor(13)→●
QBColor(14)→●
QBColor(15)→
●RGB 使用全部的颜色
EX:
lor = RGB(R, G, B)
R为红色值,G为绿色值,B为蓝色值,其值最小为0、最大为255
RGB(0,100,255)→●
RGB(99,10,99)→●
RGB(255,20,0)→●
R,G,B值随你喜好而任意变更。
61、Randomize 随机数初始化声明
●如何读取乱数。
数字变数 = Rnd
Rnd传回值是小於1的小数,若我们要取整数0到9为
数字变数 = Int(Rnd * 10)
若我们要取整数2到11为
数字变数 = Int(Rnd * 10 + 2)
程序第一次执行所得到的乱数与以後执行所得到的乱数会一模一样,因为VB内的乱数只是一个固定的表,调用Rnd只不过是依序提出乱数表内的值。
如何解决?使用乱数初始化
→Randomize 数值
乱数初始化就是说当我们提出乱数时在再乘上一个数值,若这个数值是会变动的,那每次程序执行所得到的乱数就会不一样。
→Randomize Timer
→RanDomize Val(Right(Time$, 2))
Ex:
Private Function MyRnd() As Integer
Randomize Timer
MyRnd = Int(Rnd * 10)
End Function
62、Replace 取代字符串中某些字符串
●VB6提供了许多的好用字符串处理函数。
●用法:传回字符串 = Replace(被取代字符串, 要找的字符串, 取代成的字符串, 开始位置, 取代几组)
Private Sub Command1_Click()
Dim MyStr As String
MyStr =
"456789"
Print Replace(MyStr, "90", "九零")
End Sub
●输出结果:"12345678九零12345678九零12345678九零12345678九零"
Private Sub Command1_Click()
15
Dim MyStr As String
MyStr =
"456789"
Print Replace(MyStr, "90", "九零", 11, 2)
End Sub
●输出结果:"2345678九零12345678九零1234567890"
63、RmDir 移除数据颊
●如何删除文件夹。
使用VB的文件处理函数。
RmDir "已存在磁盘:已存在文件夹已存在文件夹"或字串
EX:RmDir MyPath
EX:RmDir "C:MyTmpMyFloder"
EX:RmDir "Myshop"
若文件夹内有文件会无法删除文件夹。
解决法:
Kill "MyDir*.*"
RmDir "MyDir"
64、RSet 字符串向右对齐
●String(填入N个相同的字)
MyStr = String(N, MyChr)
MyStr = String(6, "瓜"")
MyStr = 瓜瓜瓜瓜瓜瓜
●Space(填入N个空白)
MyStr = Space(N)
MyStr = Space(7)
●LSet(字串向左对齐)
MyStr = ""
LSet MyStr = "千千VB站"
结果:"千千VB站 "(在右方加上7个空白)
●RSet(字串向右对齐)
MyStr = ""
LSet MyStr = "千千VB站"
结果:" 千千VB站"(在左方加上7个空白)
●Tab(打出n个制表字符,只用在Print方法)
A = "12345"
B = "09876"
Print A; Tab(1); B
结果:"12345 09876"
65、SavePicture 储存图形
●LoadPicture。
载入图形: Private Sub Command1_Click()
Set Picture1 =
LoadPicture("D:")
End Sub Private Sub Command2_Click()
Set Picture1 = LoadPicture("D:")
End Sub Private Sub Command3_Click()
Set =
LoadPicture("D:")
End Sub
●SavePicture。
储存图形:(※只能储存成BMP图档)
Private Sub Command1_Click()
Save Image, "c:"
End Sub
66、Screen 得知屏幕简易资讯
●得知或设定Active 对象的属性
例如:
Active Object是否重画 =
Draw
Active Object的背景颜色 =
lor
Active Object的Title = n
Form.对象属性
当Form上没有对象或该对象没有你所要的属性资料时会造成Error
●得知或设定Active Form的属性
例如:
Active Form是否重画 =
Draw
Active Form的背景颜色 =
lor
Active Form的Title = n
的属性
●得知屏幕字型有多少种
值 = unt
●得知屏幕上游标的种类
MsgBox ointer
传回值
0 Default
1 Arrow
2 Cross
3 I-Beam
4 Icon
5 Size
6 Size NE SW
7 Size NS
8 Size NW SE
9 Size WE
10 Up Arrow
11 Hourglass
12 No Drop
13 Arrow And Hourglass
14 Arrow And Question
15 Size All
●得知屏幕每个Pixel内的Twips。
X = erPixelX
Y = erPixelY
●得知屏幕宽与高。
↑
高 ←宽→
↓
屏幕宽(pixel) =
屏幕高(pixel) =
67、Sgn 得知是整数还是负数v
●Sgn 判段正负数
用法:传回值 = Sgn(数值)
例:
Dim HerVal As Integer
16
HerVal = 798
MyVal = Sgn(HerVal)
MyVal的值为1
= "-9"
MyVal = Sgn(Val())
MyVal的值为-1
MyVal = Sgn(12345)
MyVal的值为1
MyVal = Sgn(-12345)
MyVal的值为-1
Abs(-12345)
Debug对话框打出-1
Sgn传回值:
-1 为负数
0 为0
1 为正数
●运用:
Select Case Sgn(MyVal)
Case -1
MsgBox "MyVal是负数"
Case 0
MsgBox "MyVal是0"
Case 1
MsgBox "MyVal是正数"
End Select
68、Space 填入数个空白字符
●String(填入N个相同的字)
MyStr = String(N, MyChr)
MyStr = String(6, "瓜"")
MyStr = 瓜瓜瓜瓜瓜瓜
●Space(填入N个空白)
MyStr = Space(N)
MyStr = Space(7)
●LSet(字串向左对齐)
MyStr = ""
LSet MyStr = "千千VB站"
结果:"千千VB站 "(在右方加上7个空白)
●RSet(字串向右对齐)
MyStr = ""
LSet MyStr = "千千VB站"
结果:" 千千VB站"(在左方加上7个空白)
●Tab(打出n个制表字符,只用在Print方法)
A = "12345"
B = "09876"
Print A; Tab(1); B
结果:"12345 09876"
69、Split 以某字符串将字符串拆解成数组
●VB6提供了许多的好用字串处理函数,使得千千VB站的自制函数单元已经如同虚设了。
●用法:传回数组 = Split(原始字串, 要找的字串,
拆成几个数组)
Private Sub Command1_Click()
Dim MyStr As String
MyStr = "56712345"
MyStrs = Split(MyStr, "67") For Each Strs In
MyStrs
Print Strs
Next
End Sub
●输出结果:"12345"、"12345"、"12345"
Private Sub Command1_Click()
Dim MyStr As String
MyStr = "56712345"
MyStrs = Split(MyStr, "67", 2) For Each Strs
In MyStrs
Print Strs
Next
End Sub
●输出结果:"12345"、"5"
Private Sub Command1_Click()
Dim MyStr As String
MyStr =
"456789"
Print Replace(MyStr, "90", "九零", 11, 2)
End Sub
●输出结果:"2345678九零12345678九零1234567890"
70、StrComp 比较字符串
●InStr(传回字串里某个字串在第几个字的位置)
MyVal = InStr(, "倩倩")
MyVal = InStr("倩倩的VB网站", "VB")
MyVal = 4
●InStrB(传回字串里某个字串在第几个字符的位置)
MyVal = InStrB(, "倩倩姐")
MyVal = InStrB("倩倩的VB网站", "VB")
MyVal = 7
●Len(传回字串有多少字数)
MyVal = Len(MyStr)
MyVal = Len("倩倩的VB网站")
MyVal = 7
●LenB(传回字串有多少字符)
MyVal = LenB(MyStr)
MyVal = LenB("倩倩的VB网站")
MyVal = 14
●StrComp(比较字串)
MyVal = StrComp(MyStr1, MyStr2, 0)
MyVal = StrComp("Abcd", "abcd", 0)
MyVal = -1
MyVal = StrComp("Abcd", "abcd", 1)
MyVal = 0
传回值 = StrComp([字串1], [字串2], 比较模式)
传为值:
1 字串1 大于 字串2
0 字串1 等于 字串2
-1 字串1 小于 字串2
Null 字串1 与 字串2 都是 Null 字符
比较模式:
0 转成字码比较 (半型全型大小写不同)
1 字符比较 (半型全型大小写都相同)
71、TypeName 得知变量类别的名称
●VarType
MyVal = "123"
MyStr = "123"
MyDate = #2/12/69#
A = VarType(MyVal)
B = VarType(MyStr)
C = VarType(MyDate)
结果
A = 2
B = 8
C = 7
值与代表含意
vbEmpty
vbNull
vbInteger
vbLong
vbSingle
vbDouble
vbCurrency
vbDate
vbString
vbObject
vbError
vbBoolean
vbVariant
0 空值
1 虚值
2 整数
3 长整数
4 单精数
5 双精数
6 币值
7 日期
8 字串
9 对象
10 错误值(Error Value)
11 布林代数
12
Variant (used only with arrays
of variants)
vbDataObject 13 存取对象资料
vbDecimal
vbByte
vbArray
14 十进数
17 位元组
8192 阵列
●TypeName
MyVal = "123"
MyStr = "123"
MyDate = #2/12/69#
A = TypeName(MyVal)
B = TypeName(MyStr)
C = TypeName(MyDate)
结果
A = "Integer"
B = "String"
C = "Date"
值与代表含意
Byte
Integer
Long
位元组
整数
长整术
17
Single
Double
Currency
Decimal
Date
String
Boolean
Error
Empty
Null
Object
Unknown
Nothing
单精数
双精数
币值
十进值
日期
字串
布林代数
错误值
空值
虚值
误对象
未知种类
未之类型的对象
72、UBound 得知数组的最值
LBound用於取回阵列最小值,UBound用於取回阵列最大值。
Dim MyArr(5000)
Min = LBound(MyArr)
Max = UBound(MyArr)
Min = 0
Max = 5000
Dim MyArr(1000 To 5000)
Min = LBound(MyArr)
Max = UBound(MyArr)
Min = 1000
Max = 5000
Dim MyArr(1000 To 5000, 10 To 50)
Min = LBound(MyArr, 2)
Max = UBound(MyArr, 2)
Min = 10
Max = 50
73、Val 将字符串转成数字
Str用於把数值转成字串,Val用於把字串转成数值。
●Str
MyVal = 12345
MyStr = Str(MyVal)
结果
MyStr = " 12345"
MyVal = 3.14159
MyStr = Str(MyVal)
结果
MyStr = " 3.14159"
MyVal = 3.14159
MyStr = Trim(Str(MyVal))
结果
MyStr = "3.14159"
●Val
MyStr = "12345"
MyVal = Val(MyStr)
结果
MyVal = 12345
18
MyStr = "3.14159"
MyVal = Val(MyStr)
结果
MyVal = 3.14159
MyStr = "3A1B"
MyVal = Val(MyStr)
结果
MyVal = 0
74、WeekdayName 将WeekDay传回值改成文字显示
●这个VB函数很好理解。
●用法:传回字串 = WeekdayName(数值, 是否缩写(对中文版没意义), 每个星期的第一天)
Private Sub Command1_Click()
Print WeekdayName(WeekDay(Date))
End Sub
●输出结果传回今天星期几
●缩写设定True与False,拿星期日来说,英文是Sunday,缩写为Sun,中文系统没有星期日的缩写,因此这一栏设True与False对中文版本都没影响。
●每个星期的第一天的设定:由于系统预定每星期第一天为星期天,因此1=星期天......7=星期六,若改成VBMonday,则每个星期第一天则传回星期一,1=星期一......7=星期日,这个值最好不要改。
版权声明:本文标题:VB 可用指令、函数 索引表 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1709643986a542473.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论