APP下载

一例将宏的录制与修改相结合的VBA操作入门教学设计

2014-07-28孙俊峰

电脑知识与技术 2014年16期
关键词:教学

孙俊峰

摘要:通过VBA的学习,非计算机专业特别是文科专业背景的同学不仅能初步掌握Office的高级应用技能,还能了解VB语言编程的原理和方法,并通过应用软件平台实现对算法、程序、过程、对象等抽象概念的体验和理解。以常见的MS Word设计了一堂VBA教学实操的入门课程,较好的避免了由于对象的抽象性和操作过程的复杂导致学生产生畏难情绪而降低学习效率,为进一步的VBA学习打下了良好的基础。

关键词:VBA;MS Word;教学

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)16-3854-04

Abstract: Through VBA learning, non computer professional especially in liberal arts professional background students not only can grasp the advanced application of Office skills, but also can understand the principle and method of VB language programming. The experience and understanding of the abstract concepts such as algorithm, procedure, process, object, etc., can be realized through the application software platform. The MS Word was designed as a VBA teaching practice course, avoiding the complex process of abstraction and object, which would cause students to have fear of difficulty and reduce the efficiency of study, leading a good foundation for further study in VBA.

Key words: VBA; OA; Teaching

1 概述

MS Office(或WPS Office)是电子文秘、办公自动化等计算机应用培训课程以及大学计算机公共基础课程教学常用软件,它们不仅能方便快捷的处理字表和图片对象,而且能通过对编辑过程的录制和VBA编程来实现自动化操作[1]。通过VBA的学习,非计算机专业特别是文科专业背景的同学不仅能初步掌握Office的高级应用技能,还能了解VB语言编程的原理和方法,通过在日常学习和未来工作中常见和熟悉的应用软件平台实现对算法、程序、代码、过程、对象、可视化等抽象概念的体验和理解,进而增强学习和应用计算机知识与技能的信心,部分优秀的同学还可以通过进一步的学习,掌握基于Office的实用MIS(Management Information System)开发[2],极大的提高工作效率。因此,成功的将VBA学习及实操练习引入计算机相关课程教学,对于非计算机专业特别是文科专业背景的同学来说具有一定的实践意义。

2 VBA与宏

VBA的全称为Visual Basic for Application,其含义是为应用程序服务的Visual Basic,在微软开发的应用软件中一般以“寄生”的形式包含在应用程序中,与VB不同的是它不能生成独立的可执行文件,但允许用户对应用程序进行二次开发并扩展其功能,同时由于采用了VB语言的可视化平台以及事件驱动方式,使其开发过程非常直观而相对容易理解和掌握。在Office的学习中,MS Word(或WPS文字)由于其全程可视化、操作过程所见即所得、学习和工作中使用频率高等原因,往往作为Office教学和培训的入门级课程,学生也由于经常使用而普遍对其中的字符、段落、页面、视图、文本框、图片、域等对象和概念没有陌生感,有着一定程度的理解和掌握。因此MS Word(或WPS文字)可以作为VBA教学的入门平台加以利用,通过录制用户操作过程生成宏代码和基于VB语言的编程来实现Word的自动化操作[3]。比如需要反复执行的一系列编辑步骤,可以把操作过程录制为程序,即“宏”,通过运行该宏就能重新执行其中的操作。除此之外,VBA在Word的高级应用还可以实现文档管理程序的开发和格式的转换[4]。

3 基本思路

文字处理平台作为大学计算机公共课程的重要组成部分,一般都在计算机概论和操作系统概论环节之后学习,或安排在电子文秘、企业管理信息系统、地理信息系统、信息技术、会计电算化等专业基础课程的实操环节。虽然学时有限,但由于学生在校学习期间和社会实践中需要大量使用文字处理平台,导致其对于诸如MS Word、WPS文字等软件的使用往往相对熟悉甚至得心应手。课堂实践也证明,熟悉的Office操作界面让学生普遍能够消除畏难情绪并认真的投入相关内容的学习过程中。

比如Word操作过程中录制的宏代码,可以用VBA编辑器加以编写和修改并在其他过程中调用,因此宏代码与普通程序过程没有本质区别,这就为非计算机专业学生特别是文科专业背景的同学直观的理解程序和代码提供了较好的学习和实践对象,并能与其学习和工作需求紧密结合[5]。因此作为入门练习,可以通过在Word的基础培训教学中,利用VBA与宏代码的学习和实操,让学生初步了解计算机高级语言与软件运行之间的内在关系,并能进一步自觉的学习和掌握那些在未来工作中所需的编程知识。以MS Word为例,可以在学习计算机原理及文字处理功能的的基础上,设计一到两个学时理论与实操相结合的入门课程以认识宏并初步体验Word VBA编辑器的操作,也可以在电子文秘、管理信息系统等课程教学中安排宏录制、修改、运行、调试等过程演示和操作,让学生初步了解宏录制的操作过程及其与VBA之间的关系。练习设计应从简单的操作开始,以针对性和实用性强的练习结束,加上讲解和指导的时间,将整个练习的时间控制在45~90min之间。endprint

