2014年 第 18 期
总第 694 期
财会月刊(下)
教学之研究
会计学专业系统“自主开发”创新能力培养

作  者
刘 曜 刘 茜 马 萧

作者单位
(重庆邮电大学经济管理学院 重庆 400065)

摘  要

      【摘要】目前,部分高校试图以Excel二次开发方法来培养会计学专业学生计算机应用的创新能力,并取得了一定实际效果。本文将介绍选择Excel二次开发的原因,并分析在研究中遇到的问题及解决方法。
【关键词】Excel二次开发   会计学   系统“自主开发”

一、问题的提出
在高等教育教学改革中能力的培养是一个重要的研究课题。田金玉(2006)分析了会计信息化教育目标的两种观点:“一种观点认为,讲授现成的会计软件,可以使学生较快掌握操作技能,为实践服务;另一种观点认为,讲授会计软件的开发,可以使学生在实际工作中针对不同情况编制相应的应用软件”。他认为前一种观点是一种“低级”的目标,应按后一种观点确定会计信息化教育目标,以培养学生解决实际问题的创新能力。
本文的系统“自主开发”是指数据的使用者(企业管理人员,而非计算机专业人员)根据数据管理目标设计程序。为了培养会计学专业学生自主开发系统的能力,陈旭(重庆工学院)主持的国家级精品课程《会计信息化》课题组所编写的《会计信息系统开发实验教程》,从课程实验教学的目的出发,将会计软件中常见的功能模块作为案例,对相应的模块进行功能分析、数据库设计、建立概念数据模型与物理数据模型,并编写相应的源代码。该课题组的做法在会计学专业具有代表性,对强化学生开发系统的实践动手能力有积极的意义。
但是,会计学专业学生不可能像计算机专业学生那样系统地学习计算机知识。因受到开发技术能力的限制,以及系统开发工作量过大,会计学专业的毕业生实际上很难根据企业的需要,按传统的方法开发系统。因此有必要针对会计学专业学生设计新的方法来培养他们的计算机应用创新能力。
二、选择Excel二次开发的原因
为了培养会计学专业学生计算机应用的创新能力,除了像陈旭他们那样,在传统方法上加强实践动手能力的训练外,应找到一种适合会计学专业学生自主开发系统的方法。这种方法应当有两个特点,一是在技术上容易为会计学专业学生掌握,二是开发系统的工作量要小。
为了解决企业遇到的数据管理问题,一些实际工作者尝试了Excel二次开发的方法。例如,陈凤美的《基于Excel的物料需求清单(BOM)自动生成软件设计》,祝昕刚的《用Excel VBA编制变形监测数据处理程序》。陈凤美和祝昕刚都不是专业的计算机系统开发人员,而是数据的使用者。可见,Excel二次开发作为会计学专业学生自主开发系统的方法具有可行性。有的学者也对Excel二次开发方法进行了研究。张克瑜认为“Excel二次开发技术特别适合小企业的企业管理人员学习,这些人本身从事具体的会计工作,对本单位的情况比较了解。” 吴敬兵指出“以Excel作为二次开发平台,结合VBA可以定制开发出大量有价值的应用程序”。作为教学改革的尝试,樊斌于2006年出版了教材《Excel会计信息化》,指导学生以Excel电子表格为会计信息化开发的平台,开发出纳管理系统、工资核算系统等。
虽然在实践中不乏企业管理人员成功进行Excel二次开发的案例,但是在高校将Excel二次开发作为一种教学方法系统地加以研究的不多。本课题组(重庆邮电大学)基于实践的启发,以及现有学者的研究成果,系统地在会计学专业开展了有关Excel二次开发方法的教学,以探索培养学生计算机应用创新能力新路径的研究。
三、Excel二次开发实验中遇到的问题及解决方法
1. Excel二次开发的关键技术。Excel二次开发的基本做法是,凡是能利用Excel的功能完成系统设计的部分,如系统的数据表格、函数设置等基础性设计,就充分利用Excel的功能完成;Excel的功能不能完成的任务再通过Excel内置的VBA语言编程完成。这样,对会计学专业的学生来讲,编程的任务就小得多。但是,会计学专业学生仍避不开编程时要解决的一些关键技术的障碍。例如,设“销售记录”工作表A列在“日期”栏下有“2008-5-1”等记录,如下图所示。

 

 

 

随着销售的增加,记录的末行数是变动的。如何自动地确定记录的末行数呢?类似的问题有:自动地给变动区域命名、自动地查找某一记录、自动地进行数据结转等。
学生在学习Excel二次开发方法时,首先面临的是如何处理这些问题,这些技术往往是解决问题的关键。为了突破学生学习Excel二次开发关键技术上的障碍,本课题组组织了对常用技术问题的研究。例如可以用以下代码自动确定图中记录的末行数:
x=1
DoWhileNot(IsEmpty(Sheets("销售记录").Cells(x,1).Value))
    x=x+1
