VBA

  • 格式:doc
  • 大小:341.50 KB
  • 文档页数:29

- 1 - 一、简答题(每题3分,共57分,共19题) 1. Word支持文档事件、应用程序事件以及模板事件。请写出3种文档事件。 2. 什么是活动单元格区域?它是否与单元格选取范围相同? 3. 请比较Range与Cells对象在Excel中的差异。 4. 在Office应用程序之间交换信息,实现在一个程序中使用另一个程序中的内容,可以使用哪些Visual Basic函数以及关键字为应用程序建立和返回一个引用。 5. 宏录制可以实现很多功能,但它也有其局限性,请列举宏录制无法完成的工作。 6. 在VBA中,要访问一个对象,必须清楚该对象在对象体系的层次结构中处于什么位置,然后用对象访问运算符“.”,从最外层依次取子对象,直到要访问的对象为止。若要在Excel中访问Products.xls工作簿中Sheet1工作表的A1单元格,请写出完整的表达形式。 7. 如果希望在多个过程中使用同一变量的值,应该在何处、用什么语句定义该变量? 8. 在Word中,要想用快捷键执行宏的方式快速将某一字符变为上角标,如何实现?写出主要步骤。 9. 在Excel中,模块与工作簿是什么关系?当保存工作簿时,对模块所做的修改是否也同时保存下来? 10. 为什么不应该将所有变量定义为Variant数据类型? 11. 假设Excel当前工作表的A列有5000行数据,但其中有一些空白行。现在要用VBA程序删除其中的空白行,请写出程序设计步骤。 12. 可以用哪些方法执行宏? 13. 对以下代码进行优化,尽量减少使用对象引用: Workbooks(1).Sheets(1).Range("A1").Value = 100 Workbooks(1).Sheets(1).Range("A2").Value = 200 14. 如何用宏和快捷键将Word中当前光标位置右边的字符改为全角? 15. 化简下面的程序段: Rows(k).Select Selection.Interior.ColorIndex = 34 16. 化简下面的程序段: Rows("5:200").Select '选中5-200行 Selection.ClearContents '清除所选行的内容 Rows(1).Select '选择第一行 Selection.Delete Shift:=xlUp '删除选中的行 17. 化简下面的程序段: Sub test() '求出当前行号 h = Mid(ActiveCell.Address, 4) '以下三行语句的功能是设置单元格的背景颜色 dyg = "A" & Trim(Str(h)) Range(dyg).Select Selection.Interior.ColorIndex = 43 End Sub 18. 化简下面的程序段: dyg = "A10" Range(dyg).Select ActiveCell.FormulaR1C1 = "" ‘清除内容 Selection.Interior.ColorIndex = 2 ‘清除颜色 19. 化简下面的程序段: straddr = Target.Address '当前单元格地址 c = Mid(straddr, 2, 1) r = Mid(straddr, 4) 二、填空题(每题3分,共168分,共56题) 1. VBA和VB的主要区别: VB用于创建标准的应用程序,VBA是使已有的应用程序(Office)__________。 VB具有自己的开发环境,VBA________已有的应用程序(Office)。 VB开发出的应用程序可以是可执行文件(*.EXE),VBA开发的程序必须_________它的“父”应用程序(Office)。 2. VBA编程中涉及的对象有_______、_______、_________等。 3. VBA支持的循环结构有________、________和________等。 4. EXCEL的“窗体”工具栏控件有标签、分组框、______、______、选项按钮、_______、组合框、滚动条、直滚动条、微调控件等。 5. VBA中对象或控件的“事件”有__________、close、__________、__________、modified、activate、closequery、resize、timer、getfocus、lostfocus等。 6. 字符串连接符有“+”和“&”。 给出下面运算后的值。 MyStr = "Check " & 123 ' 返回_______。 MyNumber = "34" + 6 ' 返回_______。 - 2 -