4 课程设计

4.1 页面设置练习

Word的页面视图是普通用户最为熟悉的视图,因为其界面形态与打印机生成的纸质文稿几乎完全一致,因此Word排版中的页面设置操作由于其直观性而容易掌握,比如页边距、装订线的有无及其位置、纸张的尺寸、有无行号等属性的取值,都可以通过可视化的交互式操作来实现。因此,宏的录制操作入门可以优先考虑通过对页面设置操作过程的录制来完成,可以引导学生将录制得到的代码同交互式操作过程加以比较,找到与自己的操作相对应的宏代码,然后通过在新文档中运行宏代码再次执行一次操作,再通过识别一些冗余代码并加以删除得到相同操作结果,或通过修改输入参数而修改操作结果。通过这一练习,学生可以对宏的录制过程获得较为深刻直观的印象并初步领悟到计算机代码与可视化操作平台之间的关系,这时可以结合理论复习诸如“过程”、“结构化程序”、“面向对象技术”、“可视化”、“语句”、“缺省”等概念,由于获得了直观的感受,学生大都能够理解上述概念并掌握宏录制的基本方法,通过删除和修改代码并能正确运行后,更能增强继续学习的信心。以Word 2003为例,录制宏代码及其修改结果如表1所示,在修改练习中可以指导学生插入一个MsgBox提示框,增强可视化并介绍“对象”及“交互式”等概念。

4.2 查找替换练习

通过4.1所述的练习,学生能初步了解程序、对象、可视化和交互式等相关概念,在接下来的练习中有必要与日常的文档编辑过程相结合,引入一些实用性较强的操作过程并仍然通过宏的录制和修改来实现操作。在日常文档处理和编辑中,经常需要对来自网页、PDF文档、电子表格等来源的文字部分进行拷贝和粘贴操作,在完成粘贴后由于原文特殊的格式或不规范编辑,会存在大量的多余空格、空白段落及手动换行符等内容,可以通过Word 2003的查找替换功能将这些多余空格及符号删除,操作过程录制为宏,然后指导学生逐行理解代码的含义并加以修改,录制和修改结果如表2所示。

需要指出的是,由于Word2003在录制无格式粘贴操作的时候,有一点小缺陷(该缺陷在Word2010版已经得到纠正),将无格式文本粘贴录制为Selection.PasteAndFormat (wdPasteDefault),需要指导学生在VBA编辑器中修改为Selection.PasteAndFormat (wdFormatPlainText),才能正常运行。从ActiveWindow.ActivePane.VerticalPercentScrolled = 0到Selection.Find.Execute Replace:=wdReplaceAll都是通过对交互式操作的录制得到的代码,学生可以结合查找替换交互式操作界面很好的理解每一行代码的含义。通过与查找替换操作过程比较,可以发现查找替换交互式操作的全过程在代码中得到了完整的体现,为学生提供了直观的对照,并能使学生理解查找替换交互式操作过程中Word执行了将查找和替换内容清除格式的命令。“搜索选项”中诸如“区分大小写”(MatchCase)、“全字匹配”(MatchWholeWord)、“区分全/半角”(MatchByte)、“使用通配符”(MatchWildcards)、“同音”(MatchSoundsLike)、“查找单词的所有形式”(MatchAllWordForms)等选项的代码都能在程序语句中非常清晰的展现。

