Word试题自动阅卷实现

2020-06-09 12:20朱彦廷
软件 2020年2期
关键词:计算机基础

朱彦廷

摘  要: 計算机基础考试采用传统的人工阅卷,工作量大、时间长,准确率也不很高,因此非常有必要研究采用计算机自动阅卷。文章介绍了利用VBA语言实现计算机基础考试中Word题目自动阅卷的方法,能够大大提高阅卷的速度,而且结果准确、客观、公平。

关键词: 计算机基础;自动阅卷;Word

中图分类号: TP311    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2020.02.024

【Abstract】: The traditional manual marking method is used in the basic computer examination, which is characterized by heavy workload, long time and low accuracy. Therefore, it is necessary to study the automatic marking method by computer. This paper introduces a method of automatic marking of Word questions in computer basic examination by using VBA language, by which the speed of marking papers can be greatly improved, and the results are accurate, objective and fair.

【Key words】: Computer basis; Automatic marking; Word

0  引言

计算机基础是高校各专业普遍开设的一门基础课,考试通常为机试,主要考核学生Windows、Word、Excel、PowerPoint等软件的操作能力[1],采用传统的人工阅卷,工作量大、时间长,准确率也不很高[2],因此非常有必要研究采用计算机自动阅卷。

Word、Excel、PowerPoint文档的内部结构十分复杂[3],Microsoft公司没有公开,外人难以弄清,因而通过直接读取文档的方式进行自动阅卷几乎不可行[4]。

VBA (Visual Basic for Applications)是微软为了在其桌面应用程序中执行通用的自动化(OLE)任务开发的编程语言[5],主要用来扩展应用程序的功能,特别是Microsoft Office软件[6]。我们可以借助它读取文档的有关信息,从而实现自动阅卷。本文将探讨Word题目的阅卷方法。

1  VBA

VBA是新一代标准宏语言,是基于Visual Basic发展而来的,它们具有相似的语言结构[7]。

VBA主要由许多对象组成[8]。一个对象代表一个文档元素[9],如Documents代表所有打开的Word文档,Paragraphs代表文档中的所有段,Range代表文档中的某一连续区域,Selection代表文档中当前选择的区域。Application代表Word程序,是其它所有对象的父对象,每次编写程序代码时,都应从它开始。一个对象通常又有几个属性、方法[10]。属性是对象的性质。方法是对象可以进行的操作。

使用with语句可以简化代码,如

X. A = 10

X. B = 15

可简化为

With X

. A = 10

. B = 15

End With

只要输入1个X就行了,当X很长时,作用更显著。

Word从2007开始,界面、功能有了很大改变,但在宏、VBA方面还是保持了较好的兼容性,以前的程序段几乎仍可用于新格式文档的评阅。

2  基本方法

考点:将文章标题“在桂林旅游购物”设置为二号、黑体(2分)。

首先单击Visual Basic菜单栏中的“工程”,然后选择“引用”,在打开的对话框里“可用的引用”中选择“Microsoft Word 11.0 Object Library”(根据所用的Word的版本选择),引入Word对象,程序段如下:

Dim fs As New FileSystemObject

定义fs为FileSystemObject对象并赋值

Dim a!用于存储分值

Dim w As New Word.Application

定义w为Application对象并赋值

Dim t As Document定义t为Document对象

If fs.FileExists ("d:\t0\exam1\newd1.doc") Then

如果文档存在

w.Documents.Open "d:\t0\exam1\newd1.doc"

打开文档

Set t = w.ActiveDocument

设置t为活动文档(即刚打开的文档)

With t.Paragraphs(1).Range.Font

第1段(即文章标题)的字体

Range不可省,因Font不是Paragraphs的下级对象

猜你喜欢
计算机基础
文科专业计算机基础教学改革实践
基于QQ群的“翻转课堂”教学模式实践与应用