李伟乔 - 基于Excel的学生成绩管理系统设计(2) - 图文(2)
打印等Excel的功能。
基础资料:设置教师姓名、学期名称、班级名称和课程名称等基础资料。
学期初始化:每学期使用之前,使用该模块设置当前学期名称,以及设计本学期各班级授课教师等内容。
学生:本模块主要管理学生名单,包括分发空表、导入学生资料,以及手工输入学生资料等功能。
成绩:本模块包括分发学生空表、导入学生成绩和手工输入成绩等功能,实现对成绩的录入输出。
查询:可以按学生学号或姓名查询成绩,也可以按班级名称查看班级成绩表。 模块功能如图1—2所示,
设计工作表格学生成绩管理系统设计菜单设计窗体基础资料使用列表框控件学期初始化使用多列列表框使用Exit For使用文件系统处理学生名单使用动态数组使用文件系统处理学生成绩判断工作表存在用VBA删除单元格成绩查询用VBA粘贴数据
图1—2 系统模块图
1.2 关键技术
基于Excel VBA的编程语言特点,对于该系统的设计主要运用了文件对象集合和动态数组的操作两方面的内容,下面对这两个关键技术做具体说明。 1.2.1 文件对象集合
在处理文件时,VBA使用File System Object (FSO) 对象模型,该模型提供了一个基于对象的工具来处理文件夹和文件。FSO对象模型使应用程序能够创建、改变、移动和删除文件夹,或者检测是否存在指定的文件夹。FSO对象文件模型也能获取关于文件夹的信息,诸如名称、创建日期或最近修改日期等。常用的FSO对象有下面几种:
3
(1)FSO对象模型,File System Object对象提供对计算机文件系统的访问。用FSO对象模型
编程首先需要使用Create Object方法创建一个File System Object对象。语法格式如下:
Set fso=Create Object(“Scripting.” File System Object)
(2)Folder对象,Folder对象提供对一个文件夹所有属性的访问。使用File System Object对象的Get Folder方法将返回一个和指定路径中文件夹相对应的Folder对象。 (3)File对象,File对象提供对文件所有属性的访问。 1.2.2 动态数组
所谓动态数组,是指数组的元素个数在程序运行过程中可随时改变。在VBA中使用动态数组需要两个步骤。
步骤1:在过程级声明一个没有维数下标(带空圆括号)的数组。
步骤2:在能确定数组维数下标时,使用ReDim语句定义数组的维数下标。具体语法格式如下: ReDim [Preserve] varname(subscripts)[As type] [,varname(subscripts)[As type]]? 其中:Preserve为可选参数,当改变原有数组最末维的大小时,使用此关键字可以保持数组中原来的数据。
Varname是必需的,指定变量的名称,它应该是前面已经定义过的数组。
2 设计菜单
在Excel中,通过菜单驱动方式来调用各模块,只需要定义菜单名及选择该菜单时将调用的宏代码即可。
2.1 设计菜单结构
执行该系统的程序后,将隐藏Excel原有菜单,只显示自定义设计的菜单。菜单结构图如2—1所示。
图2—1 自定义菜单结构图
每一个菜单都有对应的下拉菜单,通过对下拉菜单的操作实现所需要的功能,其中基础资料和查询下拉菜单结构分别如图2—2,2—3所示。
图2—2 基础资料菜单结构图
4
图2—3 查询菜单结构图
2.2 设计菜单代码
各管理菜单都需要通过相应的代码才能实现其操作,下面将具体对自定义菜单的代码实现进行说明。 2.2.1定义菜单
Excel的VBA环境中没有提供菜单设计器,因此,只有通过输入代码的方式来定义菜单。定义图2—1所示菜单的部分代码如下:
Sub MyBar_Menu() '建立自定义菜单 Dim MyBar As CommandBar On Error Resume Next
Application.CommandBars(\成绩管理\’删除自定义菜单“成绩管理” Set MyBar = CommandBars.Add(Name:=\成绩管理\
MenuBar:=True, temporary:=True, Position:=msoBarTop) '建立\系统\菜单,提供系统打印、保存等功能的自定义菜单
Set MyBar1 = MyBar.Controls.Add(Type:=msoControlPopup) ’建立一个下拉菜单 MyBar1.Caption = \系统(&S) \’设置菜单标题为“系统” Set MyBar11 = MyBar1.Controls.Add(Type:=msoControlButton) With MyBar11
.Caption = \保存(&S)\’设置菜单项的标题为“保存” .Style = msoButtonIconAndCaption
.FaceId = \’设置菜单项的图标 .OnAction = \’设置单击该菜单时调用的子过程 End With 程序说明:
各菜单项的定义代码类似,可采用复制再进行修改的方法来快速录入。程序首先使用语句Application.CommandBars(“成绩管理”).Delete删除名称为“成绩管理”的自定义菜单。程序中通过名称MyBar,MyBar1,MyBar11来判断菜单的结构,其中MyBar为主菜单条,MyBar1为每主菜单条中的菜单项,MyBar11为下拉菜单中的菜单项。创建MyBar菜单条后,通过执行MyBar 对象Controls集合的Add方法可为其添加菜单项,通过指定菜单项的类型为msoControlPopup,定义该菜单为下拉菜单。运用相同原理创建MyBar1的下拉菜单。无论是添加菜单项,还是下拉菜单项,都是调用对象的Add方法。 2.2.2 删除自定义菜单
当系统执行结束时,应当将Excel恢复到最初的状态,需要将自定义菜单删除,并显示Excel的默认菜单。删除自定义菜单的子过程如下:
Sub MyBarDelete() '删除自定义菜单 On Error Resume Next ’设置错误处理 Application.CommandBars(\成绩管理\’删除自定义菜单 Application.DisplayFormulaBar = True ’显示编辑栏 On Error GoTo 0 ’取消错误处理
Application.CommandBars(\’显示标准工具栏
5
Application.CommandBars(\’显示格式工具栏
Application.CommandBars(\’显示系统默认菜单 End Sub 2.2.3 设计菜单调用的子过程
用户单击选择菜单项时,将调用对应的子过程来完成相应的功能,具体步骤有:
步骤a:系统菜单主要调用Excel提供的功能,如保存、打印预览、打印等。其代码如下: Sub SaveSys()
ActiveWorkbook.save ’调用系统的保存方法保存工作簿 End Sub
Sub ExitSys()
ActiveWorkbook.save
Application.Quit ’退出Excel End Sub
Sub 打印预览()
ActiveWindow.SelectedSheets.PrintPreview '打印预览 End Sub Sub 打印()
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True ’打印此工作表 End Sub
步骤b:除系统菜单外,其他菜单需要编写子过程来完成相应的功能,其中部分子过程只需要将对应的窗体显示出来即可。下面是部分子过程的代码,其他子过程将在后面逐步完善。 Sub 设置当前学期()
frmDqxq.Show ’显示当前学期窗体 End Sub
Sub 课程安排()
frmBjkc.Show ’显示课程安排窗体 End Sub
Sub 设置教师姓名()
frmJsxm.Show ’显示教师信 …… 此处隐藏:2966字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]2018年上海市徐汇区中考物理二模试卷(
- [资格考试]坐标转换及方里网的相关问题(椭球体、
- [资格考试]语文教研组活动记录表
- [资格考试]广东省2006年高应变考试试题
- [资格考试]LTE学习总结—后台操作-数据配置步骤很
- [资格考试]北京市医疗美容主诊医师和外籍整形外科
- [资格考试]中学生广播稿400字3篇
- [资格考试]CL800双模站点CDMA主分集RSSI差异过大
- [资格考试]泵与泵站考试复习题
- [资格考试]4个万能和弦搞定尤克里里即兴弹唱(入
- [资格考试]咽喉与经络的关系
- [资格考试]《云南省国家通用语言文字条例》学习心
- [资格考试]标准化第三范式
- [资格考试]GB-50016-2014-建筑设计防火规范2018修
- [资格考试]五年级上册品社复习资料(第二单元)
- [资格考试]2.对XX公司领导班子和班子成员意见建议
- [资格考试]关于市区违法建设情况的调研报告
- 二0一五年下半年经营管理目标考核方案
- 2014年春八年级英语下第三次月考
- 北师大版语文二年级上册第十五单元《松
- 2016国网江苏省电力公司招聘高校毕业生
- 多渠道促家长督导家长共育和谐 - 图文
- 2018 - 2019学年高中数学第2章圆锥曲线
- 竞争比合作更重要( - 辩论准备稿)课
- “案例积淀式”校本研训的实践与探索
- 新闻必须客观vs新闻不必客观一辩稿
- 福师大作业 比较视野下的外国文学
- 新编大学英语第二册1-7单元课文翻译及
- 年产13万吨天然气蛋白项目可行性研究报
- 河南省洛阳市2018届高三第二次统一考试
- 地下车库建筑设计探讨
- 南京大学应用学科教授研究方向汇编
- 2018年八年级物理全册 第6章 第4节 来
- 毕业论文-浅析余华小说的悲悯性 - 以《
- 2019年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介




