首页 > 范文大全 > 正文

VBA高级应用案例在非计算机专业教学中的应用研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇VBA高级应用案例在非计算机专业教学中的应用研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要: 在大多数院校,高级办公自动化与宏应用课程作为公共基础课开设,但在教学过程中普遍存在内容繁杂和进度滞后等问题。探讨了以案例教学为向导组织vba高级应用教学内容,对传统的编程教学模式进行创新。针对宏与自动化录制,宏代码进阶,控件与宏的绑定调用这三个部分,在课堂上实践案例教学,能明显增强学生对面向对象编程技术的理解,提高学生对编程语言的学习兴趣,引导学生将办公自动化知识应用到实践中。

关键词: 高级办公自动化; VBA高级应用; 宏代码; 案例教学

中图分类号:G642 文献标志码:A 文章编号:1006-8228(2015)08-73-03

Research on applying advanced VBA application cases to non-computer majors teaching

Gao Honghao, Zhuang Weiming, Song Lanhua

(Shanghai university computing center, Shanghai 200444, China)

Abstract: Most colleges have opened the advanced office automation and macro application course as a public basic course, but the problem of content complex and progress lag is ubiquitous in the teaching process. This paper takes case teaching as the guide to organize the teaching content of VBA advanced application and to innovate the traditional programming course teaching mode. Taking the macro and its automatic recording, macro code upgrade, binding calls for control and macro three parts as the practice case taught in classroom, can enhance students' understanding of object-oriented programming technology, promote students' interest of learning programming language and guide students to apply the knowledge of office automation to practice.

Key words: advanced office automation; VBA; macro code; case teaching

0 引言

向非计算机专业的学生教授计算机基础知识的目标是要让学生掌握计算机应用技能,将自身的专业知识与计算机技能相结合并更好地服务于专业学科领域。不同专业背景的学生对学习和掌握计算机技能的期望不同,加之学生的计算机基础也不尽相同。因此,在教学实践过程中,对不同专业需要提出不同的要求,同时采用不同的教学方式。

上海大学实行大类招生,在课程改革不断深入的过程中,提高学生学习兴趣、培养学生自主学习、实践及团队协作的能力是摆在我们面前要解决的迫切任务[1]。高级办公自动化与宏应用[2]作为非计算机专业学生的计算机基础课,教师主要讲授微软Word、Excel、PowerPoint软件应用,以及VBA高级应用的程序设计。VBA是Microsoft Office系列的内置编程语言,是开发语言VB(Visual Basic)的一个分支,可供用户编写宏,对Office进行二次开发。由于其是面向对象编程技术,并具有良好的可视化设计效果,因此适合作为非计算机专业学生学习编程的入门语言。由于课程覆盖学生面大,涉及专业类别多,对于如何进行教学改革才能取得好的成果,多年来一直都在研究和探索。在教学过程中发现并归纳了一些问题。一方面,学生对于基础办公软件操作的重视程度不高。对于这部分知识,学生往往浅尝辄止且易于满足,在工作中遇到实际问题时经常无法独立解决。另一方面,绝大多数非计算机专业学生的编程基础薄弱,学生对VBA高级应用部分的学习兴趣低迷,部分学生甚至主动放弃学习这部分课程内容。在教学实践过程中还发现,学生更加容易接受面向应用的案例教学,学生的课堂参与度较之枯燥的理论教学有明显提高。目前,教学模式急需从以VBA理论讲授为中心转变到以案例实践为中心[3-5],对课程的课内授课、课内实验、课外实践等内容作进一步调整与完善,同时设计课程有关的辅助软件或硬件,以帮助学生更快更好地掌握课程内容,提高理论与实践能力。

本文针对VBA高级应用部分的知识点,从教学实际问题出发,选取典型教学案例,构建课程的教学体系。以案例教学为向导,改变传统的编程语言授课模式,力争在较短时间内使教学质量有明显地提高。

1 宏与自动化录制