Loop
上述判断式循环语句执行时,首先判断“销售记录”工作表第一列第一行单元格值是否为空;如果不空,就接着判断第一列第二行单元格值是否为空(每循环一次,执行一次“x=x+1”,x值增加1);如果又不空,再判断第一列第三行单元格值是否为空,如此循环。一旦遇到第一个空单元格即停止循环,x为第一个空单元格的行数,而记录的末行数为“x-1”。
2. 模块编程教学法实验。由于会计学专业学生编程能力有限,虽然Excel二次开发方法已经在很大程度上减轻了学生编程的工作量,但是学生编程时经常出现各种语法或技术上的问题,所以一遇到编程就有一种“恐惧”心理。为解决这一问题,本课题组进行了一种“模块编程教学法”的实验。
最初,“模块编程教学法”实验是为了解决编程技术上的一些问题。我们将系统开发常用的关键技术(此技术已反复测试,运行无误)形成Excel VBA实用功能模块(简称“编程积木”),学生编程时如果要应用某一技术就像拼积木一样,组合这些技术性的“编程积木”形成系统的应用程序。
后来,“编程积木”已无技术性限制。Excel有一种特有的“录制”功能,可以将操作自动转换为VBA代码,只需将Excel功能操作一遍即可形成“编程积木”。这样,利用Excel丰富的功能就可以像小朋友玩积木一样随意组合心中的“大厦”——系统应用程序,以提高编程效率。这里值得特别指出的是,Excel的“录制”功能不仅能形成Excel功能“编程积木”,而且还可以以“录制”方式形成语法正确的代码,帮助学生检查程序中语法上的错误。Excel二次开发方法之所以能为管理类专业学生接受,并坚持采用这种方法成功进行系统“自主开发”,我们认为Excel“录制”功能功不可没。
本课题组还积极鼓励学生自已创造性地形成各种有独特功能的“编程积木”,以培养学生的编程积极性与创造性。曾经遇到这样的情况,学生反复检查程序的设计方法及代码均没有发现问题,但运行始终不正常,百思不得其解。最后采用“编程积木”替换程序中一段关键代码,问题马上得到了解决,可见,通过“模块编程教学法”的实验明显地提高了学生编程的积极性与创造性。
3. 建立Excel系统开发案例库。案例对帮助学生进行系统开发的模拟演练有重要的作用,因此课题组十分注意不断充实更新Excel系统开发案例库。在建立案例库时应注意以下三个问题:
一是案例的教学特性。我们在案例设计中,首先应提出数据管理目标,然后分析哪些任务可以直接利用Excel功能完成,哪些需要编程完成,编程的关键技术可以利用什么样的“编程积木”实现,系统如何进行测试修正等。因此案例应该具备教学特性。
二是案例的应用性。库中案例主要来自企业实际调查,是根据企业的实际问题设计的,并在企业的实际应用中进行了反复调试修正。我们将库中案例与商业软件(如用友、金蝶)类似的系统进行比较,以发现库中案例功能的优点与不足。这样可以让学生通过这些案例体验到Excel二次开发设计的系统不仅与商业软件一样能解决实际问题,而且具有“灵活性”——可以根据企业的个性化需求设计系统。
三是手工环境与计算机环境管理数据的比较。长期以来,企业数据的管理工作是在手工环境下进行的,受传统的影响,至今在大量的日常数据管理中仍未摆脱手工管理的模式,即使使用了计算机,也是将手工操作搬到计算机上进行而已,不是真正基于计算机环境来考虑如何管理数据,这样必然影响数据的管理效率。由于学生学习商业软件看不到系统的源代码,因而无法了解在计算机环境下数据处理的过程。在案例库中我们专门设计了一些案例,进行手工环境与计算机环境管理数据的案例比较,给出所有关键技术与案例的源代码,让学生清楚地看到在计算机环境下数据处理与手工环境下的差异,以培养学生开发系统的思维能力。
4. 教材建设与课程开设。在选择Excel二次开发方面的教材时,我们遇到了困难。国内外关于Excel二次开发研究资料的特点是关注技术性,难以找到适合会计学专业教学的教材。为了编好相关教材,我们查阅了大量的资料,结合研究成果(如Excel二次开发的关键技术、典型案例等)编写了教学讲义。再反复试用讲义,发现问题,寻求解决方法,模块编程教学法就是在这一过程中产生的。令人鼓舞的是,在讲义的试用过程中,学生表现出浓厚的兴趣,有的问题学生的解决方案甚至比老师更好。出版社对教材的修改也提供了宝贵的意见。经过十余年的努力,课题组出版了《Excel会计信息化》教材。《Excel会计信息化》一书示例主要采用了会计学中的会计学问题,介绍了Excel二次开发的方法、关键技术、案例以及模块编程教学法等内容。
在教学中我们还遇到课程开设问题。在会计学专业,类似的课程有《管理信息系统》、《会计信息系统》等,这些课程偏重于理论。是将Excel二次开发内容纳入这些课程,还是单独开课?我们采用了后一种做法,之所以列为选修课,是因为我们认为从教学角度讲该课不是基础性的,更注重应用性。单独开课是为了让学生的选择更具灵活性。
5. 课程实验。课程实验我们最初采用的是先进行理论教学,再集中实验,但很快就发现这种方法存在两个重大问题:一是很多原来学过的方法与技术到做实验时学生已经忘记了;二是在学理论时学生对Excel二次开发的操作没有体会,不感兴趣,待做实验时,发现这种方法不错,产生了兴趣,但学习时间已经不多了。
为了解决这两个方面的问题,我们采用上两次理论课(4学时),再安排一次上机(2学时)的教学安排。上机内容一是将理论课介绍的方法与技术在计算机上进行应用测试,二是先仿照教材中的案例设计系统(“模仿设计”),再逐步过渡到根据实际工作中的应用问题要求学生设计系统给以解决(“应用设计”)。实践证明,这样的课程实验时间与内容的安排效果较好。
四、Excel二次开发研究总结
1. 教学体会。在会计学专业教学中运用Excel二次开发方法有以下几点体会:第一,易于掌握。只要了解Excel软件和有一定计算机语言基础(高校会计学专业均开设了这些知识方面的课程),就可以学习Excel二次开发方法。第二,可以在会计学专业计算机应用的教学中,让学生具备一种程序设计的创新能力。他们可以解决在企业中遇到的如下问题:①对众多中小型企业,如果企业没有专门的数据管理软件,而需要利用计算机解决数据管理问题时,在大多数情况下,可以用Excel二次开发方法设计系统解决。②对大中型企业,当商业软件或企业自主开发的软件不能解决企业某方面的数据管理问题时,可以首先尝试用Excel二次开发方法设计系统加以解决,若仍不能解决,再考虑其他方案。第三,有助于学生更深入地理解计算机环境下的数据管理(在计算机而不是手工环境下考虑数据的管理),进而创新数据管理方法。
2. 研究成果。Excel二次开发的研究于1996年开始在重庆邮电大学会计学专业进行,经过较长时间的探索积累,取得了以下成果:①课题组成员编著的《Microsoft Excel会计信息系统开发》,结合实际工作中的会计数据处理问题,介绍如何先建立数学模型,再建立系统进行计算机数据处理。该书2001年出版后,产生了一定的社会影响,由《中国会计电算化》杂志约稿,连续刊发了10期专稿。②课题组成员发表的“Excel多表操作解决方案”论文被中国人民大学复印资料《财务与会计导刊》2009年12期全文复印。③课题组研究的“会计学专业计算机应用能力培养研究”项目,获重庆市政府2000年教育教学成果二等奖。④课题组成员将课题组的研究成果进行系统总结,2010年出版了《Excel会计信息化完全教程》,并于2012年改写为教材《Excel会计信息化》,用于高校教学。⑤课题组成员编著的教材《Excel与数据处理》,介绍了Excel作为一个数据开发平台的特点及基础知识,该书于2002年出版,用于高校教学。⑥课题组研究的“基于现代信息技术的课程(工商管理类专业)教育教学改革”项目,将课题研究内容由会计学专业扩展为工商管理类专业,获重庆市政府2004年教育教学成果三等奖。
这些成果说明,以Excel二次开发方法来培养会计学专业系统“自主开发”能力在一定程度上得到了社会承认。有的学生通过学习这种方法,在毕业实习中切实地解决了实习单位工作中的数据管理问题,提高了工作效率,撰写相关毕业论文也获得了“优秀”评级。
【注】本文系2013年重庆市教委教改项目(编号:133063)研究成果。
主要参考文献
1. 刘曜.Excel会计信息化.北京:人民邮电出版社,2012
2. 荆新等.财务会计学课程设计的一种新方案.会计研究,2002;6
3. 田金玉.我国会计信息化教育改革取向的思考.上海立信会计学院学报,2006;3
4. 陈凤美.基于Excel的物料需求清单(BOM)自动生成软件设计.装备制造技术,2010;8
5. 祝昕刚.用Excel VBA编制变形监测数据处理程序.地理空间信息,2011;6
6. 张克瑜.小企业实现信息化的捷径——Excel二次开发.中国电子商务,2011;11
7. 吴敬兵.基于VBA的Excel二次开发应用研究.湖北教育学院学报,2007;2