对于Wrap = wdFindContinue的含义的解释说明,可以帮助学生理解批处理和循环执行的含义。除此之外,如Application.ScreenUpdating = False、Application.ScreenUpdating = True语句的含义(关闭屏幕刷新和开启屏幕刷新)可以让学生对修改前后的代码进行比较,并解释其作用以及Word中“对象”、“属性”及其“取值”的含义等。粘贴完成前后,可以让垂直滚动条返回第一页的操作即ActiveWindow.ActivePane.VerticalPercentScrolled = 0,这一操作以ActivePane函数来完成,而且由于视觉效果明显而容易理解,在后续的操作练习中可以直接加以利用。在讲解中应该将ActivePane函数与Len函数加以比较,并以实例来进一步说明什么是函数,直接调用函数有什么好处。可以将Len函数与录制得到的宏代码相比较,在宏代码的录制结果中,Word将反复执行的查找替换过程记录为多行“Selection.Find.Execute Replace:=wdReplaceAll”,也就是每按下一次“全部替换”按钮,就执行一次替换操作,删除一个空白段落,这样的操作虽然简单易懂,但由于缺乏灵活性难以移植到其它文档中,而通过Len函数就能更好的满足不同的文档的需求,如果学生有一定的基础,还可以简要介绍With语句、Dim语句、For each…Next语句的功能以及变量和对象的含义,并突出VBA可以将变量申明为应用程序中特殊对象的特性。

总的说来,通过同练习4.1比较,可以通过讲解和引导让学生进一步理解以下知识:宏的本质就是程序,一个完整的程序开头和结尾是怎样构成的,结构化的编程有什么特点,程序中的语句和代码是按照什么顺序执行的,哪些语句能省略,计算机高级语言从语法上来讲有些什么特点等,教师可以以此为由强调交互式操作和可视化操作仍然是以程序和代码为基础的,要想在日常学习和工作中更好的掌握和利用诸如Word一类的应用软件,有必要在掌握交互式操作的基础上适当学习和掌握VBA编程的知识和技能。

4.3作业

结合两次练习,可以根据具体学时的安排布置课堂或课后作业,建议以练习4.2为基础,让学生在通过对“段落首行缩进2字符”的操作过程进行录制,并把录制得到的代码删除默认设置相关代码后加入“无格式粘贴中文”的过程中,经调试能正常运行并发挥作用,还可以要求在操作结尾添加一个MsgBox,提示完成操作。MS Word2003代码如表3所示。endprint

5 结束语

VBA由于功能强大,在办公自动化操作中能发挥相当大的作用,但长期以来专门针对VBA的培训课程设置往往以Excel为主要平台[6],由于Excel电子表格操作过程直观性相对于Word等文字处理软件稍弱,而且其中的对象和方法涉及到单元格、工作簿与工作表几个层次的复杂关系,函数应用也较多,给VBA的入门教学和练习带来了一定程度的难度。本例使用学生熟悉和常见的Word(或WPS文字)作为VBA教学实操的入门和起点,较Excel更加容易掌握。教学实践也证明可以较好的避免由于对象的抽象性和操作过程的复杂而导致学生产生畏难情绪并降低学习效率,进而可以循序渐进的过渡到更为复杂的操作练习[7],为进一步的VBA学习打下基础。以Word VBA为起点的VBA理论和实操在大学计算机教育中加以应用,还可以充当桥梁,将以交互式操作为主的计算机公共基础实操课程与电子文秘、信息技术与信息系统、办公自动化高级运用等涉及到代码和编程思想与应用的专业课程或专业基础课程相衔接,通过有效弥补文科专业背景大学生计算机软件开发和程序设计方面知识的不足而改善这些课程的学习成效。但在教学中需要注意:从第一次操作练习开始,就应该结合计算机病毒相关知识强调宏的安全性设置及其应用,防范由于宏病毒带来的安全隐患。

参考文献:

[1] 胡焕然,陈奉英.Word VBA 的几种应用[J].新余高专学报,2007,12(4):74-76.

[2] 李晓波,周峰,王征.Excel VBA 2007 程序设计案例集锦 [M].北京:中国水利水电出版社, 2009:185.

[3] 杨晓亮. Word VBA高效排版范例应用[M].北京:中国青年出版社,2005:1-15.

[4] 邓剑文. 使用 VBA 开发文档管理程序[J].南昌高专学报:2006,21(5):100-101.

[5] 范晓燕,周涛峰.利用VBA 实现 Word 文档的批量拆分与合并[J].电脑知识与技术,2011,7(7):1554-1556.

[6] 启典文化,姬莉霞,张丽君. Excel VBA 高效办公全能手册[M].北京:中国铁道出版社, 2009: 98.

[7] 何勇.亲密无间—Word2000与其他Office程序间的合作[J].电脑技术,2001(2):70-72.endprint

5 结束语