宏(Macro)是一个程序段,或一个子程序,其由一系列的命令(包括Word、Excel、PPT命令)和指令组成的,是完成特定任务的指令集合,实现任务自动化执行。有两种创建宏的方法:录制宏和编写宏。录制宏是指通过宏录制器的方式进行:宏录制器的打开需要选择选项卡[视图][宏][录制宏],然后打开宏录制器对话框。如图1所示,是以Excel为例的录制宏对话框,包括宏的名称和保存位置。编写宏是指在Visual Basic编辑器(VBE,Visual Basic Editor)上编写宏代码:可以按组合键“Alt+F11”快速打开编程环境。

图1 以XLS为例的录制宏对话框

录制宏的过程,实际上就是将一系列操作过程记录下来并由系统自动转换为VBA语句。这种方法较为简单,可以满足学生的好奇心和吸引学生的注意力。为了降低学生的理解难度,教学过程中侧重介绍宏录制器,设计案例1并通过分析和现场操作来解释录制宏。

案例1 针对图2的学生成绩表,通过录制宏的方法来设置总分和平均分。要求设置两个按钮,分别是“总分”和“平均分”,当执行“总分”宏时,统计表格中的总分,当执行“平均分”宏时,统计表格中的平均分。

图2 学生成绩表

分析案例1可知,需要录制两个宏:“总分”和“平均分”。现场演示录制宏,录制如表1和表2所示的代码,分析其不同点和相同点。在课堂上,留给学生1-2分钟时间思考这样一个问题:录制宏是否可能转化并保留一些不必要的步骤?

分析代码知,代码2比代码1多了几行,而其最终效果却是一样的,即计算总分。相比代码1,代码2的第5行至第10行代码是多余步骤,分析其操作可知是清除Range("H2:H21")的内容。这表明录制宏有方便性,也有复杂性。录制宏是根据用户操作步骤所做的自动转化,那么就会存在记录了许多不需要的资料和步骤的问题。同样,录制的宏无判断或循环能力;人机交互能力差,即用户无法输入,计算机无法给出提示;无法显示对话框和自定义窗口。从这点引出学习VBA代码编程的重要性,通过学习编程可以更好地写出VBA程序。

表1 代码1

[1 Sub 总分()

2 Range("F1").Select

3 ActiveCell.FormulaR1C1="总分"

4 Range("F2").Select

5 ActiveCell.FormulaR1C1="=SUM(RC[-4]:RC[-1])"

6 Selection.AutoFill Destination:=Range("F2:F21"), Type:=xlFillDefault

7 Range("F2:F21").Select

8 End Sub\&]

表2 代码2

[1 Sub 总分()

2 Range("F1").Select

3 ActiveCell.FormulaR1C1="总分"

4 Range("F2").Select

5 ActiveCell.FormulaR1C1="=SUM(H2B2:RC[-1])"

6 Range("H2").Select

7 ActiveCell.FormulaR1C1="大学"

8 Selection.AutoFill Destination:=Range("H2:H21"), Type:=xlFillDefault

9 Range("H2:H21").Select

10 Selection.ClearContents

11 Range("F2").Select

12 ActiveCell.FormulaR1C1="=SUM(RC[-4]:RC[-1])"

13 Selection.AutoFill Destination:=Range("F2:F21"), Type:=xlFillDefault

14 Range("F2:F21").Select

15 End Sub\&]

2 宏代码进阶

录制宏的代码其实就是VBA代码,在VBE环境下是允许用户手动修改。为了引导学生编写代码,接着设计一个实例:录制部分宏和手动修改相结合。

案例2 编写一个宏程序Perimeter,用于计算圆周长,其中A1单元格为半径长度。

分析案例2可知,需要录制一个宏,然后在宏内编程或修改代码。首先,通过宏录制器录制一个空白宏并将其命名为Perimeter。如下:

Sub Perimeter()

End Sub

