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)