MyNumber = "34" + "6" ' 返回_______。 7. 发布用VBA开发的软件,需要发布含有__________的文档,目标机器有_________环境,并且宏的安全级别设置为__________。 8. 宏的安全级别中,“非常高”只允许运行安装在受信任位置的宏。_______,对于无签名的宏,提示用户启用或禁用宏。________,只允许运行可靠来源签署的宏。_______,不考虑宏的来源或证书状态,不进行提示或签名验证,宏被自动启用。 9. 以Office作为开发平台,可以直接利用Office本身功能,不必专门开发_______、________、_______等模块。 10. 变量在使用前最好进行声明,也就是定义变量的数据类型,这样可以提高程序的可读性和节省存储空间。 如果变量不经声明直接使用在语法上也是允许的,系统会自动给变量定义为 类型。 通常我们使用Dim语句来声明变量。 公共变量可用于工程中的任何过程,我们用 语句来声明公用变量; 私有变量只可用于同一模块中的过程,我们用 语句来声明私有变量; 语句声明的变量在调用时仍保留它原先的值。 11. Like 运算符做字符串的方式比较。如果字符串1与字符串2匹配,则返回 True,否则返回 False。给出下面比较的值。 MyCheck = "aBBBa" Like "a*a" ' 返回_______。 MyCheck = "F" Like "[!A-Z]" ' 返回_______。 MyCheck = "a2a" Like "a#a" ' 返回_______。 12. 在VBA环境中建立和运行一个显示消息框的过程,可按以下步骤进行: ①选择__________________________菜单,打开VBA编辑器窗口。 ②在工具栏上单击______________________按钮,打开“工程资源管理器”窗口。 ③插入模块、添加过程、在过程中下面代码段: Public Sub 显示消息框() Msgbox "这是我的第一个过程" End Sub ④使用“运行”菜单的_________________项(或F5)运行程序。 13. 试说明下面语句的作用: Range("A1:B5").ClearContents ‘______________________________ Range("A:B").ClearFormats ‘______________________________ Range("1:1,3:3,8:8").Clear ‘______________________________ 14. 利用Office的宏录制可以实现部分程序设计_________,提高软件开发的________,还可以______________。 15. 对VBA程序的代码进行保护,防止非法读取或修改。可用下面方法: ①进入VBA编辑环境,打开_____________________窗口。 ②右击工程(VBAProject),在弹出菜单中选“VBAProject属性”对话框。 ③在“VBAProject 工程属性”对话框的_________卡中,选中“查看时锁定工程”复选框,然后输入并确认_____________________,最后单击“确定”按钮,保存当前工作簿并退出。 16. VBA中用于获取当前日期和时间的函数中,_____函数可以同时返回日期和时间,_____函数只返回当前日期,不显示当前时间,_____函数可以返回当前时间,但不包括当前的日期。 17. 执行宏: 选择_______________菜单,在________对话框的选择列表中,选择需要的宏,单击__________按钮。 18. 录制一个宏,如下步骤: ①在_____________菜单中选“录制新宏”项。 ②在“录制新宏”对话框中输入宏名,单击“确定”按钮。此时,屏幕上显示出___________工具栏。 ③进行需要的操作。 ④单击__________工具栏按钮,结束宏录制过程。 19. 调试VBA程序,可以用_________、__________、_________等方法。 20. 请对下面子程序进行注释。 Sub hzj() For m = 176 To 247 For n = 161 To 254 nm = "&H" & Hex(m) & Hex(n) ‘______________ Selection.TypeText Text:=Chr(nm) ‘______________ - 3 -

Next Next End Sub 该程序的功能是:____________ 21. 对象有________性、________性、________性。 22. 编辑宏: 选择______________菜单,在________对话框的选择列表中,选择需要的宏,单击________按钮。 23. 单元格内的资料可以分为 、 、 三种。 24. 在Excel中自定义一个工具栏,并将宏指定给工具栏中的一个按钮: ①选择____________菜单,显示“自定义”对话框。 ②在“命令”卡中,从“类别”列表框中选择“宏”,从“命令”列表框中将“自定义按钮”______到工具栏上。 ③右击该按钮,选择_________,显示“指定宏”对话框。 ④选择需要的宏名并单击“确定”按钮。 ⑤单击“关闭”按钮,关闭“自定义”对话框。 25. 定义用户窗体: ①选择“工具|宏|Visual Basic编辑器”菜单或用_________快捷键,打开VBA编辑器。 ②在VBA编辑器中选择工具栏上的____________按钮或者在“插入”菜单选__________项。 26. 在VBA中,当转换其他的数据类型为Boolean值时,___会转成False,而其他的值则变成True。当转换Boolean为其他的数据类型时,False成为____,而True成为____。 27. 在 Microsoft Office 中,还可给任意命令栏添加________、________和________。这三种类型的控件在VBA中均可由 CommandBarComboBox 对象代表。 28. 可在Range方法中以 A1 样式的记号引用单元格和单元格区域。试说明下面语句引用的区域: Range("A1:B5") ‘______________________________ Range("A:C") ‘______________________________ Range("1:1,3:3,8:8") ‘______________________________ 29. 用Rows或Columns属性可以处理整行或整列。试说明下面语句的含义: Rows(1) ‘______________________________ Columns("A") ‘______________________________ Columns ‘______________________________ 30. 希望代码在工作簿打开的时候运行,可以选择工作簿Workbook的____________事件。希望代码在工作簿关闭之前运行,可以将代码写在Workbook的__________事件里。Workbook的__________事件在工作簿的当前工作表改变时产生。 31. 在 Microsoft Office 中,________、________和________都可由命令栏(CommandBar)对象进行编程控制。 32. 引用工作表中第1行第1列单元格时可以用Range(“A1”),也可以用__________;引用第一行可用Range(“1:1”),也可用____________;引用第一列时可用Range(“A:A”),也可以用_______________。 33. 写出以下Range属性的含义: Range(“A1:B5”)_____________,Range(“A:A”)__________,Range(“1:1,3:3,8:8”)__________。 34. 将十进制数变换为十六进制数的函数是________,测量一个字符串的长度的函数是_______,将字符串前后的空格都去掉的函数是________。 35. ________是字符串连接运算符,________不仅是算术运算符,也可用来做字符串的串接操作。只有当两个操作数都是________时,“+”和“&”的运算结果才一致。 36. 为了允许Excel使用“宏”,需要在Excel中选择“工具”| “____________”|“___________”菜单项,设置安全级为“ _____________”。 37. 在VBA中添加一个用户窗体Userform1,让该窗体显示的语句是_______________,让该用户窗体隐藏的语句________________,卸载该用户窗体的语句是_________________。 38. VBA程序常用的运行方式有三种,分别是__________________,___________________和________________。 39. 设置宏的安全性步骤为:选择_______菜单下_______|______选项,在“安全性”对话框中设置。 40. 通用模块的建立方法是:在当前工程______________中,选择“__________”菜单的“____________”项,插入一个通用模块。 41. 在VBA代码运行时,如果要人工中断执行可以用以下几种方法: ①选择__________菜单中的“中断”命令;②用_________快捷键;③使用工具栏中的_________按钮。 42. 运行程序的快捷键是_____, 中断程序执行的快捷键是___________,逐语句执