第十章教学工作量统计模板 101设计目标 105“院课”工作表设 让 10.2“总表”工作表 结构设计 10.6“系课”工作表设 10.3工作簿代码设让 让 104“总表”工作表代1074实验课”工作表 码 设计 10.8使用说明
第十章 教学工作量统计模板 ▪ 10.1 设计目标 ▪ 10.2 “总表”工作表 结构设计 ▪ 10.3 工作簿代码设计 ▪ 10.4“总表”工作表代 码 ▪ 10.5 “院课”工作表设 计 ▪ 10.6 “系课”工作表设 计 ▪ 10.7 “实验课”工作表 设计 ▪ 10.8 使用说明
101设计目标 ■本章介绍一个针对于高等学校的教学工作量统计模板,它 用来统计教师各教学环节的课时数和课时费等。其设计目 标 以系为单位,按学期或学年,输入或修改每位教师各门 课各教学环节的教学工作量基本数据 2.对各教学环节按一定算法写出计算公式并计算出结果。 ■3.求出每位教师的教学工作量总学时,并根据不同职称的 课时费标准计算出课时费 4.求出整个单位的工作量合计、课时费合计等数据。 ■5.在“总表”基础上,产生出“系内课”、“学院课”和 “实验课”教学工作量分表 ■6.工作量算法在线提示。 ■7.打印输出 只需在“总表”中输入基本数据,公式自动填入,计算自 动完成,分表自动产生
10.1 设计目标 ◼ 本章介绍一个针对于高等学校的教学工作量统计模板,它 用来统计教师各教学环节的课时数和课时费等。其设计目 标为: ◼ 1.以系为单位,按学期或学年,输入或修改每位教师各门 课各教学环节的教学工作量基本数据。 ◼ 2.对各教学环节按一定算法写出计算公式并计算出结果。 ◼ 3.求出每位教师的教学工作量总学时,并根据不同职称的 课时费标准计算出课时费。 ◼ 4.求出整个单位的工作量合计、课时费合计等数据。 ◼ 5.在“总表”基础上,产生出“系内课”、“学院课”和 “实验课”教学工作量分表。 ◼ 6.工作量算法在线提示。 ◼ 7.打印输出。 ◼ 只需在“总表”中输入基本数据,公式自动填入,计算自 动完成,分表自动产生
10.2“总表”工作表结构设计 令整个教学工作量统计模板是一个工作簿,包含 “信息”、“总表”、“院课”、“系课”和 “实验课”五个工作表。“信息”工作表内容比 较简单,只有各级职称课时费标准和使用说明 “总表”是核心,是信息的基础。“院课” “系课”和“实验课”在总表的基础上由系统生 成
10.2 “总表”工作表结构设计 ❖ 整个教学工作量统计模板是一个工作簿,包含 “信息”、“总表”、“院课”、“系课”和 “实验课”五个工作表。“信息”工作表内容比 较简单,只有各级职称课时费标准和使用说明。 “总表”是核心,是信息的基础。“院课”、 “系课”和“实验课”在总表的基础上由系统生 成
“总表”的格式如图10.1所示 A B C DE FGHI 0 PQ R S 教师教学工作量统计表 、技术,听力提 姓名职称课程名称 学组总学时 实验宝 洁除汇总 ■页面设置:定义纸张大小为A4,横向。上下左右页边距分别为1、1、 0.9、0.9。 ■单元格格式设置:学时、课时费的数值为1位小数,其余列数字作为 文字处理。学时、课时费水平靠右,其余居中。垂直居中。标题为 “宋体”16号字,其余为“宋体”9号字。字体控制设置为缩小字体 充 行高度设置:5-200行,用“格式行行高”菜单,设置行高为12 其余行按实际情况手动调整。列宽度参照图10.1手动调整。宽度的 调整要保证AB列在页边距之内,而AC列在页边距之外(以使打印时 将其排除在页外) ■表格项目的填写说明和工作量算法说明等信息以批注的形式给出, 查阅方便,形式直观。图102、图10.3是关于理论课总学时和实验课
“总表”的格式如图10.1所示 ◼ 页面设置:定义纸张大小为A4,横向。上下左右页边距分别为1、1、 0.9、0.9。 ◼ 单元格格式设置:学时、课时费的数值为1位小数,其余列数字作为 文字处理。学时、课时费水平靠右,其余居中。垂直居中。标题为 “宋体”16号字,其余为“宋体”9号字。字体控制设置为缩小字体 充。 ◼ 行高度设置:5-200行,用“格式|行|行高”菜单,设置行高为12, 其余行按实际情况手动调整。列宽度参照图10.1手动调整。宽度的 调整要保证AB列在页边距之内,而AC列在页边距之外(以使打印时 将其排除在页外)。 ◼ 表格项目的填写说明和工作量算法说明等信息以批注的形式给出, 查阅方便,形式直观。图10.2、图10.3是关于理论课总学时和实验课 总学时的批注。表头右上角中带三角标记的均有批注信息
l0A:111图A:11310:01 本骨量计学时 髒断醣翻时冰喲 :割 款顺以肉判:o開開開 開喲 1:款8H 打开“控件工具箱”工具栏,在工作表的右侧添 加两个命令按钮,命令按钮的 caption属性分别 置为“排序求和”和“清除汇总” 返回
◼ 打开“控件工具箱”工具栏,在工作表的右侧添 加两个命令按钮,命令按钮的caption属性分别设 置为“排序求和”和“清除汇总”。 图10.2 返回
103工作簿代码设计 」工作簿中“总表”以及其它各工作表单元格内容发生变化 时,系统应自动填写或计算相应值。为此,我们应对当前 工作簿 Workbook0k的 SheetChange事件编写代码 编写代码首先求出当前表名、当前单元格地址,并从当前 单元格地址中分解出列名和行号。 」“总表”中输入基本信息和系统自动填入的结果如图10.4 所示。 JKL"10 PQRS T U V餐Xy 教师教学工作量统计表 一实实技本听力 职课程名称 总学时 组总学时 m翻 实验置挂序求和 還931-2 +(B4+[的43/092L B8E213[b32 系
10.3 工作簿代码设计 ◼ 工作簿中“总表”以及其它各工作表单元格内容发生变化 时,系统应自动填写或计算相应值。为此,我们应对当前 工作簿Workbook的SheetChange事件编写代码: ◼ 编写代码首先求出当前表名、当前单元格地址,并从当前 单元格地址中分解出列名和行号。 ◼ “总表”中输入基本信息和系统自动填入的结果如图10.4 所示
各级职称的课时费 A 标准在“信息”工 2积称/(课时费 准 教 30 4副教授25 5讲师」2 表中设置情况如图 6助教20 10.5所示
各级职称的课时费 标准在“信息”工 作 表中设置情况如图 10.5所示。 返回
104“总表”工作表代码 前面提到,“总表”工作表上定义了两个命令按钮:“排序求和”和“清 除汇总 “排序求和”命令按钮的Cick事件代码如下: Private Sub Command Button1 Click Call sort sum End Sub 令它调用通用模块(模块1)中的过程 sort sum对当前工作表按“教师”排序 求各教师工作量小计和总计信息 通用模块的建立方法是:在当前工程 VBAProject'中,选择“插入”菜单的 模块”项,插入一个通用模块,用默认名“模块1”。 sort sum是在模块1中定义的过程之一,编写代码在这个过程中。 首先判断“A5”单元格是否有值,若无值则提示“无数据”并 退出。再査找A列中是否有“总工作量”字样,若有,说明该表已经进行 “排序求和”,也退出。 令其次,按教师姓名排序,设置教师总学时边框横线(因为有的可能被删除 过)。求各位教师工作量小计和课时费。方法是从5行到“教师名为空”循 环,若教师未改变,则教师学时累加,否则,累加教师人数、填写教师 总学时、总课时费、删除教师总学时和教师总课时费边框中间横线 最后,插入一个汇总行,填入总工作量、教授丁作量、副教授工作量
10.4“总表”工作表代码 ❖ 前面提到,“总表”工作表上定义了两个命令按钮:“排序求和”和“清 除汇总 “ “排序求和”命令按钮的Click事件代码如下: ❖ Private Sub CommandButton1_Click() Call sort_sum End Sub ❖ 它调用通用模块(模块1)中的过程sort_sum对当前工作表按“教师”排序、 求各教师工作量小计和总计信息。 ❖ 通用模块的建立方法是:在当前工程VBAProject中,选择“插入”菜单的 “ 模块”项,插入一个通用模块,用默认名“模块1”。 ❖ sort_sum是在模块1中定义的过程之一,编写代码在这个过程中。 ❖ 首先判断“A5”单元格是否有值,若无值则提示“无数据”并 退出。再查找A列中是否有“总工作量”字样,若有,说明该表已经进行 了 “排序求和”,也退出。 ❖ 其次,按教师姓名排序,设置教师总学时边框横线(因为有的可能被删除 过)。求各位教师工作量小计和课时费。方法是从5行到“教师名为空”循 环,若教师未改变,则教师学时累加,否则,累加教师人数、填写教师 总学时、总课时费、删除教师总学时和教师总课时费边框中间横线。 ❖ 最后,插入一个汇总行,填入总工作量、教授工作量、副教授工作量、 讲师工作量、助教工作量、总课时费、教师人数等汇总信息,并插入符。 “总表”中“排序求和”代码执行后的情形如图10.6所示
C DE FGH 教师教学工作量统计表 单位:计算 提技听力扮导我导北导公选学术 学时 类到实验排序求和 汇语 41403106°) 3134 3o22o66 清除汇越 6324 中心 丁作:16 斗 数工作量:G 时:323166 灵数!6 。总表中“清除汇总”命令按钮的 Click事件代码如下: .o Private Sub CommandButton2 Click Call dele r End sub 令它调用通用模块(模块1)中的过程dele_r清除当前工作表中汇总行和分 页符。以便增删教师教学工作量信息 令对过程 dele r编写代码。 令过程 dele r从当前工作表第5行开始搜索“总工作量”所在行,如果找到, 则删除该行,并删除其后的分页符 令单击“总表”工作表的“清除汇总”按钮,执行dee「过程后,“总表” 恢复到图10.4的情形。 返回
❖ 总表中“清除汇总”命令按钮的Click事件代码如下: ❖ Private Sub CommandButton2_Click() Call dele_r End Sub ❖ 它调用通用模块(模块1)中的过程dele_r清除当前工作表中汇总行和分 页符。以便增删教师教学工作量信息。 ❖ 对过程dele_r编写代码。 ❖ 过程dele_r从当前工作表第5行开始搜索“总工作量”所在行,如果找到, 则删除该行,并删除其后的分页符。 ❖ 单击“总表”工作表的“清除汇总”按钮,执行dele_r过程后,“总表” 恢复到图10.4的情形。 返回
10.5“院课”工作表设计 令“院课”工作表,用来填写和统计课程类别为“院”(即学院计划内) 教学任务的工作量。该工作表的结构和格式除了增加一个“刷新数据” 命令按钮外,与“总表”工作表相同,可由“总表”复制产生 “院课”工作表的“排序求和”和“清除汇总”两个命令按钮的代 码与“总表”中同名的两个命令按钮代码相同,即分别调用“模块1” 的 sort sum和 dele r过程 “刷新数据”命令按钮的 Click事件代码为 Private Sub Command Button3 Click Call dele r Call copy_y End Sub 它首先调用模块1中的过程 dele r删除当前工作表中汇总行和分页符, 然后再调用模块1中的过程 copy_y将“总表”中“课程类别”为“院 的数据复制到“院课”工作表 令注意:“刷新数据”必须通过调用公用模块的过程实现在不同工作表 间数据的复制和粘贴,否则复制合粘贴无效 ◇对模块1中的过程 copy y编写编码。 ☆程序段先清除当前工作表(即“院课”工作表)5-200行的内容,然 后从“总表”工作表第5行到教师姓名不为空循环,如果课程类别为 “院”,则将该行复制到当前工作表
10.5 “院课”工作表设计 ❖ “院课”工作表,用来填写和统计课程类别为“院”(即学院计划内) 教学任务的工作量。该工作表的结构和格式除了增加一个“刷新数据” 命令按钮外,与“总表”工作表相同,可由“总表”复制产生。 ❖ “院课”工作表的“排序求和”和“清除汇总”两个命令按钮的代 码与“总表”中同名的两个命令按钮代码相同,即分别调用“模块1” 的sort_sum和dele_r过程。 ❖ “刷新数据”命令按钮的Click事件代码为: Private Sub CommandButton3_Click() Call dele_r Call copy_y End Sub ❖ 它首先调用模块1中的过程dele_r删除当前工作表中汇总行和分页符, 然后再调用模块1中的过程copy_y将“总表”中“课程类别”为“院” 的数据复制到“院课”工作表。 ❖ 注意:“刷新数据”必须通过调用公用模块的过程实现在不同工作表 间数据的复制和粘贴,否则复制合粘贴无效。 ❖ 对模块1中的过程copy_y编写编码。 ❖ 程序段先清除当前工作表(即“院课”工作表)5-200行的内容,然 后从“总表”工作表第5行到教师姓名不为空循环,如果课程类别为 “院”,则将该行复制到当前工作表