第九章 排课摸版
? 9.1 功能特点
? 9.2,信息”工作表
? 9.3“总表”工作表
? 9.4,教师”工作表
? 9.5,教室”工作表
? 9.6,班级”工作表
? 9.7,空节”提示
? 9.8 使用方法
功能特点
? 用计算机排课表,一方面可以减轻教学管理人员的工
作负担,同时也可以避免冲突,减少差错,提高效率。
特别是多教室统一排课,同一教师上多门课,班级、
课程较多,以及需要串课的情况,用计算机排课就更
显示出优越性。
? 本排课模板的基本指导思想是利用已有的、大家都熟
悉的办公软件,做出一个实用的计算机辅助排课工具,
而不是做一个庞大的、完全自动的专用排课软件。设
计的目标是实用。本排课模板正是基于这样一种思想
设计的
主要特点
1.直接利用 Excel环境,使用 Excel的所有功能。
2.直接对课程总表的内容进行人工输入、修改、编
排,系统此时作用是自动进行教师、教室冲突检查和
提醒。
3.总表排好后,接下来每位教师的课表、每个教室
的课表、每个班级的课表由系统自动生成,课表的修
饰、复制、打印也由计算机来做。
4.最后,当某位教师、某个班级或教室需要串课时,
可利用系统的空闲课节自动标识、在线提示功既准确,
又迅速。 结束返回
9.2,信息”工作表
? 整个排课模板是一个工作簿,
工作簿由如下工作表组成:
? 信息、教师、教室、班级、总
表 1、总表 2、总表 3,…… 。
?,信息”工作表的 A列将所有
任课教师名列于此处,B列列
出所有教室名称,便于查看和
选择,C2单元格是实际使用的
总表数。,信息”工作表的 A、
B,C三列如图 9.1所示。
返回
9.3“总表”工作表
? 模板中预定义了“总表 1”、,2”,……,
“总表 10”十个总表工作表(如果需要可
增 删)每个总表可排四个班级的课表,
各 个总表的结构和格式完全一样,因
此我们只 需设计一个,其余的通过复制
产生。
返回
? 9.4.1 工作表设计
? 9.4.2,刷新课表”代码
? 9.4.3“模块 1”定义
? 9.4.4,清除颜色”命令按钮代码
? 9.4.5,复制副本”命令按钮代码
章目录
9.4.1 工作表设计
? 用“插入”菜单的“工作表”项在工作簿中插入一个工作
表,重命名为“教师”。这个工作表用来生成每位教师的
课程表。
? 定义纸型、设置页边距、设置表格样式、设置单元格格式、
设置列宽度、设置行高度。得到如图9,2所示的效果。
? 打开“控件工具箱”工具栏,在教师课表的右侧添加一个
标签、一个组合框和三个命令按钮,标签的名称设置为
“教师”,命令按钮的 caption属性分别设置为“刷新课
表”、“清除颜色”和“复制副本”,组合框的内容在工
作簿 Workbook的 Open事件中通过代码添加。 9,2
9.4.2,刷新课表, 代码
? 单击, 教师, 工作表中, 刷新课表, 按
钮,产生 Click事件,编写代码。
? 该过程首先从组合框中取出当前选择的
教师名,送到教师课表的左上角作为提
示。然后,将教师课表原有的内容清除。
接下来,在所指定的总表中,搜索指定
的教师名,并把开课班级、课程名称、
教室按星期和节次填入教师课表特定的
单元格。
节目录
返回
9.4.3“模块 1”定义
? 在当前工程 VBAProject中,选择“插入”菜单的“模块”项,
插入一个通用模块,用默认名“模块 1”。
? 在“模块 1”中,首先用下面语句声明两个全局变量:
? Public msg As String '可利用课节提示
? Public zbs As String '实际使用的总表数
? 然后,定义四个过程:
? fc——设置空闲单元格为蓝色背景并将提示信息送全局变量
msg。
? sc——设置“教师”工作表“实验课”单元格为绿色背景。
? cc——清除单元格蓝色背景。
? f_last——从右边开始在字符串 s1中查找单个字符 s2第二次
出现的位置。
节目录
返回
1.过程 fc
? fc的功能是将指定教师、教室、班级课表同时为“空节”单元格置
成蓝色背景,同时将提示信息送全局变量 msg,供另一个过程引用。
首先置 msg初值,然后分别取出“教师”、“教室”、“班级”
三个工作表对应单元格的值,如果三个工作表对应的单元格均为空,
则置蓝色背景,同时添加相应的提示信息。如果三个工作表对应的
单元格不全为空,则置白色背景。这样,“空节”一目了然。编写
代码。
2.过程 sc
sc的作用是设置“教师”工作表“实验课”单元格的背景为绿色,
使实验课与理论课有直观的区别。它对教师课表的格单元格内容进
行判断,如果含有“实验”字样,则置浅绿色背景,否则置白色背
景。编码
3.过程 cc
? cc用来清除单元格蓝色背景颜色。它对教师课程表的内容进行检查,
如果教师课表单元格为空白,则设置“教师”、“教室”、“班级”
三个工作表对应单元格为白色背景。编写代码。
4.过程 f_last
? f_last是一个自定义函数,功能是从右边开始在字符串 s1中查找单
个字符 s2第二次出现的位置,如 s1中没有 s2,则返回 0。编写编码。
9.4.4,清除颜色, 命令按钮代码
? 在“清除颜色”命令按钮
CommandButton1的 Click事件中,直接
调用前面定义的 cc过程,清除单元格蓝色
背景颜色,目的是防止打印出带有深色背景
单元格的课表。
节目录
返回
9.4.5,复制副本, 命令按钮代码
? 为了提高纸张利用率,一页纸可以打印一式两份教师课表,单击“复
制副本”命令按钮,通过下面代码即可完成此功能。
? Private Sub CommandButton3_Click()
Range("A1:F11").Select '选中区域
Selection.Copy '复制
Range("A14").Select '选择单元格
ActiveSheet.Paste '粘贴
Application.CutCopyMode = False '取消剪切板内容
Range("G1").Select '定位光标
? End Sub
? 在建立了前面三个课程总表的前提下,选择“教师”工作表,在组
合框中选择“教师 P”,然后单击“刷新课表”按钮,系统便自动生成
“教师 P”的课程表。
? 单击“清除颜色”按钮,将清除课表中蓝色背景。
? 单击“复制副本”按钮,系统将复制一份同样的课表。 返回
节目录
? 9.5.1 工作表设计
? 9.5.2,刷新课程”按钮代码
章目录
工作 9.5.1表设计
?,教室”工作表的主要功能是根据各个“总表”
生成指定教室的课程表。工作表的控件和格式
设计与“教师”工作表基本相同,不再赘述
? 组合框的内容在工作簿 Workbook的 Open事
件中通过代码添加。编写相关代码。
节目录
返回
9.5.2,刷新课程, 按钮代码
? 单击“教室”工作表中“刷新课表”按钮,产生 Click
事件,编写相关代码。
? 该过程首先从组合框中取出当前选择的教室名,送到
教室课表的左上角作为提示。然后,将教室课表原有
的内容清除。接下来,在所指定的总表中,搜索指定
的教室名,并把开课班级、课程名称、教师按星期和
节次填入教室课表特定的单元格。
?,清除颜色”、“复制副本”命令按钮的代码与
“教师”工作表相同。
? 在建立了前面的三个课程总表的前提下,选择“教室”
工作表,在组合框中选择,5201”,然后单击“刷新
课表”按钮,系统便自动生成,5201”教室的课程表。
? 单击“清除颜色”按钮,将清除课表中蓝色背景。
? 单击“复制副本”按钮,系统将复制一份同样的课表。 返回
节 目录
? 9.6.1 工作表设计
? 9.6.2,刷新课程”按钮代码
章目路
9.6.1 工作表设计
?,班级”工作表的主要功能是根据各个“总表”
生成指定班级的课程表。工作表的控件和格式
设计与“教师”工作表基本相同,不再赘述
? 组合框的内容在工作簿 Workbook的 Open事件
中通过代码添加。编写相关代码。
节目录
返回
9.6.2,刷新课程”按钮代码
? 单击“班级”工作表中“刷新课表”按钮,产生 Click事件,编写
相关代码。
? 该过程首先从组合框中取出当前选择的班级名,送到班级课表的
左上角作为提示。然后,将班级课表原有的内容清除。接下来,
在所指定的总表中,搜索指定的班级名,并把课程名称、教室、
教师按星期和节次填入教室课表特定的单元格。最后,用自定义 函数 fc设置空闲单元格(即该教室可利用的课节)颜色,用自定
义函数 sc设置“实验课”单元格颜色,以做标识,并删除以前建
立的教室课表副本。
?,清除颜色”、“复制副本”命令按钮的代码与“教师”工作
表相同。
? 在建立了前面的三个课程总表的前提下,选择“班级”工作表,
在组合框中选择“九七本”,然后单击“刷新课表”按钮,系统 便自动生成“九七本”班级的课程表。
? 单击“清除颜色”按钮,将清除课表中蓝色背景。
? 单击“复制副本”按钮,系统将复制一份同样的课表。 返回
节目录
9.7,空节”提示
? 如前所述,在“模块 1”中,我们定义了过程 fc,它除
了将指定教师、教室、班级课表中同时为“空节”的
单元格置成蓝色背景颜色外,还将提示信息送全局变
量 msg。
? 为了能够在当前工作簿的任意一个工作表上双击鼠标,
弹出一个对话框,提示可用课节,我们对 Workbook的
SheetBeforeDoubleClick事件编写如下代码:
? Private Sub Workbook_SheetBeforeDoubleClick( )
? MsgBox msg,vbInformation,"提示 "
? End Sub
? 这样,输入或修课程表的任意时刻,双击工作表的任
意单元格,就可以弹出提示空节的对话框。
返回
9.8 使用方法
? 1.双击 "排课模板,XLT"文件。如果出现对话框,单击 "启用宏 "按钮。
? 2.首次使用,先在“信息”工作表中设置“教师”、“教室”和“总表数”
总表数”按实际使用数填写。保存为工作簿,退出,再重新编辑新
的工作簿。
? 3.将各“总表”中标记为绿色的内容选中、删除。然后,在“总表”中
入排课信息。
? 注意
①教师、教室名应与 "信息 "中设置的一致;
②如果一个单元格有多项内容(多门课、多教室、多教师),中间
要输入 硬回车(用 Alt+回车键);
③所有单元格的内容尽量压缩(括号、星号等用半角符号);
④在任意工作表上双击,可显示“空节”提示信息,回车或单击“确
定
"继续;
⑤常用编辑键,F2修改单元个内容,Ctrl+C复制(可多单元格),
Ctrl+X剪切; Ctrl+V粘贴;
⑥工作簿、工作表的结构以及标记为红色的内容不可更改;
⑦实验课中 "实验 "两字不要省略;
⑧如果教师、教室有冲突,系统进行提示; 返回
? 9.1 功能特点
? 9.2,信息”工作表
? 9.3“总表”工作表
? 9.4,教师”工作表
? 9.5,教室”工作表
? 9.6,班级”工作表
? 9.7,空节”提示
? 9.8 使用方法
功能特点
? 用计算机排课表,一方面可以减轻教学管理人员的工
作负担,同时也可以避免冲突,减少差错,提高效率。
特别是多教室统一排课,同一教师上多门课,班级、
课程较多,以及需要串课的情况,用计算机排课就更
显示出优越性。
? 本排课模板的基本指导思想是利用已有的、大家都熟
悉的办公软件,做出一个实用的计算机辅助排课工具,
而不是做一个庞大的、完全自动的专用排课软件。设
计的目标是实用。本排课模板正是基于这样一种思想
设计的
主要特点
1.直接利用 Excel环境,使用 Excel的所有功能。
2.直接对课程总表的内容进行人工输入、修改、编
排,系统此时作用是自动进行教师、教室冲突检查和
提醒。
3.总表排好后,接下来每位教师的课表、每个教室
的课表、每个班级的课表由系统自动生成,课表的修
饰、复制、打印也由计算机来做。
4.最后,当某位教师、某个班级或教室需要串课时,
可利用系统的空闲课节自动标识、在线提示功既准确,
又迅速。 结束返回
9.2,信息”工作表
? 整个排课模板是一个工作簿,
工作簿由如下工作表组成:
? 信息、教师、教室、班级、总
表 1、总表 2、总表 3,…… 。
?,信息”工作表的 A列将所有
任课教师名列于此处,B列列
出所有教室名称,便于查看和
选择,C2单元格是实际使用的
总表数。,信息”工作表的 A、
B,C三列如图 9.1所示。
返回
9.3“总表”工作表
? 模板中预定义了“总表 1”、,2”,……,
“总表 10”十个总表工作表(如果需要可
增 删)每个总表可排四个班级的课表,
各 个总表的结构和格式完全一样,因
此我们只 需设计一个,其余的通过复制
产生。
返回
? 9.4.1 工作表设计
? 9.4.2,刷新课表”代码
? 9.4.3“模块 1”定义
? 9.4.4,清除颜色”命令按钮代码
? 9.4.5,复制副本”命令按钮代码
章目录
9.4.1 工作表设计
? 用“插入”菜单的“工作表”项在工作簿中插入一个工作
表,重命名为“教师”。这个工作表用来生成每位教师的
课程表。
? 定义纸型、设置页边距、设置表格样式、设置单元格格式、
设置列宽度、设置行高度。得到如图9,2所示的效果。
? 打开“控件工具箱”工具栏,在教师课表的右侧添加一个
标签、一个组合框和三个命令按钮,标签的名称设置为
“教师”,命令按钮的 caption属性分别设置为“刷新课
表”、“清除颜色”和“复制副本”,组合框的内容在工
作簿 Workbook的 Open事件中通过代码添加。 9,2
9.4.2,刷新课表, 代码
? 单击, 教师, 工作表中, 刷新课表, 按
钮,产生 Click事件,编写代码。
? 该过程首先从组合框中取出当前选择的
教师名,送到教师课表的左上角作为提
示。然后,将教师课表原有的内容清除。
接下来,在所指定的总表中,搜索指定
的教师名,并把开课班级、课程名称、
教室按星期和节次填入教师课表特定的
单元格。
节目录
返回
9.4.3“模块 1”定义
? 在当前工程 VBAProject中,选择“插入”菜单的“模块”项,
插入一个通用模块,用默认名“模块 1”。
? 在“模块 1”中,首先用下面语句声明两个全局变量:
? Public msg As String '可利用课节提示
? Public zbs As String '实际使用的总表数
? 然后,定义四个过程:
? fc——设置空闲单元格为蓝色背景并将提示信息送全局变量
msg。
? sc——设置“教师”工作表“实验课”单元格为绿色背景。
? cc——清除单元格蓝色背景。
? f_last——从右边开始在字符串 s1中查找单个字符 s2第二次
出现的位置。
节目录
返回
1.过程 fc
? fc的功能是将指定教师、教室、班级课表同时为“空节”单元格置
成蓝色背景,同时将提示信息送全局变量 msg,供另一个过程引用。
首先置 msg初值,然后分别取出“教师”、“教室”、“班级”
三个工作表对应单元格的值,如果三个工作表对应的单元格均为空,
则置蓝色背景,同时添加相应的提示信息。如果三个工作表对应的
单元格不全为空,则置白色背景。这样,“空节”一目了然。编写
代码。
2.过程 sc
sc的作用是设置“教师”工作表“实验课”单元格的背景为绿色,
使实验课与理论课有直观的区别。它对教师课表的格单元格内容进
行判断,如果含有“实验”字样,则置浅绿色背景,否则置白色背
景。编码
3.过程 cc
? cc用来清除单元格蓝色背景颜色。它对教师课程表的内容进行检查,
如果教师课表单元格为空白,则设置“教师”、“教室”、“班级”
三个工作表对应单元格为白色背景。编写代码。
4.过程 f_last
? f_last是一个自定义函数,功能是从右边开始在字符串 s1中查找单
个字符 s2第二次出现的位置,如 s1中没有 s2,则返回 0。编写编码。
9.4.4,清除颜色, 命令按钮代码
? 在“清除颜色”命令按钮
CommandButton1的 Click事件中,直接
调用前面定义的 cc过程,清除单元格蓝色
背景颜色,目的是防止打印出带有深色背景
单元格的课表。
节目录
返回
9.4.5,复制副本, 命令按钮代码
? 为了提高纸张利用率,一页纸可以打印一式两份教师课表,单击“复
制副本”命令按钮,通过下面代码即可完成此功能。
? Private Sub CommandButton3_Click()
Range("A1:F11").Select '选中区域
Selection.Copy '复制
Range("A14").Select '选择单元格
ActiveSheet.Paste '粘贴
Application.CutCopyMode = False '取消剪切板内容
Range("G1").Select '定位光标
? End Sub
? 在建立了前面三个课程总表的前提下,选择“教师”工作表,在组
合框中选择“教师 P”,然后单击“刷新课表”按钮,系统便自动生成
“教师 P”的课程表。
? 单击“清除颜色”按钮,将清除课表中蓝色背景。
? 单击“复制副本”按钮,系统将复制一份同样的课表。 返回
节目录
? 9.5.1 工作表设计
? 9.5.2,刷新课程”按钮代码
章目录
工作 9.5.1表设计
?,教室”工作表的主要功能是根据各个“总表”
生成指定教室的课程表。工作表的控件和格式
设计与“教师”工作表基本相同,不再赘述
? 组合框的内容在工作簿 Workbook的 Open事
件中通过代码添加。编写相关代码。
节目录
返回
9.5.2,刷新课程, 按钮代码
? 单击“教室”工作表中“刷新课表”按钮,产生 Click
事件,编写相关代码。
? 该过程首先从组合框中取出当前选择的教室名,送到
教室课表的左上角作为提示。然后,将教室课表原有
的内容清除。接下来,在所指定的总表中,搜索指定
的教室名,并把开课班级、课程名称、教师按星期和
节次填入教室课表特定的单元格。
?,清除颜色”、“复制副本”命令按钮的代码与
“教师”工作表相同。
? 在建立了前面的三个课程总表的前提下,选择“教室”
工作表,在组合框中选择,5201”,然后单击“刷新
课表”按钮,系统便自动生成,5201”教室的课程表。
? 单击“清除颜色”按钮,将清除课表中蓝色背景。
? 单击“复制副本”按钮,系统将复制一份同样的课表。 返回
节 目录
? 9.6.1 工作表设计
? 9.6.2,刷新课程”按钮代码
章目路
9.6.1 工作表设计
?,班级”工作表的主要功能是根据各个“总表”
生成指定班级的课程表。工作表的控件和格式
设计与“教师”工作表基本相同,不再赘述
? 组合框的内容在工作簿 Workbook的 Open事件
中通过代码添加。编写相关代码。
节目录
返回
9.6.2,刷新课程”按钮代码
? 单击“班级”工作表中“刷新课表”按钮,产生 Click事件,编写
相关代码。
? 该过程首先从组合框中取出当前选择的班级名,送到班级课表的
左上角作为提示。然后,将班级课表原有的内容清除。接下来,
在所指定的总表中,搜索指定的班级名,并把课程名称、教室、
教师按星期和节次填入教室课表特定的单元格。最后,用自定义 函数 fc设置空闲单元格(即该教室可利用的课节)颜色,用自定
义函数 sc设置“实验课”单元格颜色,以做标识,并删除以前建
立的教室课表副本。
?,清除颜色”、“复制副本”命令按钮的代码与“教师”工作
表相同。
? 在建立了前面的三个课程总表的前提下,选择“班级”工作表,
在组合框中选择“九七本”,然后单击“刷新课表”按钮,系统 便自动生成“九七本”班级的课程表。
? 单击“清除颜色”按钮,将清除课表中蓝色背景。
? 单击“复制副本”按钮,系统将复制一份同样的课表。 返回
节目录
9.7,空节”提示
? 如前所述,在“模块 1”中,我们定义了过程 fc,它除
了将指定教师、教室、班级课表中同时为“空节”的
单元格置成蓝色背景颜色外,还将提示信息送全局变
量 msg。
? 为了能够在当前工作簿的任意一个工作表上双击鼠标,
弹出一个对话框,提示可用课节,我们对 Workbook的
SheetBeforeDoubleClick事件编写如下代码:
? Private Sub Workbook_SheetBeforeDoubleClick( )
? MsgBox msg,vbInformation,"提示 "
? End Sub
? 这样,输入或修课程表的任意时刻,双击工作表的任
意单元格,就可以弹出提示空节的对话框。
返回
9.8 使用方法
? 1.双击 "排课模板,XLT"文件。如果出现对话框,单击 "启用宏 "按钮。
? 2.首次使用,先在“信息”工作表中设置“教师”、“教室”和“总表数”
总表数”按实际使用数填写。保存为工作簿,退出,再重新编辑新
的工作簿。
? 3.将各“总表”中标记为绿色的内容选中、删除。然后,在“总表”中
入排课信息。
? 注意
①教师、教室名应与 "信息 "中设置的一致;
②如果一个单元格有多项内容(多门课、多教室、多教师),中间
要输入 硬回车(用 Alt+回车键);
③所有单元格的内容尽量压缩(括号、星号等用半角符号);
④在任意工作表上双击,可显示“空节”提示信息,回车或单击“确
定
"继续;
⑤常用编辑键,F2修改单元个内容,Ctrl+C复制(可多单元格),
Ctrl+X剪切; Ctrl+V粘贴;
⑥工作簿、工作表的结构以及标记为红色的内容不可更改;
⑦实验课中 "实验 "两字不要省略;
⑧如果教师、教室有冲突,系统进行提示; 返回