VBA由于功能强大,在办公自动化操作中能发挥相当大的作用,但长期以来专门针对VBA的培训课程设置往往以Excel为主要平台[6],由于Excel电子表格操作过程直观性相对于Word等文字处理软件稍弱,而且其中的对象和方法涉及到单元格、工作簿与工作表几个层次的复杂关系,函数应用也较多,给VBA的入门教学和练习带来了一定程度的难度。本例使用学生熟悉和常见的Word(或WPS文字)作为VBA教学实操的入门和起点,较Excel更加容易掌握。教学实践也证明可以较好的避免由于对象的抽象性和操作过程的复杂而导致学生产生畏难情绪并降低学习效率,进而可以循序渐进的过渡到更为复杂的操作练习[7],为进一步的VBA学习打下基础。以Word VBA为起点的VBA理论和实操在大学计算机教育中加以应用,还可以充当桥梁,将以交互式操作为主的计算机公共基础实操课程与电子文秘、信息技术与信息系统、办公自动化高级运用等涉及到代码和编程思想与应用的专业课程或专业基础课程相衔接,通过有效弥补文科专业背景大学生计算机软件开发和程序设计方面知识的不足而改善这些课程的学习成效。但在教学中需要注意:从第一次操作练习开始,就应该结合计算机病毒相关知识强调宏的安全性设置及其应用,防范由于宏病毒带来的安全隐患。

参考文献:

[1] 胡焕然,陈奉英.Word VBA 的几种应用[J].新余高专学报,2007,12(4):74-76.

[2] 李晓波,周峰,王征.Excel VBA 2007 程序设计案例集锦 [M].北京:中国水利水电出版社, 2009:185.

[3] 杨晓亮. Word VBA高效排版范例应用[M].北京:中国青年出版社,2005:1-15.

[4] 邓剑文. 使用 VBA 开发文档管理程序[J].南昌高专学报:2006,21(5):100-101.

[5] 范晓燕,周涛峰.利用VBA 实现 Word 文档的批量拆分与合并[J].电脑知识与技术,2011,7(7):1554-1556.

[6] 启典文化,姬莉霞,张丽君. Excel VBA 高效办公全能手册[M].北京:中国铁道出版社, 2009: 98.

[7] 何勇.亲密无间—Word2000与其他Office程序间的合作[J].电脑技术,2001(2):70-72.endprint

5 结束语

VBA由于功能强大,在办公自动化操作中能发挥相当大的作用,但长期以来专门针对VBA的培训课程设置往往以Excel为主要平台[6],由于Excel电子表格操作过程直观性相对于Word等文字处理软件稍弱,而且其中的对象和方法涉及到单元格、工作簿与工作表几个层次的复杂关系,函数应用也较多,给VBA的入门教学和练习带来了一定程度的难度。本例使用学生熟悉和常见的Word(或WPS文字)作为VBA教学实操的入门和起点,较Excel更加容易掌握。教学实践也证明可以较好的避免由于对象的抽象性和操作过程的复杂而导致学生产生畏难情绪并降低学习效率,进而可以循序渐进的过渡到更为复杂的操作练习[7],为进一步的VBA学习打下基础。以Word VBA为起点的VBA理论和实操在大学计算机教育中加以应用,还可以充当桥梁,将以交互式操作为主的计算机公共基础实操课程与电子文秘、信息技术与信息系统、办公自动化高级运用等涉及到代码和编程思想与应用的专业课程或专业基础课程相衔接,通过有效弥补文科专业背景大学生计算机软件开发和程序设计方面知识的不足而改善这些课程的学习成效。但在教学中需要注意:从第一次操作练习开始,就应该结合计算机病毒相关知识强调宏的安全性设置及其应用,防范由于宏病毒带来的安全隐患。

参考文献:

[1] 胡焕然,陈奉英.Word VBA 的几种应用[J].新余高专学报,2007,12(4):74-76.

[2] 李晓波,周峰,王征.Excel VBA 2007 程序设计案例集锦 [M].北京:中国水利水电出版社, 2009:185.

[3] 杨晓亮. Word VBA高效排版范例应用[M].北京:中国青年出版社,2005:1-15.

[4] 邓剑文. 使用 VBA 开发文档管理程序[J].南昌高专学报:2006,21(5):100-101.

[5] 范晓燕,周涛峰.利用VBA 实现 Word 文档的批量拆分与合并[J].电脑知识与技术,2011,7(7):1554-1556.

[6] 启典文化,姬莉霞,张丽君. Excel VBA 高效办公全能手册[M].北京:中国铁道出版社, 2009: 98.

[7] 何勇.亲密无间—Word2000与其他Office程序间的合作[J].电脑技术,2001(2):70-72.endprint

猜你喜欢

教学
微课让高中数学教学更高效
如何让高中生物教学变得生动有趣
“自我诊断表”在高中数学教学中的应用
对外汉语教学中“想”和“要”的比较
跨越式跳高的教学绝招
初中50米迎面接力跑教学心得