摘 要:提出了利用VBA技术,使用VisualBasic进行程序设计,从Word文档中提取测试内容相关的属性与测试要求相比较,判断操作是否正确并增减分数,从而实现Word操作题的自动阅卷方案,并给出了部分算法.
关 键 词:VBA;自动阅卷;office;属性;评分
中图分类号:TP311.52文献标识码:A文章编号:16727800(2011)012005402
作者简介:付海涛(1976-),男,吉林长春人,吉林农业大学讲师,研究方向为计算机应用及计算机教育.
0引言
随着当今社会办公自动化程度的不断提高,计算机应用技能在教学与工作活动中成为不可或缺的技能之一.在高等农业院校教学活动中《大学计算机基础》已经成为公共课程之一,占有重要的地位.其中Word字处理软件,是主要教学重点,Word字处理软件的操作也是计算机技能考核的主要内容.
由于Word软件本身功能强大、内容丰富,加上软件操作类知识点并不适合使用传统的试卷形式进行考试,所以,多数考核部门选择让考生使用计算机完成操作类考试.那么如何准确、快速、高效地衡量被测试人员对Word的掌握程度,是教学人员亟待解决的问题.
本文主要论述了一种利用VBA技术,对考生提交的Word文件进行快速准确的进行阅卷的可行性方案.
1自动阅卷系统的思路分析
在考试过程中,操作题主要检查考生的实际应用能力.通常是给出一篇Word文档并提出若干要求,考生按照要求利用Word软件进行排版并保存为Word文档,之后提交所做的文件.阅卷人负责检查考生提交的文件并判断是否符合要求.
由于Word文件的结构并没有使用头加内容的存储方式,而是采用了对象数据流的方式进行存储,文件内部包含了主数据流、表数据流、非文本数据流、摘 要等信息,文件结构非常复杂.很难通过外部获取的方式获得可靠的数据结构.
实际上,Office是基于部件模型技术(COM技术)的软件,这使其具有了COM自动化的功能.事实上,Office中集成了标准宏语言(VBA)提供了访问Office文件的接口.以Word2003文件为例,其包含的表格、图片、页面、格式等等无一例外的都属于VBA对象,这就为在VBA程序中使用这些对象的属性和方法,实现自动化操作奠定了基础.
编写自动阅卷系统的思路就是:通过VBA编程调用Word2003文档中与题目相关的对象,提取其属性值.并将提取的结果与实际的要求做比对,从而精确的判断出考生的操作是否正确,并给出相应的成绩.
2自动阅卷系统的实现方法
自动阅卷系统的开发可以选用VB6.0(VisualBasic6.0)作为开发工具,VB6.0对于Office中的标准宏语言(VBA)有着良好的支持,具有面向对象、界面设计简单、开发速度快、易于调试等优点.具体方法如下:
(1)在VB6.0工程中引入“MicrosoftWord11.0ObjectLibrary”对象库,主要目的为在编程过程中查看该库的对象及其所有的属性和方法,实现快速引用对象和程序优化.在Office2000中该库为9.0版本,在Office97中版本为8.0.
(2)定义文档对象和应用程序对象,并打开相关文档.
DimApplicationWordAsWord.Application
DimDocumantWordAsWord.Document
SetApplicationWord等于NewWord.Application
SetDocumantWord等于ApplicationWord.Document.Open(“路径\文件名”)
(3)获取Word文档中的相关属性.
属性的获取是整个自动阅卷系统中最总要的信息,能否正确阅卷取决于能否取得相关的属性值.在Word2003中常用的对象包括有:页面格式――PageSetup、段落格式――Paragraphs、查找与替换――Find、表格格式――Tables、图片与绘图――Shapes、文本格式――Range等等.编程过程中可以通过这些对象获取其需要的属性,来做判断.例如:①获取页面上边距:Tmargin等于PageSetup.TopMargin;②获取第一段文字的颜色:Ctext等于Paragraphs(1).Font.Color;③获取表格的行数:Rcount等于DocumantWord.Tables(1).Rows.Count.将属性取出后,与正确的值做比较判断据此可以得出考生操作的结果是否正确,从而进行成绩的增减,并最终给出分数.设置纸张左边距为2cm的评分(1cm约等于28.35磅)示例程序如下:
IfDocumantWord.PageSetup.LeftMargin<>56.7Then'左边距判断
etext等于etext+“左边距设置错误.”给出错误信息
score等于score-10'扣除相应分值
EndIf
(4)关闭文档并释放对象.
DocumantWord.Close
ApplicationWord.Quit
SetApplicationWord等于Nothing
SetDocumantWord等于Nothing
3操作评分的实现
例如:要求将Word文件进行下列设置(1cm约等于28.35磅).①将纸张左边距设置为:2cm,纸型设置为:B5;②将标题文字设置为:隶书、一号字;③将第二段文字设置为:左缩进3cm;④将文档中原有的4行*6列的表格任意删除一行和一列.
操作评分的相关程序如下:
score等于100'满分成绩
'设置纸张左边距及纸型的评分
IfDocumantWord.PageSetup.LeftMargin<>56.7Then'左边距10分
etext等于etext+“左边距设置错误.”'给出错误信息
score等于score-10'扣除相应分值
EndIf
PageH等于DocumantWord.PageSetup.PageHeight
PageW等于DocumantWord.PageSetup.PageWidth
IfPageH<>708.75OrPageW<>498.96Then'纸型20分
etext等于etext+“纸型设置错误.”
score等于score-20
EndIf
'设置标题文字的评分
IfDocumantWord.Paragraphs(1).Range.Font.Size<>26Then'文字大小10分
etext等于etext+“标题文字大小设置不正确.”
score等于score-10
EndIf
IfDocumantWord.Paragraphs(1).Range.Font.NameFarEast<>“隶书”Then'文字字体10分
etext等于etext+“标题文字字体设置不正确.”
score等于score-10
EndIf
'设置左缩进的评分
IfDocumantWord.Paragraphs(2).Format.LeftIndent<>85.05Then'左缩进20分
etext等于etext+“左缩进设置不正确.”
score等于score-20
EndIf
'插入表格的评分
Rcount等于DocumantWord.Tables(1).Rows.Count'表格行数
Ccount等于DocumantWord.Tables(1).Columns.Count'表格列数
IfRcount<>3OrCcount<>5Then'插入表格30分
etext等于etext+“表格设置不正确.”
score等于score-30
EndIf
4结束语
本文所述的自动阅卷方案,利用VBA技术,实现了快速评阅Word2003操作题的目的.本方法同样可以引申至对其他Office文件的自动评阅.
作者使用该方法结合网络与数据库技术,制作了自动阅卷系统,并将这一方案应用在吉林农业大学《大学计算机基础》课程的操作类考试过程中.几年来应试人数达到千余人,实践表明使用本方法编写的自动阅卷系统性能稳定、阅卷速度快、准确率高,取得了良好的效果.参考文献:
[1]廖恩扬.面向对象对Office文档操作自动评分[J].计算机应用,2002(8).
[2][美]DFSCOOT.Office2000开发指南[M].余江林,詹晓军,译.北京:中国水利水电出版社,2000.
[3]李淑华.VB程序设计及应用[M].北京:高等教育出版社,2004.
(责任编辑:杜能钢)AWordoperatedSchemeofAutomaticMarking
Abstract:ProposedtouseVBAtechnology,extractedrelatedattributeromWorddocumentandparedwithexaminationrequirements,thusrealizeautomaticmarkingscheme,andgivespartofthealgorithm.
KeyWords:VBA,AutomaticMarking,Office,Property,Grade