Excel+VBA开发之《学生成绩管理系统》的设计与实现
2016-06-28刘晓燕
刘晓燕
摘 要 Excel 2007是office应用程序其中一款功能强大的办公软件,具有数据计算、数据统计分析和信息保存等功能;同时,它还是一个开放的平台,用户可以使用其内嵌的VBA程序进行二次开发。本文就如何利用Excel2007和VBA编程平台进行二次开发,设计与实现一个学生成绩管理系统进行简单地阐述。
关键词 VBA EXCEL 学生成绩
中图分类号:TP311.52 文献标识码:A
1 VBA简介
VBA是Visual Basic For Application的简称, VB的子集,是Office应用程序内嵌的一种开发工具,使用VBA编程可以有效地自定义和扩展Excel等office应用程序的功能。
2 系统的设计思想
学生成绩管理,是一项繁琐且耗时的工作,大多数成绩管理员统计成绩时都是利用Excel公式进行重复地操作,工作效率不高。本系统主要是想通过VBA编程对Excel2007进行二次开发,采用VBA按钮控件创建一个学生成绩管理系统,以便成绩管理员更有效地管理成绩。
3 系统的分析与设计
3.1 系统分析
该系统的使用者是教务成绩管理员,要求系统方便实用,能简化某些重复的操作,对系统功能分析需求如下:
(1)能完成各班学生基本信息的录入、删除及修改,完成各科成绩的登记;
(2)能方便有效地查询成绩;
(3)能自动进行成绩的分析和统计;
(4)能生成各班级成绩汇总表。
3.2 模块设计
根据系统分析需求,设置“学生信息管理”、“学生成绩登记”、“学生成绩查询”、“成绩统计分析”、“打印成绩单”和“退出系统”6个模块。下面简单介绍一下这6个模块各自的功能设计:
(1)学生信息管理:运行系统进入主界面,单击该模块按钮则激活一个“学生信息管理”的窗体,再通过“学生信息管理”窗体选择相应班级及信息后,激活各个班级工作表。
(2)学生成绩登记:完成学生各学科成绩的登记、修改等功能。单击该模块按钮时激活一个“学生成绩登记”工作表,工作表中显示有各班级按钮,单击相应按钮便可在相应的班级成绩信息表中直接录入成绩。(成绩信息表显示有“学生班级”、“学号”、“姓名”、“性别”和各学科名称等)。
(3)学生成绩查询:根据设定的条件进行查询,可以按班级名称或学生姓名学号查询个人成绩,也可以按学期进行查询各班级所有学生成绩汇总等等。单击该模块时激活 “学生成绩查询”工作表,单击工作表中不同的查询条件按钮则会弹出相应的查询选择窗体,根据窗体提示选择好后,相关成绩信息便能直接显示在“学生成绩查询”工作表中。
(4)成绩统计分析:根据录入的成绩,统计出各科目的平均分、及格率、最高分数、最低分数和各分数段的分布情况。
(5)打印成绩单:生成班级成绩单报表,并打印出来。
(6)退出系统:学生成绩都保存在本系统工作簿的相关工作表中,当对学生成绩进行了录入、删除和修改等操作时必须保存。因此,该模块的功能则是单击按钮时,系统会先对工作簿进行保存,然后再退出系统。
表格是Excel的基础,要完成各模块的编辑与实施,需使用Excel2007创建相关工作表并将可共享使用的信息先录入及编辑,将表格框架搭建好,再使用内嵌的VBA编辑宏,对表格进行处理。
3.3 主界面的设计
创建一个名为“学生成绩管理系统”的工作簿,将第一个工作表设置为主界面,重命名为“封面”,利用插入艺术字和自选图形等功能添加美化主界面的背景及按钮模块,再分别为各模块按钮指定相应的VBA宏代码。主界面效果图如下图1:
封面是对整个系统的控制,在打开系统工作簿时,会自动激活“封面”工作表。所以必须将该工作表进行保护,同时将工作簿中除“封面”工作表外的所有工作表隐藏起来,以保护其中的数据。因此,需要为工作簿对象设置Open事件。
4 VBA程序编写
由于代码量较多,本文只对部分代码进行摘录。
4.1为工作簿对象设置Open事件的代码
Private Sub Workbook_Open()
Dim i As Integer
Worksheets("封面").Activate,激活工作表"封面"
Worksheets("封面").Protect,保护工作表"封面"
For i = 1 To Worksheets.Count
If Worksheets(i).Name <> "封面" Then Worksheets(i).Visible = False '保护除工作表"封面"外的所有工作表
End If
Next i
End Sub
4.2为模块按钮指定宏的代码
Sub 学生信息管理() '"学生信息管理"按钮
学生管理窗口.Show
End Sub
Sub登记学生成绩 ()'"学生成绩登记"按钮
学生成绩登记工作表.Show
End Sub
Sub 查询学生成绩()'"学生成绩查询"按钮
学生成绩查询工作表.Show
End Sub
Sub 成绩统计分析() '"成绩统计分析"按钮
成绩统计分析窗口.Show
End Sub
Sub 打印成绩单()'"打印成绩单"按钮
打印成绩单窗口.Show
End Sub
4.3成绩统计分析模块按钮代码
Sub LIK3()'成绩统计分析按键,
On Error Resume Next
Sheets("成绩统计分析").Visible = True
Sheets("成绩统计分析").Select
'Sheets("成绩统计分析").Cells.Clear
Sheets("成绩统计分析").Cells(1, 1).Select
Kmpj_Form.Show
End Sub
4.4退出系统代码
Sub File_Close() '退出系统'
Application.ScreenUpdating = True
ActiveWorkbook.Save
Application.Quit
End Sub
5 结语
本文分别从系统功能模块的设计、主界面的设计和Excel VBA编程几方面进行阐述,采用Excel2007+VBA编程开发一个学生成绩管理系统的设计与实现。该系统用户界面友好,实用性强,实现了教务部门的实际需求,简化了成绩管理员大部分重复的操作工作,使成绩管理员既可根据平时使用Excel的习惯和方式操作,并充分发挥Excel的VBA编程功能,又能大大提高了工作效率。
参考文献
[1] ExcelHome.Excel 2007 VBA实战技巧精粹[M].人民邮电出版社,2013(12).
[2] ExcelHome.别怕,Excel VBA其实很简单[M].人民邮电出版社,2012(10).
[3] 马文静.计算机应用基础[M].江苏教育出版社,2013(3).