王翔
摘 要:使用VBA在Excel2010环境下设计和开发信息处理系统,具有通俗易操作,易用易推广和维护的特点。中职校运会信息处理系统分六个模块进行了功能设计,系统设计了个性化系统界面,直接在Excel工作表中进行操作,符合大多数人的使用习惯,合理的设计工作表,简化操作流程,展示部分关键功能的代码,对系统运行做了说明,并对系统的开发做了展望。系统的实现大大减轻了校运会的组织管理工作量,系统的运行能即时对竞赛成绩进行计分、排名统计,及时发送到相关部门处理,使校运会的节奏更融洽。
关键词:Excel VBA 校运会 信息处理系统 中职
中图分类号:TP311 文献标识码:A 文章编号:1674-098X(2015)09(b)-0050-02
中等职业学校学生精力旺盛,为丰富校园文化生活,强健学生体魄,每年举行一次校园运动会,对促进学生身体锻炼,活跃校园文化氛围具有重要意义。然而从报名到成绩录入统计等都需要大量的人力物力配合,怎样快速的统计及安排赛事、录入统计成绩,就显得尤为重要,采用VBA(Visual Basic for Applications)在Excel下设计及开发校运会信息处理系统可以很好地解决上述问题,由于Excel的环境为大多数师生所熟悉,所以通俗易操作,易用易推广,并且系统也易于维护。
1 系统设计
1.1 功能设计
系统设计功能主要分为六个模块:系统设置及维护模块、报名信息处理模块、赛事分组道模块、预赛管理模块、成绩录入统计模块、记录更新输出模块。
系统设置及维护模块主要用来设置竞赛的项目、进入决赛的人数、径赛的道数、年级组别、名次得分设置以及系统相关的密码和相应维护设置;报名信息处理模块需配合FTP服务器使用,各班级通过报名表选择需要报选的项目和学生姓名,完成后点击上传按钮则可以自动检测是否有错,无错后自动上传到FTP服务器,不用人工干预,报名表收集完成后进行汇总,生成序号<唯一>;赛事分组道模块需先设置分组道的一些设置,比如单项每组分多少道,成绩取前多少名等,然后分年级分性别进行随机分组道,分组时(径赛)按照同一班尽量不安排同一组,分道时(径赛)同一班尽量不安排同一道的原则,以尽量做到分组道的公平;预赛管理模块主要实现需要预赛项目的信息处理,包括成绩录入统计、决赛分组道情况汇入总表等;成绩录入统计模块则包括所有决赛项目的成绩录入、按项目统计排名、按班级进行统计排名,分年级统计总分排名等功能;记录处理模块将根据当前届比赛情况自动更新校运会新记录、并可将记录输出等。
1.2 窗体设计
为了简洁系统操作界面,使用Custom UI Editor For Microsoft Office软件将原Excel2010界面上默认功能区全部取消隐藏,另行创建系统相关功能区,如图1所示。
系统工作界面则采用直接在工作表中完成,通过主工作表(总表)衍生出一系列相关工作表,在相应的工作表中放置相应功能的按钮,通过设置项,选择或输入数据,通过点击相应的按钮来实现相应的功能,如图2(录入成绩)就是一个典型的工作界面。
1.3 工作流程
按照校运会进行的逻辑顺序,整个系统的运行分为三个阶段,第一阶段为各班报名,完成报名后系统进行汇总,然后进行分组、分道的处理,将分好组道的数据生成秩序册下发到各相关工作人员和各班;第二阶段则是组织预赛,并将预赛成绩进行处理后生成决赛信息汇总到数据总表;第三阶段是进行决赛的数据处理,这个阶段要求决赛的数据能录入进系统后能即时进行排名和计算得分,并生成相应的报表和输出打印,分别交相关小组进行处理,最后所有赛事完成后,能分年级进行汇总排名计算奖励班级,并生成各班的成绩报表便于各班核查成绩,最后更新校运会记录和输出优胜者名单,具体工作流程如图3所示。
2 系统实现
2.1 工作表设计
系统包含的工作表主要有:总表、分组道、成绩录入、统计、预赛总表、预赛处理、班级信息、记录、导航、系统设置等10个工作表。班级信息、记录、系统设置三个表用来存放班级的男女生人数、基本分等基本信息,上届校运会的各项记录,项目设置、名次得分等;总表是各班报名表的汇总处理,里面存放了各个项目的信息,是整个系统最关键的表,而预赛总表、分组道等表是从此表衍生而出的;分组道、成绩录入、统计、预赛处理则是对总表和预赛总表根据赛程推进而进行的操作,其中生成了一些文档性数据,如秩序册、班级成绩报表、班级成绩排名、单项成绩报表等;导航表用来选择进入系统的相应功能。
2.2 系统的关键功能
系统实现的功能较多,而较为关键的有报名表自动上传、分组道、成绩录入、成绩得分统计、记录更新等。对于运动会来说,打破记录是一项令人欢欣鼓舞的事情,所以每一届校运会记录的更新也显得尤为重要,更新记录按钮CommandButton2的代码如下(篇幅所限,其他代码不一一列举):
(1)Private Sub CommandButton2_Click()
(2)Dim i, j, k, m As Integer'更新记录
(3)For i = 1 To Sheet9.Range("I19") 'sheet9是记录表,I19存放破纪录人次
(4)For j = 1 To 12 '循环项目
(5)If Sheet9.Cells(20 + i, 5) = Sheet9.Cells(4 + j, 1) And Sheet9.Cells(20 + i, 9) = 1 Then '按破紀录的项目进行更新
(6)For k = 1 To 2 '循环年级
(7)For m = 1 To 2 '循环性别
(8)If Sheet9.Cells(20 + i, 4) = Sheet6.Cells(m + 7, 2) And Sheet9.Cells(20 + i, 6) = Sheet6.Cells(k + 1, 2) Then '更新记录
(9)Sheet9.Cells(4+j,2+(k-1)*8+ (m - 1) * 4) = Sheet9.Cells(20 + i, 7) '成绩
(10)Sheet9.Cells(4 + j, 3 + (k - 1) * 8 + (m - 1) * 4) = Sheet9.Cells(20 + i, 1) '姓名
(11)Sheet9.Cells(4 + j, 4 + (k - 1) * 8 + (m - 1) * 4) = Sheet9.Cells(20 + i, 2) '班级
(12)Sheet9.Cells(4 + j, 5 + (k - 1) * 8 + (m - 1) * 4) = Sheet9.Range("B2") + 1986.11 '日期
(13)GoTofindnext '记录已更新,跳转到下一条记录
(14) End If
(15) Next m
(16)Next k
(17)End If
(18)Next j
(19)findnext: '跳转
(20)Next i
(21)Sheet9.Range("b2") = Sheet9.Range("b2") + 1 '届数增加1
(22)Sheet9.Range("L2") = Sheet9.Range("X1") '改写更新日期
(23)End Sub
3 系统运行
(1)由于该程序的开发涉及到了宏的使用,所以第一打开该文件,会弹出“安全警告”,如下图4所示,点击“启用内容”即可。
(2)收集报名表时需用到FTP服务器,所以需架设FTP服务器,使用Serv-u很容易实现,只需要在Serv-u的用户项中新建一个用户,名称和密码与报名表系统设置中一致即可。需要注意的是,建立用户时一定要赋予用户目录具有“写”的权限。
(3)系统运行中为降低系统数据丢失的风险,系统设置了每隔五分钟以“系统文件名+系统时间”另存一次当前数据的功能,而保存时,如果路径中出现中文字符则容易出错,所以,系统文件建议放到D:\sport或E:\sport下,并在其中建立bak文件夹用来保存另存的数据。
(3)目前该系统已经在笔者所在学校两届的校运会中运行,从运行的过程和结果来看,完全满足了校运会的需要,能够对输入的成绩即时进行计分、排名统计、输出,获得了校运会组织部门的高度评价。
4 系统展望
系统中,报名部分是独立的,为保证报名数据中姓名、班别以及姓名的一致性,需要在报名表中事先预存全校参赛班级及学生的信息,这就要求管理员在报名之前先将这些信息存放进去,工作量也较为繁杂,所以进一步的打算是开发一个接口程序将校园网与报名表对接,直接从校园网中获取最新信息,免去人工操作的繁杂和出错。
系统的设计与实现,总是与需求相关的,所以在使用过程中,根据实际情况,系统也会进一步的升级和增加功能。比如有一年学校要选拔学生参加市运动会,需要将每个项目前三名的男女生姓名、成绩等输出,这个功能系统之前是没有的,接到需求后,很快系统就添加了这个功能。
5 结语
VBA 易于学习掌握,可以使用宏记录器记录用户的各种操作并将其转换为VBA 程序代码,这样用户可以容易地將日常工作转换为VBA 程序代码,使工作自动化。因此,对于在工作中需要经常使用Office软件的用户,学用VBA 有助于使工作自动化,提高工作效率。作为中职信息技术教师,使用office软件是及其频繁是平常的,平时多观察多研究,利用专业知识和技能开发信息系统,可以使自己和同事从教学、生活中哪些繁琐,重复性的工作中解脱出来,以利于更好的学习和生活。当然信息系统的开发不是一朝一夕的事,需要静下心来,沟通需求,寻找方法,仔细研究,才能逐步实现。
参考文献
[1] 罗刚君.Excel2010VBA编程与实践[M].北京:电子工业出版社,2012.
[2] 罗刚君.ExcelVBA程序开发自学宝典[M].北京:电子工业出版社,2011.
[3] 刘洪花.基于VBA的Excel考试系统的制作[J].电脑编程技巧与维护,2012(18):42-44.
[4] 刘本斌.基于Excel VBA的考试系统的设计与实现[J].现代计算机,2012(17):78-80.
[5] 毕克书.基于Excel VBA开发干部管理信息系统[J].中国管理信息化,2012, 15(5):51-52.