常见VB考试题型
1输入半径,求圆面积和球体积。
Private Sub Form_Load()
Dim r As Single, s As Single, v As Single
r = InputBox("请输入半径r:", "输入数据")
s = * r ^ 2
v = 4 / 3 * r ^ 3 *
'Print "圆面积为:"; s
'Print "球体积为:"; v
MsgBox ("圆面积为:" & s & Space(2) & "球体积为:" & v)
End Sub
2输入两个数存放在x和y中,比较大小,保证大数放在x中,小的数放在Y中。Private Sub Command1_Click()
Print "比较前:"
X = InputBox("请输入X")
Y = InputBox("请输入Y")
Print "X="; X, "Y="; Y
If X < Y Then
Z = Y
Y = X
X = Z
End If
Print "比较后:"
Print "X="; X, "Y="; Y
End Sub
3 判断一个整数的奇偶性
Private Sub Form_Click()
x = Val(InputBox("请输入一个数;"))
If x Mod 2 = 0 Then
MsgBox (x & " 是偶数")
Else
MsgBox (x & " 是奇数")
End If
End Sub
4 帐号和密码
Private Sub Command1_Click()
If = "12345" Then
If = "12345" Then
MsgBox "登录成功", 64 + 1, "登录"
Else
MsgBox "密码错误,请重新输入", 16
End If
Else
MsgBox "用户不存在", 16 + 1, "登录"
End If
End Sub
5 判断一个数是整数还是小数,如果是整数再判断其奇偶性。
Private Sub Form_Click()
x = InputBox("请输入一个数;")
If InStr(1, x, ".") = 0 Then
If x Mod 2 = 0 Then
MsgBox (x & " 是整数,是偶数!")
Else
MsgBox (x & " 是整数,是奇数!")
End If
Else
MsgBox (x & " 是小数")
End If
End Sub
6 书店优惠售书
Private Sub Command1_Click()
Dim x As Single, y As Single
x = Val
Select Case x
Case Is <= 100
y = x *
Case Is <= 200
y = x *
Case Is <= 300
y = x *
Case Else
y = x *
End Select
= y & "元"
End Sub
7 设计一个计程车收费程序
Private Sub Command1_Click()
X = Val
Select Case X
Case Is <= 3
= 6
Case Is <= 30
= 6 + (X - 3) *
Case Else
= 6 + 27 * + (X - 30) * 2
End Select
End Sub
8 输入10个数,输出累加之和。
Private Sub Command1_Click()
Dim S As Single, i As Integer, x As Single S = 0
For i = 1 To 10
x = Val(InputBox("请输入第" & i & "个数")) Print "第" & i & "个数" & x
S = S + x
Next i
Print "十个数累加之和为" & S
End Sub
9 输入10个数,输出偶数之和。
Private Sub Command1_Click()
Dim S As Single, x As Single
Dim n As Integer, i As Integer
S = 0
For i = 1 To 10
x = Val(InputBox("请输入第" & i & "个数")) Print "第" & i & "个数" & x
If x Mod 2 = 0 Then
S = S + Val(x)
End If
Next i
Print "十个数中偶数累加之和为" & S
End Sub
10 求S=1+2+3+……+100
Private Sub Command1_Click()
Dim I As Integer, S As Long
S = 0
For I = 1 To 100
S = S + I
Next I
Print Tab(10); "S="; S
End Sub
11 求S=1+3+5+……+99
Private Sub Command1_Click()
s = 0
For i = 1 To 100 Step 2
s = s + i
Next i
Print "s="; s
End Sub
12S=1+22+32+……+102,计算并输出s
Private Sub Command1_Click()
s = 0
For i = 1 To 10
s = s + i ^ 2
Next i
"s="; s
End Sub
13 S=1+22+32+……+n2,问n为多少时,s的值大于100000 Private Sub Command1_Click()
s = 0
n = 0
Do While s <= 100000
n = n + 1
s = s + n ^ 2
Loop
Print Tab(15); "n="; n
End Sub
14 1)S=1/2+1/4+1/6+1/8+1/10+…+1/20,求s 并输出s 的值。
Private Sub Command1_Click()
Dim s As Single, i As Integer
s = 0
For i = 2 To 20 Step 2
s = s + 1 / i
Next i
Print "s="; s
End Sub
15 s=1×2×3×……×10
求n !,n 为[1~10]之间的随机整数。
Private Sub Command1_Click()
Dim s As Long, i As Integer
s = 1
For i = 1 To 10
s = s * i
Next i
Print "10!="; s
End Sub
16 已知一数列的前两项均为1,从第3项开始,每一项的值为其前面两项之和,求数列的前20项的和。
Private Sub Command1_Click()
Dim s As Integer, f1 As Integer
Dim f2 As Integer, f3 As Integer
s = 0
f1 = 1
f2 = 1
s = f1 + f2
For i = 3 To 20
f3 = f1 + f2
s = s + f3
f1 = f2
f2 = f3
Next i
Print "s="; s
End Sub
17 项和。求其前205
8352312??++++=S
Private Sub Command1_Click()
Dim s As Single, f1 As Integer, f2 As Integer
Dim f3 As Integer, i As Integer
s = 0
f1 = 1
f2 = 2
For i = 1 To 20
s = s + f2 / f1
f3 = f2
f2 = f1 + f2
f1 = f3
Next i
Print "s="; s
End Sub
18 S=1!+2!+3!+ (10)
Private Sub Command1_Click()
Dim s As Long, s1 As Long, i As Integer, j As Integer s = 0
For i = 1 To 10
s1 = 1
For j = 1 To i
s1 = s1 * j
Next
s = s + s1
Next i
Print "s="; s
End Sub
考虑另一种算法
见其他打印部分
19 s=1+(1+2)+(1+2+3)+...+(1+2+ (10)
Private Sub Command1_Click()
Dim s As Integer, s1 As Integer
Dim i As Integer, j As Integer
s = 0
For i = 1 To 10
s1 = 0
For j = 1 To i
s1 = s1 + j
Next j
s = s + s1
Next i
Print "s="; s
End Sub
20 s=1-1/3!+1/5!-1/7!+…直到某一项的绝对值小于10^(-5)
Private Sub Command1_Click()
Dim S As Single, S1 As Single
Dim i As Integer, F As Integer, J As Integer
S = 0
S1 = 1
i = 1
F = 1 '正负符号标志
Do While 1 / S1 > 10 ^ (-5)
S1 = 1
J = 1
Do While J <= i
S1 = S1 * J
J = J + 1
Loop
S = S + 1 / S1 * F
i = i + 2
F = -F '换符号
Loop
Print "S="; S - 1 / S1, "I="; i
'S = 0
'x = 1
'n = 1
'Do While 1 / x >= 10 ^ (-5)
'S = S + (1 / x) * (-1) ^ (n + 1)
'x = x * (n * 2) * (2 * n + 1)
'n = n + 1
'Loop
'Print "S="; S
End Sub
21 s=2+22+222+2222+22222+222222
Private Sub Command1_Click()
Dim s As Long, s1 As Long, i As Integer, j As Integer
s = 0
For i = 1 To 6
s1 = 0
For j = 1 To i
s1 = s1 + 2 * 10 ^ (j - 1)
Next
s = s + s1
Next
Print "s="; s
End Sub
22 S=a+aa+aaa+……+aaaa(N个a)其中a是一个[1,9]的随机整数,N是一个[5,10]的随机整数。
Private Sub Command1_Click()
Dim a As Integer, n As Integer
Dim s As Long, s1 As Long, i As Integer, j As Integer
Cls
Randomize
a = Int(9 * Rnd) + 1
n = Int(6 * Rnd) + 5
s = 0
For i = 1 To n
s1 = 0
For j = 1 To i
s1 = s1 + a * 10 ^ (j - 1)
Next j
s = s + s1
Next i
Print "当a="; a, "n="; n; "时"
Print "s="; s
End Sub
23 S=1+12+123+1234+12345+123456
Private Sub Command1_Click()
Dim s As Long, s1 As Long, i As Integer, j As Integer
s = 0
s1 = 0
For i = 1 To 6
s1 = s1 * 10 + i
Print s1
s = s + s1
Next i
Print "s="; s
's = 0
'For i = 1 To 6
' s1 = 0
' For j = 1 To i
' s1 = s1 + j * 10 ^ (i - j)
' Next j
' s = s + s1
'Next i
'Print "s=";s
End Sub
24 将一字符串逆序输出
Private Sub Command1_Click()
Dim n As Integer, s1 As String, s2 As String s1 =
s2 = ""
n = Len(Trim)
For i = n To 1 Step -1
s2 = s2 & Mid(s1, i, 1)
Next i
= s2
End Sub
25 判断任给一大于3的整数是否是素数。
Private Sub Command1_Click()
Dim N As Integer, I As Integer
N = InputBox("请输入一个大于3的整数")
For I = 2 To N - 1
If N Mod I = 0 Then
Exit For
End If
Next I
If N = I Then
MsgBox (N & " 是素数")
Else
MsgBox (N & " 不是素数")
End If
End Sub
26 输出3~100之间的素数
输出
Private Sub Command1_Click()
Dim n As Integer, i As Integer
For n = 3 To 100
For i = 2 To n - 1
If n Mod i = 0 Then
Exit For
End If
Next i
If i = n Then
Print n
End If
Next n
End Sub
换行输出
Private Sub Command2_Click() Dim n As Integer, i As Integer Dim m As Integer
m = 0
For n = 3 To 100
For i = 2 To n - 1
If n Mod i = 0 Then
Exit For
End If
Next i
If i = n Then
m = m + 1
If m Mod 5 = 0 Then
Print n
Else
Print n;
End If
End If
Next n
End Sub
'Private Sub Command2_Click() 'Dim n As Integer, i As Integer 'dim m as in
'm = 0
'For n = 3 To 100
' For i = 2 To n - 1
' If n Mod i = 0 Then
' Exit For
' End If
' Next i
' If i = n Then
' m = m + 1
' If m Mod 5 = 0 Then
' Print Tab(6 * m); n
' m = 0
' Else
' Print Tab(6 * m); n;
' End If
' End If
'Next n
'End Sub
27 输出100~999之间的水仙花数
Private Sub Command1_Click()
Dim I As Integer, A As Integer
Dim B As Integer, C As Integer
For I = 100 To 999
A = Int(I / 100)
B = Int(I / 10) - A * 10
C = I - A * 100 - B * 10
If A ^ 3 + B ^ 3 + C ^ 3 = I Then
I;
End If
Next I
End Sub
28陈婷的QQ密码是一个5位数。但因为有一段比较长的日子没上了,陈婷把这个密码给忘了。不过陈婷的生日是8月1日,她妈妈的生日是9月1日,她特别喜欢把同时是8l和9l 的倍数用作密码。陈婷还记得这个密码的中间一位(百位数)是l。你能设计一个程序帮她找回这个密码吗
Private Sub Command1_Click()
'陈婷密码:5位数,能被81,91整除,百位是1
Dim i As Long, x As Integer
For i = 10100 To 99199
x = i \ 100 Mod 10
If x = 1 Then
If i Mod 91 = 0 And i Mod 81 = 0 Then
MsgBox "密码是" & i
End If
End If
Next i
End Sub
29百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元。现在有100元钱要求买100只鸡(每种鸡至少一只),编程列出所有可能的购鸡方案
Option Explicit
Private Sub Command1_Click()
Dim X As Integer, Y As Integer
Dim z As Integer, I As Integer
I = 0
For X = 1 To 100
For Y = 1 To 50
For z = 1 To 33
If X + Y + z = 100 And * X + 2 * Y + 3 * z = 100 Then
I = I + 1
"方案" & I & " :小鸡" & X & "只," _
& " 公鸡 " & Y & "只," & " 母鸡" & z & "只。"
End If
Next z, Y, X
End Sub
30 鸡兔合笼共20只,脚46只问鸡几只兔几只
Private Sub Command1_Click()
Dim x As Integer, y As Integer
For x = 1 To 20
For y = 1 To 20 - x
If x + y = 20 And 2 * x + 4 * y = 46 Then
Print " 鸡" & x & "只 ", "兔" & y & "只"
End If
Next y
Next x
End Sub
31 找出100之内的自然数对。 (两数的和是某个自然数的平方,两数的差也是某数的平方)
Private Sub Command1_Click()
For i = 1 To 99
For j = i + 1 To 100
If Int(Sqr(j - i)) = Sqr(j - i) And Int(Sqr(j + i)) = Sqr(j + i) Then
Print i, j
End If
Next j
Next i
End Sub
32 找出1000-9999之间的玫瑰花数。
Private Sub Command1_Click()
Dim i As Integer
Dim a1 As Integer, a2 As Integer
Dim a3 As Integer, a4 As Integer
For i = 1000 To 9999
a1 = i \ 1000
a2 = i \ 100 Mod 10
a3 = i \ 10 Mod 10
a4 = i Mod 10
If a1 ^ 4 + a2 ^ 4 + a3 ^ 4 + a4 ^ 4 = i Then
Print i
End If
Next i
End Sub
33 猴子吃桃子。小猴在某天摘桃若干个,当天吃掉一半多一个;第二天吃了剩下的桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天要吃时只剩下一个,问小猴共摘下了多少个桃子
Option Explicit
Private Sub Command1_Click()
Dim X As Integer, I As Integer
X = 1
For I = 6 To 1 Step -1
X = (X + 1) * 2
"第" & I; "天桃子数是:" & X & "个。"
Next I
End Sub
34瓜农有西瓜1020个,每天能卖掉前一天剩下的总数的一半还多两个,问多少天能卖完。Option Explicit
Private Sub Command1_Click()
Dim X As Integer, I As Integer
X = 1020
I = 0
Do While X > 0
X = X / 2 - 2
I = I + 1
Loop
= "第" & I & "天能卖完."
End Sub
35一球从10米高空落下,每次弹起高度为落下高度的40%,求第8次落下,小球经历的路程。Private Sub Command1_Click()
Dim s As Single, h As Single, i As Integer
s = 10
h = 10
For i = 2 To 8
h = h *
s = s + h * 2
Next i
"球第八次落下经历的路程是:"; s; "米"
End Sub
36 输入十个数,输出其中的最大数和最小数
Private Sub Command1_Click()
Dim x As Single, i As Integer
Dim max As Single, min As Single
x = Val(InputBox("请输入第1个数"))
Print x
max = x: min = x
For i = 2 To 10
x = Val(InputBox("请输入第" & i & "个数"))
Print x
If x > max Then
max = x
Else
If x < min Then
min = x
End If
End If
Next i
Print "max="; max, "min="; min
End Sub
37 7个裁判给选手打分,要求去掉最高分和最低分,求平均分。
Option Explicit
Private Sub Command1_Click()
Dim C(7), MAX, MIN, S, I
MAX = 0
MIN = 100
For I = 1 To 7
C(I) = Val(InputBox("请输入第" & I & "裁判的打分", "输入", , 7000, 1000))
"第 " & I & "个裁判的打分:" & C(I)
S = S + C(I)
If C(I) > MAX Then
MAX = C(I)
Else
If C(I) < MIN Then
MIN = C(I)
End If
End If
Next I
S = (S - MAX - MIN) / 5
"最后得分是:" & S
End Sub
38 求M,N的最大公约数和最小公倍数Private Sub Command1_Click()
Dim m As Integer, n As Integer
Dim i As Integer, mas As Integer
Max = 1
m = Val
n = Val
If m >= n Then
x = n
Else
x = m
End If
For i = 1 To x
If m Mod i = 0 And n Mod i = 0 Then Max = i
End If
Next i
= "最大公约数是" & Max
End Sub
Private Sub Command2_Click()
Dim m As Integer, n As Integer
Dim i As Integer, mas As Integer
m = Val
n = Val
If m >= n Then
x = m
Else
x = n
End If
Max = x
For i = x To m * n
If x Mod i = 0 And x Mod i = 0 Then
Min = i
Exit For
End If
Next i
= "最小公倍数是" & Min
End Sub
39 统计1~100之间能被3整除和能被7整除的数各有多少个
Private Sub Command1_Click()
Dim i As Integer, m As Integer, n As Integer
m = 0: n = 0
For i = 1 To 100
If i Mod 3 = 0 Then
m = m + 1
End If
If i Mod 7 = 0 Then
n = n + 1
End If
Next i
Print "能被3整除的数有" & m & "个" & vbCrLf & "能被7整除的数有" & n & "个" End Sub
40 统计字符串中字母“A”出现的次数(不区分大小写)
Option Explicit
Private Sub Command1_Click()
Dim N As Integer, I As Integer, x As String
N = 0
x =
For I = 1 To Len(x)
If Mid(x, I, 1) = "A" Or Mid(x, I, 1) = "a" Then
'If UCase(Mid(x, I, 1)) = "A" Then
N = N + 1
End If
Next I
= N
End Sub
41统计字符串中大写字母、小写字母、数字字符的个数分别是多少Private Sub Command1_Click()
Dim N1, N2, N3, I
N1 = 0: N2 = 0: N3 = 0
For I = 1 To Len
X = Mid, I, 1)
Select Case X
Case "A" To "Z"
N1 = N1 + 1
Case "a" To "z"
N2 = N2 + 1
Case 0 To 9
N3 = N3 + 1
End Select
Next
"大写字母个数:"; N1
"小写字母个数:"; N2
"数字字符个数:"; N3
End Sub
42 简单图形输出
Private Sub Command1_Click()
Dim N As Integer, I As Integer
Dim J As Integer, A As Integer
N = Val
For I = 1 To N
Tab(10 - I);
For J = 1 To 2 * I - 1
Trim(Str(I));
Next J
Next I
'N = Val
'For I = 1 To N
' Tab(15 - I);
' For J = 1 To 2 * I - 1
' Chr(64 + I);
' Next J
'
'Next I
End Sub
43输出一个5×5矩阵,该矩阵主对角线元素为1,其余元素为0。Private Sub Command1_Click()
Dim a(5, 5)
For i = 1 To 5
For j = 1 To 5
If i = j Then
a(i, j) = 1
Else
a(i, j) = 0
End If
Print a(i, j);
Next j
Next i
End Sub
44随机产生10个1~100之间的整数,并按从小到大顺序输出。Private Sub Command1_Click()
Dim a(10) As Integer
For i = 1 To 10
a(i) = Int(100 * Rnd()) + 1
Print a(i);
Next i
For i = 1 To 9
For j = 1 To 10 - i
If a(j) >= a(j + 1) Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t
End If
Next j
Next i
Print "排序后"
For i = 1 To 10
Print a(i);
Next i
End Sub
45求n×n矩阵每行元素之和(n值由键盘输入,矩阵元素随机产生,范围在[20-50]之间。Private Sub Command1_Click()
Dim a() As Integer, S As Integer
n = Val(InputBox("请输入n"))
ReDim a(n, n)
For i = 1 To n
S = 0
For j = 1 To n
a(i, j) = Int(31 * Rnd + 20)
Print a(i, j);
S = S + a(i, j)
Next j
Print "第"; i; "行元素之和:"; S
Next i
End Sub
46 :输入10个同学3门课成绩,求每个同学的总分,并按总分从高到低顺序输出。(每个同学名次)
Private Sub Command1_Click()
Dim a(10, 5)
Print "成绩1"; Tab(6); "成绩"; Tab(12); "成绩"; Tab(18); "总分"; Tab(24); "名次"
For i = 1 To 3
a(i, 4) = 0
For j = 1 To 3
a(i, j) = Val(InputBox("第" & i & "个同学第" & j & "门成绩"))
a(i, 4) = a(i, 4) + a(i, j)
Next j
Next i
For i = 1 To 3
a(i, 5) = 1
For j = 1 To 3
If a(j, 4) > a(i, 4) Then
a(i, 5) = a(i, 5) + 1
End If
Next j
Next i
For i = 1 To 3
For j = 1 To 5
Print Tab((j - 1) * 6); a(i, j);
Next j
Next i
End Sub
47:出一个5×5矩阵的每行最大元素,及最大元素的下标值。该矩阵每个元素为[1,100]之间的随机整数。
Private Sub Command1_Click()
Randomize
Dim a(5, 5) As Integer, i As Integer, j As Integer
Dim max As Integer, h As Integer
For i = 1 To 5
max = 0: h = 0
For j = 1 To 5
a(i, j) = Int(100 * Rnd + 1)
Print Tab(4 * j); a(i, j);
If a(i, j) > max Then
max = a(i, j)
h = j
End If
Next j
Print Tab(4 * j); "第"; i; "行最大元素是"; max; "是第"; h; "个元素"
Next i
End Sub
48:Sub过程和Function过程的创建均可采用两种方法:
1、直接在代码窗口输入过程的结构语句和过程语句
Private Sub Command1_Click()
m = Val
n = Val
mn = m - n
= jc(m) / jc(n) / jc(mn)
End Sub
Private Function jc(x)
s = 1
For i = 1 To x
s = s * i
Next i
jc = s
End Function
vb代码大全
用VB5实现窗口图象缩放、滚动技巧 成都理工学院计算机工程系 洪志全 ---- Visual Basic 是Windows 平台中最常用的应用软件开发语言, 窗口图像缩放、滚动是图像处理、多媒体数据库等应用软件开发中的基本功能。本文将介绍如何用VB 5.0 实现地窗口图像缩放和滚动技巧, 供读者在各种语言系统开发中参考。 ---- 一、获取图像 ---- 本文所介绍的图像缩放并没有对真正的图像进行缩放, 而是复制一幅窗口图像的真实画面, 对这个窗口图像附本进行局部缩放和滚动, 获取窗口图像可使用Windows 的API 函数来实现。具体来说, 实现窗口图像缩放、滚动需要用GetDeskTopWindow() 函数获取桌面窗口句柄, 再通过GetDC() 函数转换为描述表句柄, 则用BitBlt() 函数把桌面图像复制到任意图形容器控件中, 桌面图像复制完成后, 再用ReleaseDC 释放窗口描述表, 各API 函数的具体使用方法参见本文的例子程序。 ---- 本文所用的API 函数包含在WIN95/98 的GDI32.DLL 和USER32.DLL 动态链接库中, 在使用时可通过VB5.0 的TEXT VIEWER 复制到所开发的应用程序中。 ---- 二、图像缩放 ---- 图像缩放显示的基本原理就是把原图像的一部分缩放后再送入窗口的图形容器控件中, 在VB 中可用内部命令PaintPicture 来进行, 语法格式为: PaintPicture Pic,DestX,DestY,DestWidth, DestHeight,ScrX,ScrY,ScrWidth,ScrHeight ---- 其中,Pic 为图片对象, 如图形控件对象等; DestX,DestY为目标图像起始坐标; DestWidth,DestHeight为目标图像幅面尺寸; ScrX,ScrY为源图像起始坐标; ScrWidth,ScrHeight为源图像剪裁尺寸。 ---- 该命令就是把一个源图像资源任意复制到指定的区域, 其功能相当于API 函数的BitBlt, 但使用更简单, 若复制时改变源图像的ScrWidth,ScrHeight 或目标图像的DestWidth,DestHeight 可使复制后的图像尺寸发生变化, 实现窗口图像的缩放显示。若ScrWidth,ScrHeight 或
VB程序设计习题
练习一 一、选择题 1、下面列出的程序设计语言中(A )是面向问题的语言。 A、机器语言 B、汇编语言 C、高级语言 D、0、1二进制语言 解释:机器语言和汇编语言都是面向机器的语言,二进制语言为机器语言,故其为面向机器的语言 2、下面列出的程序设计语言中(C )不是面向对象的语言。 A、C B、C++ C、Java D、VB 3、下列(D )不属于VB 6.0的版本。 A、学习版 B、专业版 C、企业版 D、共享版 解释:VB6.0共有三个版本:标准版、专业版、企业版。而其中的标准版是为初学者了解基于windows的应用程序开发而设计的,也可称为学习版。 二、填空题 1、从程序设计语言发展过程的角度来分类,计算机程序设计语言分:机器语言、汇编语言和高级语言。 2、VB 6.0采用了面向对象、事件驱动(可视化编程)的编程机制。 3、启动VB 6.0后可以从“现存”选项卡选择并打开系统中现存的工程文件。 练习二 一、选择题 1、如果窗体对象的名称为Forma1,Backcolor是窗体对象的一个属性,用来设置窗体的背景色,那么设置窗体背景色为蓝色的语句正确的是( A ) A、Forma1.Backcolor=vbBlue B、Backcolor= vbBlue C、Forma1 =vbBlue D、Forma1′s Backcolor is vbBlue. 2、下面方法中,不能打开编码编辑器的是(D) A、单击“视图”菜单中的“代码窗口”命令。 B、双击窗体设计器的窗体或控件。 C、双击窗体设计器的窗体或控件,单击工程资源管理器中的“查看代码”按钮。 D、双击窗体设计器的窗体或控件,单击标准工具栏中的“代码窗口”按钮。 3 、保存VB应用程序时,下列方法中正确的是(A) A、先保存窗体文件,再保存工程文件。 B、先保存工程文件,再保存窗体文件 C、直接保存窗体文件,系统会自动按顺序先保存窗体文件再保存工程文件。 D、直接保存窗体文件,系统会自动按顺序先保存工程文件再保存窗体文件。 二、填空题 1、VB工程文件的扩展名是工程文件(*.vbp),窗体文件的扩展名是窗体文件(*.frm)。 2、选中工程资源管理器中的窗体对象,再单击按钮可打开窗体设计器。 3、在VB中,按下工具栏中的“启动”按钮或
VBProject代码操作代码之常用语句
一、增加模块 1.增加一个模块,命名为“我的模块” ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_StdModule).Name = "我的模块" 系统常量vbext_ct_StdModule=1 2.增加一个类模块,命名为“我的类” ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_ClassModule).Name = "我的类" vbext_ct_ClassModule=2 3.增加一个窗体,命名为“我的窗体” ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm).Name = "我的窗体" vbext_ct_MSForm=3 二、删除模块 1.删除“模块1” ThisWorkbook.VBProject.VBComponents.Remove hisWorkbook.VBProject.VBComponents("模块1") 2.删除窗体“UserForm1” ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents("UserForm1") 3.删除类模块“类1” ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents("类1") 4.删除所有的窗体 Sub RmvForms() Dim vbCmp As VBComponent For Each vbCmp In ThisWorkbook.VBProject.VBComponents If vbCmp.Type = vbext_ct_MSForm Then ThisWorkbook.VBProject.VBComponents.Remove vbCmp Next vbCmp End Sub 相关: 工作表和ThisWorkbook的模块类型为vbext_ct_Document=100 三、增加代码 1.在“模块1”中插入代码 如果需要在“Sheet1”、“Thisworkbook”、或“Userform1”中操作,用只需将下面的“模块1”换成相应的名称即可。 方法1: 在模块的开始增加代码,增加的代码放在公共声明option,全局变量等后面。 Sub AddCode1() ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.AddFromString _ "sub aTest()" & Chr(10) & _ "msgbox ""Hello""" & Chr(10) & _ "end sub" End Sub
vb常见题型汇总代码
1.Private Sub Command1_Click() Dim r As Double, c As Double, s As Double Dim pi As Double pi = 3.1415926 r = Val(Text1.Text) c = pi * 2 * r s = pi * r * r Label3.Caption = "圆的周长为" + Str(c) + "厘米" Label4.Caption = "圆的面积为" + Str(s) + "平方厘米" End Sub 2.(5秒5分倒计时) Dim n As Integer Private Sub Command1_Click() If Option1.Value Then n = 5 If Option2.Value Then n = 300 Timer1.Enabled = True Frame1.Enabled = False Command1.Enabled = False End Sub Private Sub Form_Load() Timer1.Enabled = False Timer1.Interval = 1000 End Sub Private Sub Timer1_Timer() n = n - 1 Text1.Text = Str(n \ 60) & "分" & Str(n Mod 60) & "秒" If n <= 0 Then Timer1.Enabled = False Frame1.Enabled = True Text1.Text = "时间到" End If End Sub 3.心想事成 Dim x As Integer Private Sub Command1_Click() Timer1.Enabled = True If Command1.Caption = "开始" Then Timer1.Enabled = True Command1.Caption = "停止" Else Timer1.Enabled = False Command1.Caption = "开始" End If End Sub Private Sub Form_Load() Timer1.Interval = 100 x = -100 End Sub Private Sub Timer1_Timer() Label1.Left = Label1.Left + x If Label1.Left <= 0 Then x = 100 If Label1.Left >= Form1.ScaleWidth - Label1.Width Then x = -100 End Sub 4.我的调色板(滚动条) Private Sub Command1_Click() Label5.ForeColor = Label4.BackColor End Sub Private Sub HScroll1_Change() Label4.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) End Sub Private Sub HScroll2_Change() Label4.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) End Sub Private Sub HScroll3_Change() Label4.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) End Sub 5.字形字体颜色(复选框,单选)Private Sub Check1_Click() If Check1.Value = 1 Then Text1.FontBold = True Else Text1.FontBold = False End If End Sub Private Sub Check2_Click() If Check1.Value = 1 Then
VB程序设计的常用算法填空题
VB程序设计的常用算法 例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 将程序编写在一个GetTJput过程中,代码如下: Public Sub GetTJput() Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer Dim i As Integer, p As Integer '产生100个[0,99]范围内的随机整数,每行10个打印出来 For i = 1 To If a(i) < 10 Then Form1.Print Space(2); a(i); Else Form1.Print Space(1); a(i); End If If Then Next i '统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数,并将统计结果保存在数组x(1),x(2),...,x(10)中,将统计结果打印出来For i = 1 To 100 p = a(i) Mod 10 ' 求个位上的数字 If p = 0 Then p = 10 Next i Form1.Print "统计结果" For i = 1 To 10 p = i If i = 10 Then p = 0 Form1.Print "个位数为" + Str(p) + "共" + Str(x(i)) + "个" Next i End Sub 二、求两个整数的最大公约数、最小公倍数 m=inputBox("m=") n=inputBox("n=") nm=n*m If m < n Then r=m mod n Do While m=n n=r
历年vb题目整理(带答案)
1、算法描述:求的1~100之间所有偶数的和 '注:请不要更改原程序结构,删除(1)、(2)、(3),并在对应位置填写正确的代码'Function func() (1) i As Integer dim func = (2)0 For i = 2 To 100 Step (3)2 func = func + i Next i End Function 2、操作要求: 顺序查找单词“name”: 输入10个不同的单词给数组,查找单词“name”是否在数组中;如果在,输出单词在数组中的位置,否则,输出“不在数组中”。 Sub main() Dim i As Integer Dim buzai As Boolean '定义数组d,下界为1,上界为10,数据类型为string,在dim后完善语句 Dim (1) d(1 To 10) As String '输入10个单词,在for语句后完善i的初始值与终值 For i =(2) 1 to 10 '输入每个单词给数组元素,在赋值号左侧添加变量 (3) = InputBox("Please input word " & i) d(i) Next i buzai = True i = 0 While buzai = True And i < 10 '顺序查找单词,数组下标增1,在赋值号右侧添加表达式 i =(4) i+1 '判断数组元素是否为单词"name",在if语句后添加判断条件 If (5) Then d(i) = "name" buzai = False End If Wend If buzai = False Then MsgBox "在数组中的位置为:" + Str(i) Else MsgBox "不在数组中" End If End Sub 3、小王今年26岁,资助了一名贫困大学生, '他想从明年开始每年比上一年多资助一名贫困大学生。 '编程求解小王到多少岁,就能资助到n名甚至更多大学生? Function func(n) stu = 1
VB键盘常量大全 256个虚拟键码
Public Const VK_LBUTTON = &H1 Public Const VK_RBUTTON = &H2 Public Const VK_CANCEL = &H3 Public Const VK_MBUTTON = &H4 Public Const VK_BACK = &H8 Public Const VK_TAB = &H9 Public Const VK_CLEAR = &HC Public Const VK_RETURN = &HD Public Const VK_SHIFT = &H10 Public Const VK_CONTROL = &H11 Public Const VK_MENU = &H12 Public Const VK_PAUSE = &H13 Public Const VK_CAPITAL = &H14 Public Const VK_ESCAPE = &H1B Public Const VK_SPACE = &H20 Public Const VK_PRIOR = &H21 Public Const VK_NEXT = &H22 Public Const VK_END = &H23 Public Const VK_HOME = &H24 Public Const VK_LEFT = &H25 Public Const VK_UP = &H26 Public Const VK_RIGHT = &H27 Public Const VK_DOWN = &H28 Public Const VK_Select = &H29 Public Const VK_PRINT = &H2A Public Const VK_EXECUTE = &H2B Public Const VK_SNAPSHOT = &H2C Public Const VK_Insert = &H2D Public Const VK_Delete = &H2E Public Const VK_HELP = &H2F Public Const VK_0 = &H30 Public Const VK_1 = &H31 Public Const VK_2 = &H32 Public Const VK_3 = &H33 Public Const VK_4 = &H34 Public Const VK_5 = &H35 Public Const VK_6 = &H36 Public Const VK_7 = &H37 Public Const VK_8 = &H38 Public Const VK_9 = &H39 Public Const VK_A = &H41 Public Const VK_B = &H42 Public Const VK_C = &H43 Public Const VK_D = &H44
VB程序设计知识点归纳
第一章 1 从功能上讲,Visual Basic 6.0有3种版本,即:学习版、专业版、企业版 2 与传统的程序设计语言相比,Visual Basic最突出的特点是事件驱动编程机制。 3 Visual Basic 6.0集成环境的主窗口中含有标题栏、菜单栏、工具栏 4用标准工具栏中的工具按钮不能执行的操作是打印源程序。 5关于Visual Basic"方法"的概念错误的是方法是对事件的响应 6在Visual Basic中,称对象的数据为属性 7Visual Basic应用程序可以用解释方式执行也可以用编译方式执行 第二章 1 计时器控件的Interval属性用于设置Timer事件发生的时间间隔,为了暂时关闭计时器,应把该计时器的Enabled 属性设置为False ,如果要求设置定时器时间间隔为1秒钟,那么它的Interval属性值应该等于1000 2 利用Ctrl + G操作可以打开立即窗口。 3 假定窗体上有一个标签,名为Lable1。为了使该标签透明并且没有边框,则正确的属性设置为:Lable1.BackStyle = 0 Lable1.BorderStyle = 0 4在设计阶段,当双击窗体上的某个控件时,所打开的窗口是代码窗口 5 在Visual Basic中,窗体文件的扩展名为FRM 6 窗体的Name属性指定窗体的名称,用来标识一个窗体 7 改变控件在窗体中的上下位置,应修改该控件的属性是Top 8 表示滚动条控件取值范围最大值的属性是Max 9 如果要改变窗体的标题,则需要设置的属性是Caption 10 在文本框(Text)中,通过ForeColor属性来设置字体颜色 11 若要求从文本框中输入密码时在文本框中只显示*号,则应当在此文本框的属性窗口中设置Passwordchar属性值 为* 12 能够改变复选框中背景颜色的属性是Backcolor 13 图片框是不具有Picture属性的对象 14 窗体的Name属性指定窗体的名称,用来标识一个窗体 15 要想返回文本框中输入的内容则可利用text属性进行编程 第三章 1用于从字符串左边截取字符的函数是Left( ),设a="Visual Basic",使b="Basic"的语句是b=Left(a,8,5)。 2下列符号中哪个是VB程序中合法的变量名:A ab7 B 7ab C If D a*bc (A)数字开头,关键字,* 3X是小于100的非负数,用VB表达式表达正确的是0<=X and X<100 4设有如下变量声明Dim TestDate As Date 为变量TestDate正确赋值的表达方式是 TextDate=#1/1/200 2# 5表达式4 + 5 \ 6 * 7 / 8 Mod 9的值是5,设a=3,b=5,则表达式(a>b)Or(b>0)值为真。5/5.25 为1 如果除数与被除数不是整数时,系统会自动对其进行取整运算,取整是有规律的:如果整数部分为偶数,大于 0.5的就进位,小于等于0.5的就直接把小数去掉,5舍6入;如果整数部分为奇数,4舍5入。例如: 5\2.5等价于5\2 5\2.6等价于5\3 6函数String(n,"str")的功能是返回由n个字符组成的字符串 7设有如下声明: Dim X As Integer 如果Sgn(X) 的值为-1,则X的值是小于0的数Sgn(3-5)=-1 Sgn(5-3)=1 8Integer类型的数据由2字节组成,Long类型的数据由4字节组成。 9已知X<Y,A>B,正确表示它们之间关系的式子是Sgn(Y-X)-Sgn(A-B)=-2 10在一个有①逻辑运算②算术运算及③关系运算混合在一起的表达式(无括号)中,其运算顺序为②③①
vb常用程序代码
1、求半径为r的圆的面积,要求用户从键盘输入半r。 程序代码: Private Sub Form_click() Const PI = 3.14 Dim r% Dim s! r = InputBox("请输入半径r的值:", "求圆的面积") s = PI * r * r Form1.FontSize = 16 Print "半径是" + Str(r) + "的圆的面积是" + Str(s) End Sub 2、输入三个整数,从小到大顺序输出。 程序代码: Private Sub Form_click() a = InputBox("a") b = InputBox("b") c = InputBox("c") Print "排序前:"; a, b, c If a > b Then t = a: a = b: b = t If a > c Then t = a: a = c: c = t If b > c Then t = b: b = c: c = t Print "排序后:"; a, b, c End Sub 3、输入三个整数,从大到小顺序输出。 程序代码: Private Sub Form_click() a = InputBox("a") b = InputBox("b") c = InputBox("c") Print "排序前:"; a, b, c If a VB编程常用代码 大一练习专用
A,B,C排序由大到小 Dim a As Single,b As Single,c As Single a=Val(Text1.Text) b=Val(Text2.Text) c=Val(Text3.Text) If b>a Then d=a:a=b:b=d End If If c>a Then d=a:a=c:c=d End If If c>b Then d=b:b=c:c=d End If Text4.Text=a Text5.Text=b Text6.Text=c End Sub Private Sub Command2_Click() Text1.Text="" Text2.Text="" Text3.Text="" Text4.Text="" Text5.Text="" Text6.Text="" End Sub 计算a+b Private Sub Command1_Click() Text4.Text=Val(Text2.Text)+Val(Text3.Text) Text1.Text="欢迎新同学" End Sub 清除
Private Sub Command2_Click() Text1.Text="" Text2.Text="" Text3.Text="" Text4.Text="" End Sub 奇偶数显示器 显示 Private Sub Command1_Click() Dim a As Integer a=Val(Text1.Text) If a/2=Int(a/2)Then Text2.Text="您输入的数是偶数" Else Text2.Text="您输入的数是奇数" End If End Sub 清除 Private Sub Command2_Click() Text1.Text="" Text2.Text="" End Sub 奇偶数判断 Dim a,b As Integer Dim result As Integer a=Val(InputBox("请输入一个整数","数的输入",300,400)) b=Val(InputBox("请输入一个整数","数的输入",300,400)) If a/2=Int(a/2)Then result=MsgBox("您输入的数:"&a&"是一个偶数",1,"判断结果") Form1.Print rusult Else m="您输入的数:"&a&"是一个奇数" result=MsgBox("您输入的数:"&a&"是一个奇数",1,"判断结果") Form1.Print result End If If b/2=Int(b/2)Then result=MsgBox("您输入的数:"&b&"是一个偶数",1,"判断结果") Form1.Print rusult Else result=MsgBox("您输入的数:"&b&"是一个奇数",1,"判断结果")
VB常用命令大全
常用命令 FontStrikeThru属性是逻辑型,决定对象上正文是否加一删除线。 FontItalic属性是逻辑型,决定对象上正文是否是斜体。 窗体的其它常用属性 2.Icon 控制图标属性:返回或设置窗体左上角显示或最小化时显示的图标。 注意:此属性必须在ControlBox属性设置为Ture才有效 3.ControlBox控制菜单框属性:设置Ture为有,如设置为False则无控件菜单,同时窗体也无最大化按钮和最小化按钮,即使MaxButton属性和MinButton属性设置为Ture。 5. BorderStyle:边框风格, 通过改变BorderStyle 属性,可以控制窗体如何调整大小。 0-None:无边框; 1-Fixed Single:单线边框,不可以改变窗口大小; 2-Sizable:双线边框,可以改变窗口大小; 3-Fixed Double:双线框架,不可以改变窗口大小。 4-Fixed Tool Window:窗体外观与工具条相似。有关闭按钮,不可以改变窗口大小。 5-Sizable Tool Window:窗体外观与工具条相似。有关闭按钮,可以改变窗口大小。 6. WindowsState属性 用来设置窗体的运行状态。 0-Normal:正常窗口状态,有窗口边界; 1-Minimized:最小化状态,以图标方式运行; 2-Maximized:最大化状态,无边框,充满整个屏幕。 7. AutoRedraw属性 该属性决定窗体被隐藏或被另一窗口覆盖之后,是否重新还原该窗体被隐藏或覆盖以前的画面。即是否重画如Circle、Line、Pset和Print等方法的输出。 当为True时,重新还原该窗体以前的画面。 当为False时,则不重画AutoRedraw属性。 4 Resize事件 无论是因为用户交互,还是通过代码调整窗体的大小,都会触发一个Resize事件。 5 Activate事件:当窗体由非活动窗体变为活动窗体,即当窗体得到焦点时触发该事件。窗体常用的方法有: 打印输出Print 移动Move 清除Cls 显示Show 隐藏Hide等方法。 方法的使用的形式: [对象.]方法[参数] 1.Print方法 形式: [窗体名.]Print[{Spc(n)|Tab(n)}][表达式列表][;|,] 作用: 在对象上输出信息 Spc(n)函数:插入n个空格,允许重复使用。 Tab(n)函数:从窗体第n列开始输出,允许重复使用。 ;(分号):光标定位上一个显示的字符后(紧凑格式)。 ,(逗号):光标定位在下一个打印区的开始位置处。每个打印区占14列(标准格式)。无;,换行。
VB6.0课后题及常见操作题代码
第四章 1、从键盘上输入4个数,编写程序,计算并输出这4个数的和及平均值。通过inputbox 函数输入数据,在窗体上显示和及平均值。 Dim a as single For i=1 to 4 a=inputbox(“请输入一个数:”,“数据输入”) sum=sum+a n=n+1 avg=sum/n next i print “和是:”,sum print “平均值是:”,avg 2、编写程序,要求用户输入下列信息:姓名、年龄、通信地址、邮政编码、电话,然后将输入的数据用适当的格式在窗体上显示出来。 Dim a as variant Fontsize=20 a=inputbox(“请输入姓名:”,“数据输入”) print “姓名:”;a a=inputbox(“请输入年龄:”,“数据输入”) print “年龄:”;a a=inputbox(“请输入通信地址:”,“数据输入”) print “通信地址:”;a a=inputbox(“请输入邮政编码:”,“数据输入”) print “邮政编码:”;a a=inputbox(“请输入电话:”,“数据输入”) print “电话:”;a 3.a=5,b=2.5,c=7.8,编程序计算: y=(πab)/(a+bc) 程序: Dim a as single,b as single,c as single a=5 b=2.5 c=7.8 pi=3.14 y=(pi*a*b)/(a+b*c) print “结果是:”;y 4、输入以秒为单位表示的时间,编写程序,将其转换为几日几时几秒。 Dim a as long,d as integer ,h as integer,s as integer a=inputbox(“请输入秒数:”,“数据输入”) d=int(a/86400) h=int((a-d*86400)/3600) s=a-d*86400-h*3600 print d;“日”;h;“时”;s;“秒” 5、自由落体位移公式为:s=gt2/2+v0t
VB代码大全
隐藏form1: form1.hide 显示form1: form1.show --------------------------------------------------------------------------------------------- 退出程序时,弹出窗口提示是否要退出: Private Sub Form_Unload(Cancel As Integer) Dim iAnswer As Integer iAnswer = MsgBox("真要退出吗?", vbYesNo) If iAnswer = vbNo Then Cancel = True Else End End If End Sub ---------------------------------------------------------------------------------------------- 只能用任务管理器关闭程序的代码: Private Sub From_Unload(Cancel As Integer) Cancel = true End Sub ------------------------------------------------------------------------------------------------ 点击command1打开33IQ网: Dim strURL Private Sub Command1_Click() strURL = "错误!超链接引用无效。 Shell "explorer.exe " & strURL, 1 End Sub ------------------------------------------------------------------------------------------------ 运行c:\1.exe shell "c:\1.exe" 执行c:\1.bat shell "c:\1.bat" 注:只适用于大部分exe和全部bat。
vb经典题目及答案
1、在考生文件夹下有工程文件wy7.vbp及窗体文件wy7.frm,该程序是不完整的,请在有?号的地方填入正确的程序代码,然后删除?及所有注释符号(即'号),但不能修改其它部分。修改后的程序文件都保存,存盘时不得修改文件夹和文件名。 本题描述如下: 在窗体上有一个名为Text1的文本框,有三个命令按钮,名称分别是C1、C2和C3,标题分别是"读入"、"加密"和"存盘"。要求程序运行后,点击"读入"按钮,将文本文件in7.txt(该文件在考生文件夹下)中的文本信息读入文本框Text1中;点击"加密"按钮将Text1中的英文字母加密转换,并将转换后的结果显示到Text1中。转换方式为转换成该字母对应字母表中后两个位置的字母。例如,转换前的字母是"a",则转换后的是"c",转换前是"E",转换后是"G";点击"存盘"按钮,则将转换后的文本框中的文本保存到out7.txt文件中(该文件保存到考生文件夹下)。 Private Sub C1_Click() Dim strinfo As String Open "in7.txt" For Input As 1 Input #1, strinfo Close #1 Text1.Text = strinfo End Sub Private Sub C2_Click() Dim strchange As String Dim i As Integer For i = 1 To Len(Text1.Text) strchange = strchange + Chr(Asc(Mid(Text1.Text, i, 1)) + 2) Next Text1.Text = strchange End Sub Private Sub C3_Click() Open "out7.txt" For Output As 1 Print #1, Text1.Text Close #1 End Sub 2、(1)在考生文件夹下有工程文件wy5.vbp及窗体文件wy5.frm,该程序是不完整的,请在有?号的地方填入正确容,然后删除?及所有注释符(即'号),但不能修改其它部分。存盘时不得改变文件名和文件夹。本题描述如下: 在窗口中有一个RichText文本框控件(名称为rtx1)和一个文本框控件(名称为Text1),两个命令按钮,
VB编程常考的五道题型
1.冒泡排序法 Private Sub Form_Click() Dim A(1 To 10) As Integer Dim i As Integer, t As Integer For i = 1 To 10 A(i) = Int(Rnd * 100) + 1 Print A(i) Next i Print For i = 1 To 9 For j = 1 To 10 - i If A(j) > A(j + 1) Then t = A(j): A(j) = A(j + 1): A(j + 1) = t End If Next j Next i For i = 1 To 10 Print A(i) Next i Print End Sub 2.判断一个数是否是素数 Private Sub Form_Click() Dim n, i# n = InputBox("n=") i = 2 While n Mod i <> 0 i = i + 1 Wend If i = n Then Print n & "是素数" Else Print n & "不是素数" End If End Sub 3. 产生100个100以内的随机数,将他们从大到小排序后输出 Private Sub Command1_Click() For i = 1 To 100 Dim a(1 To 100) As Integer a(i) = Int(Rnd * 100) + 1 Print a(i); If i Mod 10 = 0 Then Print Next Print For i = 1 To 100 - 1 For j = 1 To 99 If a(j) > a(j + 1) Then t = a(j) a(j) = a(j + 1) a(j + 1) = t End If Next j Next i For i = 1 To 100 Print a(i); If i Mod 10 = 0 Then Print Next i End Sub 4.九九乘法表(上三角) Private Sub Command1_Click() Dim i As Integer, j As Integer For i = 1 To 9 For j = i To 9 Print Tab(j * 12 - 12); i; "x"; j; "="; i * j; Next j Print Next i End Sub 5.杨辉三角(等腰形) Private Sub Command1_Click() Dim a(11, 11) For i = 1 To 6 For j = 1 To i a(1, 1) = 1 a(2, 1) = 1 a(2, 2) = 1 If j > 1 And j < i Then a(i, j) = a(i - 1, j - 1) + a(i - 1, j) ElseIf j = 1 Or j = i Then a(i, j) = 1 End If Print Tab((j - 1) * 6 + 40 - 3 * i); a(i, j); Next j Print Next i End Sub
vba常用代码大全
前言 我们平时在工作表单元格的公式中常常使用函数,Excel自带的常用的函数多达300多个,功能强大,丰富多彩,但是在VBA中不能直接应用,必须在函数名前面加上对象,比如:Application.WorksheetFunction.Sum(arg1,arg2,arg3)。 而能在VBA中直接应用的函数也有几十个,下面将逐一详细介绍常用的40个VBA函数,以供大家学习参考。 第1.1例 ASC函数 一、题目: 要求编写一段代码,运行后得到字符串”Excel”的首字母和”e”的ASCII值。 二、代码: Sub 示例_1_01() Dim myNum1%, myNum2% myNum1 = Asc("Excel") '返回69 myNum2 = Asc("e") '返回101 [a1] = "myNum1= ": [b1] = myNum1 [a2] = "myNum2= ": [b2] = myNum2 End Sub 三、代码详解 1、Sub 示例_1_01():宏程序的开始语句。 2、Dim myNum1%, myNum2%:变量myNum1和myNum2声明为整型变量。 也可以写为 Dim myNum1 As Integer 。Integer 变量存储为 16位(2 个字节)的数值形式,其范围为 -32,768 到 32,767 之间。Integer 的类型声明字符是百分比符 号 (%)。
3、myNum1 = Asc("Excel"):把Asc函数的值赋给变量myNum1。 Asc函数返回一个 Integer,代表字符串中首字母的字符的ASCII代码。 语法 Asc(string) 必要的 string(字符串)参数可以是任何有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。 4、myNum2 = Asc("e"):把Asc函数的值赋给变量myNum2。这里返回小写字母e 的ASCII代码101。 5、[a1] = "myNum1= ": [b1] = myNum1:把字符串“myNum1= “赋给A1单元格,把变量myNum1的值赋给B1单元格。 6、[a2] = "myNum2= ": [b2] = myNum2:把字符串“myNum2= “赋给A2单元格,把变量myNum2的值赋给B2单元格。 7、End Sub:程序的结束语句,和“Sub示例_1_01()”相对应。 第1.2例 Chr函数 一、题目"": 要求编写一段代码,运用Chr函数将ASCII值转换为对应的字符。 二、代码: Sub 示例_1_02() Dim myChar1$, myChar2$ myChar1 = Chr(69) ' 返回 E。 myChar2 = Chr(101) ' 返回 e。 [a1] = "myChar1= ": [b1] = myChar1 [a2] = "myChar2= ": [b2] = myChar2