其次,根据圆周长的计算公式S=2*p*r,引导学生考虑其中的变量情况以及变量的设置情况:整数型或浮点型?提示学生圆周率p肯定是小数,变量S必然是浮点型。留给学生1-2分钟思考,再给出VBA代码用Dim设置变量S和r以及其类型double。

圆周长是根据A1单元格的半径长度计算出来的,需要学生回忆学过的赋值语法r=Range(“A1”).value取值。考虑圆周率p的取值情况:可以直接取数值,亦可以定义VB的符号常量。向学生说明符号常量的定义方法和使用场景,通常用const关键字来定义符号常量,但是符号常量在VBA执行过程中是不允许改变的。

表3 代码3

[1 Sub Perimeter()

2 Dim S As Double

3 Dim r As Double

4 const PI=3.1415

5 r=Range(“A1”).value

6 S=2*PI*r

7 Msgbox S

8 End Sub\&]

最后,给出表3所示的代码,其中包括:变量和符号常量的定义(第2行至第4行)、变量使用(第6行)。接着给出一个案例,修改并互换第5行和第6行,介绍顺序结构的概念。情况1:r=Range(“A1”).value先赋值再计算S=2*PI*r,则结果正确。而情况2:S=2*PI*r先计算后赋值,则结果错误,因为计算时r并未赋值,其值由VBA赋0参与运算。

3 控件与宏的绑定调用

宏的调用分两种方式:一种是在VBE环境执行模块,另外一种以Office的控件执行。在案例教学过程中,重点介绍Office控件的按钮与宏调用功能绑定。

案例3:在Sheet1的B5单元格中创建一个 “计算器”按钮,单击该按钮,弹出一个如图3所示的计算器,并能进行简单的四则运算。

图3 计算器界面

首先,打开VBE环境需要执行选项卡[文件][选项][自定义功能区][开发工具],打开开发工具视图选项卡。接着,单击“插入|用户窗体”,插入UserForm1窗体,选中UserForm1窗口,浮现工具箱(如图4所示)。在主窗口中添加相应控件,根据图3示例界面的需要修改控件属性。

图4 工具箱

其次,为了实现宏调用,在VBE中单击“插入|模块”,插入了“模块1”,双击左上VBAProject窗口中的“模块1”,打开编辑窗口,在编辑窗口中输入以下代码:

Sub Openform()

UserForm1.Show

End Sub

其中,Openform是手工定义的宏名称,而不是通过录制宏的对话框设置的,Userform1.show表示显示调用用户设计的窗体Userform1。

最后,单击“开发工具|控件”打开插入控件工具栏,在工具栏上选中“Commandbutton”按钮,使得鼠标变成“+”,在B5绘制“按钮1”,弹出“指定宏”对话框,选中“Openform”宏名并单击“确定”。设计完成后,在界面上点击按钮测试窗体是否正确展示。

4 结束语

本文设计了三个教学实例,分别介绍录制宏、VBA模块修改以及函数调用之间的关联性。加强实践教学环节的目的是培养学生上机动手能力、解决实际问题的能力以及知识综合运用能力[6]。所述的案例教学正是实践教学的重要组成部分,通过案例教学能使学生熟悉Office软件及其操作技巧,能针对具体问题能灵活地驾驭软件,进而达到学以致用的目的。

参考文献:

[1] 高洪皓,朱永华,陈章进.基于MOOCs平台的计算机基础实验教学课

程建设[J].工业和信息化教育,2014.6:90-94

[2] 庄伟明,严颖敏.办公自动化基础与高级应用[M].电子工业出版社,2013.

[3] 谌卫军.教学与教案设计[J].计算机教育,2013.17:112-118

[4] 邱石.教案设计六要点[J].教学与管理,2003.30.

[5] Chen W J, Li X, Liu W D. Teaching computer programming to

non-computer science students[C]//Proceedings of the 3rd Asian Conference on Education (ACE). Katahira: IAFOR Publications,2011:784-795

[6] 夏其表,王洁,尹建新,计智伟.办公自动化高级应用课程多元化立体

化教学研究[J].计算机教育,2014.2:79-81