vba编程题库
- 格式:docx
- 大小:32.73 KB
- 文档页数:27
vba编程题库
1、编一个VBA程序,将Word 当前文档中光标右边的大写字母转换为小写字母。
Selection.MoveRight Unit:=wdCharacter, Count:=1,
Extend:=wdExtend
n= Asc(Selection.Text) If n >= 65 And n <= 90 Then
Selection.TypeText Text:=Chr(n + 32)
Else
Selection.MoveRight
Unit:=wdCharacter, Count:=1 End If
2、编一个VBA程序,在Word当前文档中按顺序输入26个英文字母。
For i = Asc("a") To Asc("z") Selection.TypeTextText:=Chr
(i) Next
3、新建一个窗体,放置两个按钮和一个文字框控件。按钮的标题分别定义为“显示”和“清除”。单击“显示”按钮,在文字框中显示一行文字,单击“清除”按钮,清除文字框中的文字。
①进入VBA编辑环境,打开“工程资源管理器”窗口,插入一个用户窗体。
②在窗体上放置两个命令按钮和一个文字框。
③右击命令按钮,选“属性”,设置Caption属性值为“显示”、“清除”。
④双击“显示”命令按钮,输入如下代码:
Me.TextBox1.SetFocus
Me.TextBox1.Text = "你好!欢迎学习VBA"
⑤双击“清除”命令按钮,编写代码如下:
Me.TextBox1.Text = ""
⑥双击用户窗体,为其Activate事件编写如下代码:
Me.Caption = "欢迎! 4、假设某文件夹有20个属
性相同、命名有规律(比如:
pic01.gif、pic02.gif、……、
pic20.gif)的图片文件,现在
要依次放入PowerPoint幻灯片
中,并调整为合适的格式。,①
录制宏——输入标题、插入图
形、调整格式。
②加工录制的程序。设置路
径、循环、使用变量。
③运行程序。
5、编写一个自定义函数,根据
“工资及津贴”数额求出应缴纳
党费的比例。
Function df(x)
Select Case x
Case Is <= 400
y = 0.005
Case Is <= 800
y = 0.01
Case Is <= 1200
y = 0.015
Case Is <= 1500
y = 0.02
Case Else
y = 0.03
End Select
df = y
End Function
6、用递归方法编写一个函数, 求n的阶乘。
Function fact(n)
If n = 1 Then
fact = 1 Else
fact = n * fact(n - 1)
End If End Function
7、要想在Excel工作簿的任意
一个单元格中输入数字“1”后,
自动替换为符号“√”,
建立Excel工作簿,进入VB
编辑环境,对ThisWorkbook的
SheetChange事件编写如下程
序:
Private Sub
Workbook_SheetChange(ByVal
Sh As Object, ByVal Target As
Range)
If Target.Value = "1" Then
Target.Value = "√"
End Sub
8、在Word中,要想用快捷
键执行宏的方式快速将某一字
符变为上角标录制新宏,设置快
捷键,进行宏录制。选中字符,
在“字体”窗口的“效果”栏中
选中“上标”,停止录制宏。光
标定在字符左边,按快捷键,即
可转换为上角标。
9、假设Excel当前工作表的A
列是应参加会议人员名单,要求 当每个与会人员报道时,在其姓
名右边的单元格(B列)单击鼠
标,自动填入当前日期和时间。
建立Excel工作簿,进入
VBA编辑环境,对WorkSheet的
SelectionChange事件编写如:
PrivateSubWorksheet_Selecti
onChange(ByVal Target As
Range)
col_s = Target.Column
If col_s = "B" Then
Target.Value=Format(Now,"yy
yy-mm-dd hh:mm:ss")
End If
End Sub
10、假设在Excel工作表中已经
建立一个“XX高校教师信息表”。
进入VBA编辑环境,在当前工程
中插入一个模块,建立如下自定
义函数:Function age(id As
String)id = Trim(id)
If Len(id) = 18 Then
age = Year(Date) -
Val(Mid(id, 7, 4))
Elseage = Year(Date) -
Val("19" + Mid(id, 7, 2))
End If
在“年龄”列第一个单元格输入计算公式“=age(X)”,其中X是对应的身份证号单元格地址,并将公式填充到该列的其他单元格。
11、编写程序,将Excel任意选定的两个单元格的内容互换Sub ChangV()
v = ActiveCell.Value
For Each a In Selection Ifa.Address<>ActiveCell.Add ress
Then
ActiveCell.Value = a.Value
a.Value = v
End If
Next
End Sub
12、编写程序,在打开Excel 时提示密码输入,如果错误则使用Application.Quit退出Excel。
Sub auto_Open()
If Application.InputBox("请输入密码: ") = 123 Then Exit Sub
Else
Application.Quit End If End Sub
13、编写一段程序,求某门课程的平均分。要求用InputBox函数输入学生的人数和每个人的分数,用MsgBox语句输出平均分。Sub
pjf()
rs = InputBox("输入学生的人数:") zf = 0
For k = 1 To rs
f = InputBox("输入考试成绩" & k)
zf=zf+f Next MsgBox (rs & "位学生的平均分是:" & zf / rs)
End Sub
14、设计一个判断三角形是否为直角三角形的子程序,它带有三个整型参数a、b和c分别表示三角形的三条边。
Sub cag(a As Integer, b As
Integer, c As Integer)
If a ^ 2 + b ^ 2 = c ^ 2 Or
a ^ 2 + c ^ 2 =
b ^ 2 Or b ^ 2 + c ^ 2 = a ^ 2 Then
MsgBox "是直角三角形"
Else
Msgbox "不是直角三角形"
End If
End Sub
15、要想在Excel工作簿打
开时建立一个名为“功能”的工
具栏,在工具栏上添加一个按钮
(按钮的capition任意,要执
行的过程名任意),并且让工具
栏可见。请写出工作簿Open事
件的子程序。
Private Sub Workbook_Open()
Settbar=
/doc/ca14570465.html,mandBars.Add
(Name:="功能")
Setbutt=tbar.Controls.Add(T
ype:=msoControlButton)
With butt
.Caption = "取字模"
.Style= msoButtonCaption
.OnAction = "qzm"
End With
tbar.Visible = TrueEnd Sub
16、编写一个子程序,使用
工作表函数求出“Sheet1”工作
表A1:D10区域中的最小值。
Sub aa()
Dim myR As Range SetmyR=Worksheets("Sheet1")
.Range("A1:D10")
b=Application.WorksheetFunc
tion.Min(myR)
MsgBox b
End Sub
17、编写一个子程序,将
Excel当前工作表“A1:H8”区域
的每行填涂一种不同颜色。
Sub kk()
For i = 1 To 8
For j = Asc("A") To Asc("H")
c = Chr(j) & i
Range(c).Interior.ColorInde
x = i
Next j
Next i
End Sub
18、假设Excel当前工作表
是某个班级学生成绩单(50人),
第一列是姓名,第二、三、四列
是三科成绩,试编一段VBA程序,
通过输入框输入姓名后,查询并
显示该学生的三科成绩和总成
绩。xm = InputBox("请输入姓
名:")
For I = 1 To 50
If Range("A" & I) = xm Then
cj1 = Range("B" & I)
cj2 = Range("C" & I)