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=星期日,这个值最好不要改。


本文标签: 字串 程序 文件 传回 得知