本帖最后由 捞屎人 于 2022-11-11 21:54 编辑
新版本支持新高考走班制,剔除了旧版中的条码和准考证功能,优化了部分算法,代码由原来的1800行涨到了2300行。 VBA考场编排系统(走班) 【写在前面:】 如今大家都比较忙(盲), 而大部分人是“盲”得每天花大量时间低效率地完成工作,而不愿意花一点点时间来学习提高自己,使自己今后的工作效率提高十倍……真是忘了那句古话“磨刀不误砍柴工”。机器编排考场的过程和人工编排考场的过程是完全一样的,只不过机器工作效率远高于人手,如果你连人工编排考场的思路都没有,那么你也是无法使用此工具的。建议老师在决定使用此工具前,先在脑子里捋一遍,手动编排考场的具体流程是什么,然后再打开文件,照此文案一步一步往下操作,否则就不用再浪费时间往下读了,这个工具只适合善于思考和学习的人。 【软件介绍:】 我是一名一线教师,从事教务工作多年,学校日常的考试几乎是每月一次,每次考试所需材料包括班级考编、考场门头、桌签等:班级考编,贴在本班教室,用于本班学生查询自己的考场信息;考场门头,贴在考场所对应的班级教室门口,用于本考场考生查看自己的考场信息;桌签,贴于座位上,用于考生查找自己的座位。而以上材料由教务处逐一发放至班主任手中,班主任完成考场布置。这个工作看似简单,但实际操作起来很费时,5000人的考试编排仅仅依靠Excel手动编排需要耗费两小时左右的时间,此方法编排好考场并打印出来的各种资料需要手动分类,这又需要耗费两小时左右的时间,而这都是在操作相对熟练的前提下所耗费的时间,并且容易出错。目前市面上的考场编排系统都是只能自动编排考场,而无法对考编自动分类,本软件恰恰解决了这个些问题,大大提高了工作效率。本考场编排系统是一款功能算不上强大,但是一定算得上短小精悍,运行环境仅需要安装完整版的Office(2013及以上版本)能运行VBA即可,体积1M左右,无需单独安装软件,操作简单,方便快捷,非常好用。 【使用说明:】 一、考场编排 1、准备工作 填写“学生信息”Sheet,其中A列年级、B列班级、D列姓名为必填项,C列考号、E列以后的成绩为选填项,但是表头科目必填。如果是走班制,那么一定存在“选考”科目,所以选考科目必须准确填写,不可为空,而非走班制对分数不敏感。 填写“监考”Sheet,其中A列年级、B列考场、C列教室、D列座位数为必填项。 填写“个人监考”Sheet,其中A列姓名为必填项,B列场次为选填项。 ★注:①如果以教室作为考场,建议以本考场教室所属班级作为教室号。②“学生信息”Sheet中A列年级必须与“监考”Sheet中A列年级命名方式统一,班级不可以出现重名,即使是跨年级的班号也不能重名。 2、考场初始化 在“设置”Sheet中点击“选择科目”按钮,自动弹出选择考试科目表格,黄色区域默认为“必考”,用户可根据具体情况勾选,如果某年级没有“选考”项,那么程序视作该年级为非走班制。 考试名称:可以手动在单元格录入,也可以点击“选择科目”按钮在对话框录入。 考场模式:有三种模式可选,如果选择“按成绩降序”,则需要预先在“学生数据”Sheet中E列之后录入成绩,也可在此列录入随机数序列,或者自定义序列,根据自己需要编排考场,其中技巧可以自行摸索或者和我一起探讨。 生成考号:可以自动生成,也可以使用原有考号,如果选择“使用现有考号”,则需要预先在“数据源”Sheet中C列录入考号,考号不得有重复,且不能为空。 以上准备工作完成后,点击“考场初始”,会提示是否要调整考场人数,建议此时点击“是”跳转到“监考”sheet检查末尾考场人数,将考生过少的考场考生匀到前面的考场,以避免末尾考场只有几考生,增加监考工作量的情况,调整完毕后再次点击“考场初始” 3、考场编排 考场初始化完毕后,可以在对话框内选择是否进行考场编排: 点选“是”直接进行考场编排,生成考场号座位号等。 点选“否”直接回到“设置”Sheet界面等待,此时再点击“编排考场”按钮等同初始化考场结束后点选“是”。 ★注:点击“考场编排”按钮之前必须进行考场初始化。 4生成考编 考场编排完毕后,可以在对话框内选择是否生成考编: 点选“是”直接生成编排,生成“班级”“考场”“桌签”三个Sheet。 点选“否”直接回到“设置”Sheet界面等待, 此时再点击“生成编排”按钮等同初考场编排结束后点选“是”。 ★注:生成考编完毕后如果不需要对班级考编、考场门头、桌签进行分类,此时可以直接将生成的“班级”“考场”“桌签”三个Sheet打印输出了,但是不推荐此时打印。 4、拆分考编 生成考编结束后,点击“拆分考编”,将“班级”“考场”“桌签”三个Sheet分别按班级和考场拆分成单个Sheet存放于新生成的工作簿中,最后询问是否按顺序排列好每个Sheet。 拆分考编完毕以后会弹出对话框选择是否导出“PDF” 点选“是”直接将拆分好的工作簿导出为PDF保存于当前目录。 点选“否”继续回到“设置”Sheet界面等待,此时再点击“导出PDF”按钮等同考编拆分结束后点选“是”;如果不想导出PDF文件,也可以在新生成的工作簿中直接打印,打印范围选取“整个工作簿”即可。 ★注:考编拆分后的排列规则:如高二1班教室作为1考场,高二2班教室作为2考场(此对应关系在“监考”Sheet中设置)……那么高二1班的班主任需要获得的考场资料有高二1班班级考编、1考场门头、1考场桌签,所以这三个Sheet拆分出来是挨在一起的,紧随其后的是高二2班班主任需要获得的考场资料,依旧以此规则排列。 二、监考编排 1、监考初始化 在“设置”Sheet中点击“监考初始”按钮,之前需要在“设置”Sheet中录入监考模式。 监考初始化完毕后,“设置”Sheet中生成“监考人数”表格,部分数据已默认填写,用户需要根据实际情况录入每个年级对应科目的监考人数以及每场考试时长,仅支持0-2人监考,考试时长以分钟为单位。全部填写0视作该场考试无人监考,而编排监考可能是各个年级自行安排,比如说高二年级组长只排高二的监考,那么他可以把其他年级考场监考人数和时间都设为0。 3、监考编排 在“设置”Sheet中点击“监考编排”按钮,自动生成监考表和个人监考表,生成的监考表可能会出现个别冲突,程序会有提示,用户可以选择再次编排,也可以忽略提示,然后手动调节直至不冲突。 生成的“监考”Sheet可以手动调整,调整方法为,按住CTRL键依次点选需要对调的两个监考员,然后点击“对调”按钮即可完成调整。点选某监考员,其全部监考会被标记紫色,“监考”Sheet中出现冲突字体会标红。 生成的“监考”Sheet的同时会生成“个人监考”Sheet,手工调整好“监考”Sheet后,务必点击“个人监考”按钮刷新“个人监考”sheet。 “个人监考”sheet中的“重排监考”功能是通过不断枚举调整尽可能使每个人监考时长差距变小。 【版权说明:】 欢迎大家将使用中遇到的Bug或需要完善改进的问题及时反馈于我。 本人数学专业,非计算机专业,做这个纯属个人热情爱好,所以选用VBA完成。 涛哥 2022年8月29日
|