肖英 韋家正
摘要:信息技術(shù)在教育領(lǐng)域的應(yīng)用激活了很多新的教學(xué)技術(shù)手段。Word文字處理軟件也需要一種有效的手段協(xié)助教學(xué)過(guò)程中的質(zhì)量測(cè)評(píng)工作。該文的Word測(cè)評(píng)工具是一款面向高職院校計(jì)算機(jī)應(yīng)用基礎(chǔ)Word部分的教學(xué)輔助測(cè)評(píng)工具,利用VBA讀取Word對(duì)象和屬性,并使用條件判斷得到評(píng)定結(jié)果,通過(guò)C#將批量Word文檔瀆取后將VBA測(cè)評(píng)算法工程代碼寫(xiě)入至Word文檔中,最終由C#將VBA評(píng)定的成績(jī)發(fā)送至系統(tǒng)服務(wù)器中。
關(guān)鍵詞:Word;VBA;測(cè)評(píng)工具;計(jì)算機(jī)應(yīng)用
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)20-0032-03
1背景
Microsoft Office辦公軟件的普及程度仍然伴隨著信息技術(shù)的發(fā)展繼續(xù)著它的輝煌,即使在軟件行業(yè)蓬勃發(fā)展的今天,也沒(méi)有任何一款辦公軟件可以完全替代它的江湖地位。時(shí)至今日,眾多的高校仍將其納入計(jì)算機(jī)應(yīng)用基礎(chǔ)的課程標(biāo)準(zhǔn)中,成為課程體系中一門(mén)面向全校學(xué)生的公共必修課程,是學(xué)生們必須掌握的一項(xiàng)基本技能。
Word作為辦公軟件的組件之一,一直是課程教學(xué)過(guò)程中的授課重點(diǎn),其優(yōu)秀的文字處理功能,成為計(jì)算機(jī)應(yīng)用的入門(mén)級(jí)基礎(chǔ)。這門(mén)課程的教學(xué)質(zhì)量測(cè)評(píng)如果只是實(shí)施理論考核意義并不大,所以實(shí)際中多以學(xué)生的操作能力作為主要的考核依據(jù),平時(shí)的練習(xí)和作業(yè)也是圍繞著實(shí)際應(yīng)用展開(kāi)。與此同時(shí),在深化職業(yè)教育改革的過(guò)程中,課程體系的調(diào)整將該門(mén)課程的學(xué)時(shí)進(jìn)行縮減,但課程教學(xué)的目標(biāo)卻進(jìn)一步提升。高質(zhì)量的要求,意味著任課教師要加大學(xué)生的實(shí)操訓(xùn)練;縮減的課時(shí),要求教師必須及時(shí)快速地完成練習(xí)和作業(yè)的批改,才能總結(jié)教學(xué)效果。尤其是新冠疫情的爆發(fā)加速了高校信息化教學(xué)方式的改革及實(shí)施后,大量課程轉(zhuǎn)戰(zhàn)線上教學(xué),或者是開(kāi)展混合式教學(xué)模式,減少了與學(xué)生面對(duì)面的時(shí)間,卻為了幫助同學(xué)們鞏固所學(xué)知識(shí)將操作練習(xí)量進(jìn)一步增加。只練不改,就不能幫助學(xué)生發(fā)現(xiàn)自己的問(wèn)題,也不能讓任課教師及時(shí)總結(jié)調(diào)整授課計(jì)劃??稍趯W(xué)生人數(shù)眾多的前提下,練習(xí)量也增加的情況下怎么及時(shí)批改練習(xí),這些問(wèn)題難倒了想在教學(xué)改革上更進(jìn)一步的老師們。
2設(shè)計(jì)原理
Microsoft Office辦公軟件系列是一個(gè)相對(duì)開(kāi)放的平臺(tái),除了自身強(qiáng)大的辦公處理能力之外,微軟還專門(mén)針對(duì)其推出了開(kāi)發(fā)的工具,即通用自動(dòng)化語(yǔ)言VBA(Visual Basic Application)。VBA是基于VB(Visual Basic的應(yīng)用技術(shù),利用VBA可以針對(duì)特定的應(yīng)用需求進(jìn)行OFFICE新的工具開(kāi)發(fā),一些簡(jiǎn)單的編碼就可以實(shí)現(xiàn)煩瑣的處理功能,實(shí)現(xiàn)文檔數(shù)據(jù)的自動(dòng)化處理。VBA是一種面向?qū)ο蟮木幊陶Z(yǔ)言,語(yǔ)法與VB相同,容易理解和掌握,有一定編程基礎(chǔ)的人員都可以較快上手。
C#同樣是一款由微軟公司發(fā)布的面向?qū)ο蟮木幊陶Z(yǔ)言,較VBA的工程軟件來(lái)說(shuō),具有更佳的安全性和可靠性,同時(shí)它也綜合了VB可視化操作的優(yōu)點(diǎn),并且有著更好的運(yùn)行效率。本文的Word軟件測(cè)評(píng)工具將利用VBA讀取Word對(duì)象和屬性進(jìn)行結(jié)果評(píng)定,并由C#控制批量Word文檔讀取及VBA工程寫(xiě)入,最終由C#將成績(jī)發(fā)送至網(wǎng)頁(yè)端。
3測(cè)評(píng)工具的設(shè)計(jì)與實(shí)現(xiàn)
3.1設(shè)計(jì)思想
本測(cè)評(píng)工具是一款面向高職院校Word文字處理軟件教學(xué)開(kāi)發(fā)的一款測(cè)評(píng)工具,所以工具的設(shè)計(jì)開(kāi)發(fā)都是以高職院?,F(xiàn)行的課程體系和課程標(biāo)準(zhǔn)進(jìn)行對(duì)接,以達(dá)到解決教學(xué)改革中的實(shí)際問(wèn)題。
1)Word測(cè)評(píng)知識(shí)框架
Word測(cè)評(píng)工具的設(shè)計(jì)前提是測(cè)評(píng),測(cè)評(píng)的內(nèi)容是需要在軟件開(kāi)發(fā)前就先設(shè)計(jì)好的。針對(duì)初學(xué)者的考核設(shè)計(jì)還是以知識(shí)點(diǎn)為主,所以測(cè)試工具將知識(shí)點(diǎn)逐級(jí)分割,形成顆?;目己它c(diǎn)(如圖1:Word知識(shí)框架)。將知識(shí)點(diǎn)顆?;暮锰幤鋵?shí)也是便于初學(xué)者查找相關(guān)內(nèi)容的,如果是一味強(qiáng)調(diào)使用Word完成一個(gè)實(shí)際完整的案例,比如說(shuō)“完成一個(gè)電子海報(bào)”,有可能導(dǎo)致學(xué)生所學(xué)內(nèi)容不扎實(shí)、不全面。
2)知識(shí)點(diǎn)顆粒化
知識(shí)點(diǎn)顆?;倪^(guò)程是題目設(shè)計(jì)和相應(yīng)分?jǐn)?shù)沒(méi)置的過(guò)程,采集到的分?jǐn)?shù)可以更好地為教學(xué)質(zhì)量提供數(shù)據(jù)依據(jù),這些數(shù)據(jù)依據(jù)也可以為課程標(biāo)準(zhǔn)中的重難點(diǎn)設(shè)計(jì)提供參考。
本節(jié)將以一個(gè)Word測(cè)評(píng)工具中的綜合應(yīng)用案例來(lái)說(shuō)明如何完成知識(shí)點(diǎn)顆?;幚怼ord按各大知識(shí)點(diǎn)進(jìn)行了分割后,各個(gè)題目中的操作設(shè)置參數(shù)還要進(jìn)一步細(xì)化。本案例中的題目設(shè)置除了考慮到知識(shí)點(diǎn)的劃分,也同時(shí)結(jié)合了Word實(shí)際操作過(guò)程中參數(shù)設(shè)置的思路(表1:Word綜合應(yīng)用案例沒(méi)計(jì))。
3.2 VBA測(cè)評(píng)
對(duì)Word知識(shí)點(diǎn)的測(cè)評(píng)主要由VBA工程進(jìn)行,實(shí)施原理也非常簡(jiǎn)單。下面以“綜合應(yīng)用”案例中的第七大題:表格設(shè)置來(lái)說(shuō)明測(cè)試方法。圖2展示經(jīng)過(guò)題目要求后設(shè)置完成的表格樣張,后續(xù)將說(shuō)明如何通過(guò)VBA來(lái)讀取相關(guān)參數(shù)。
步驟一:查找Word文檔中是否存在表格,如果不存在,則需要將程序跳轉(zhuǎn)至gg(另行定義),避免程序找不到對(duì)象而運(yùn)行失敗。
If ActiveDocument.Tables.Count=0 Then GoTo gg判別是否有表格
步驟二:選定表格,判別表格外邊框是否線型為雙實(shí)線,線寬度為0.5磅,顏色為紅色,并根據(jù)條件判斷向分?jǐn)?shù)賦值。
With Doctab.Borders
If.OutsideLineStyle= wdLineStyleDouble Then scoreArr(7)=2
‘雙實(shí)線“外框線”
If. OutsideLineWidth=wdLineWidth050pt Then scoreArr(7)=scoreArr(7)+1寬度“1.5磅”
If.OutsideColorlndex=wdRed Then scoreArr(7)=scoreArr(7)+1'顏色為“紅色”
End With
步驟三:選定表格,判別表格內(nèi)邊框是否為單實(shí)線,線寬度為3磅,顏色為綠色。因?yàn)槲覀兲峁┑谋砀袷欠且?guī)則表格,所以判別線型等參數(shù)需要分別讀取垂直和水平線段的參數(shù)設(shè)置情況。
With Doctab.Borders(wdBorderVertical)
If .LineStyle= wdLineStyleSingle Then scoreArr(7)=score-Arr(7)+1垂直線型為單實(shí)線
If. LineWidth=WdLineWidth300pt Then scoreArr(7)=sCoreArr(7)+1垂直線寬為3磅
If .Color=WdGreen Then scoreArr(7)=sCoreArr(7)+1垂直線顏色為綠色
End With
With Doctab.Borders (wdBorderHorizontal)
……(代碼與垂直線段完全一致)
End With
從測(cè)評(píng)的代碼來(lái)看,VBA是根據(jù)Word設(shè)置結(jié)果來(lái)評(píng)定分?jǐn)?shù)的,其判別的屬性有些與我們?cè)O(shè)置的功能一致,有些又需要另行設(shè)計(jì)。但總體而言,VBA編寫(xiě)的測(cè)評(píng)代碼適應(yīng)性還是非常良好的,基本可以兼容不同版本的Office。
3.3 0ffice tool文檔控件
Word可以通過(guò)編寫(xiě)VBA代碼實(shí)現(xiàn)設(shè)置參數(shù)的判別功能,但如果測(cè)評(píng)工具只是嵌入到OffiCe平臺(tái)中則有很大的風(fēng)險(xiǎn),雖然VBA提供了工程保護(hù),但極易被破解。如果將測(cè)評(píng)工具放置在這樣不安全的環(huán)境中,篡改分?jǐn)?shù)就會(huì)變得極其容易。所以為了提高系統(tǒng)運(yùn)行的安全性,使用C#開(kāi)發(fā)編寫(xiě)的OffiCe tool控件實(shí)現(xiàn)批量調(diào)用Word文檔,并將VBA測(cè)評(píng)算法程序?qū)懭隬ord文檔中,實(shí)現(xiàn)批改文檔的功能(圖3:C#控件工作流程)。
1)類VbaWord實(shí)現(xiàn)的核心方法WnteCode代碼
面向高校開(kāi)發(fā)的測(cè)評(píng)工具要滿足的一大要求就是批量處理文檔,所以首先要設(shè)計(jì)如何能夠?qū)⒋牡奈臋n逐一打開(kāi)——測(cè)評(píng)——關(guān)閉。
2)分?jǐn)?shù)上傳系統(tǒng)服務(wù)器
class VbaWord
{
public static void WriteCode(Form owner, object strFile,string strCode)
{
Microsoft.Office.Interop.Word.Application app= new Micro-soft.Office.lnterop.Word.Application();
//定義Applicatiom
var document=app. Documents. Open(ref strFile); //打開(kāi)文檔
app.Visible =f'alse;
//隱藏文檔
try
{
var thisDocument=document. VBProject. VBComponents.Item(1);//獲取VBA工程的ThisDwument對(duì)象
this Document. CodeModule.AddFromString(strCode);//把VBA代碼寫(xiě)入ThisDocument對(duì)象
app. Run(" CommandButtonI_Clit:k");//運(yùn)行CommandBut-tonl_Click方法
}
catch (Exception e)
{
MessageBox.Show(owner, e.ToString0);,//顯示異常錯(cuò)誤
return;
}
document.Close (ref missing);//關(guān)閉文檔
app.QuitO;//釋放Application
document= null;
app= null;
GC.Collect();//垃圾回收
}
}
將測(cè)評(píng)中的各項(xiàng)得分和總分,通過(guò)調(diào)用網(wǎng)絡(luò)地址接口,將數(shù)據(jù)上傳到系統(tǒng)服務(wù)器,在系統(tǒng)服務(wù)器中瀆取最終結(jié)果。
private void btnWord_Click(object sender. EventArgs e)
{
if(txtDocPath.Text.Length<1)
{
MessageBox. Show("請(qǐng)輸入要批改文檔所在路徑");
return;
}
var strHostName= txtHost.Text;
var strDocPath= txtDocPath.Text;
if(string.IsNullOrEmpty(strDocPath))retum;
var arrFile= Directory.GetFiles(strDocPath, "*.docx".SearchOption.TopDirectoryOnly);
if(arrFile.Length<1)return;
string strVBAScript=txtVBAScript. Text+"\r\n"+VbaParaWord. GetCommonVbaScript(strHostName);
progressBarX1.Visible= true;
foreach(var file in arrFile)
{
if(file.lndexOf'('~')>-1) continue;
var fileName= Path.GetFileNameWithoutExtension(file);
//提取學(xué)號(hào)
string strStuNo= SYstem.Text.RegularExpressions.Regex.ReplaCe(fileName.@”[^0-9]+”,"");
VbaWord.WriteCode(this.f'ile,strVBAScript);
txtLog.AppendText(">["+DateTime.Now.ToString("yyyy—MM-dd HH: mm: ss")+”]成功批改文檔:"+Path.GetFileName(file)+”\r\n");
txtLog.ScrollToCaret();
}
progressBarX1.Visible= false;
}
4測(cè)評(píng)工具的運(yùn)行與調(diào)試
測(cè)評(píng)工具的開(kāi)發(fā)過(guò)程是可以相對(duì)獨(dú)立的,即VBA測(cè)評(píng)部分和C#編程部分。為了保證Word測(cè)評(píng)工具運(yùn)行的穩(wěn)定性,調(diào)試環(huán)節(jié)VBA要解決的是Word測(cè)評(píng)對(duì)象中屬性和方法的正誤,VBA測(cè)試就可以利用Microsoft Office辦公軟件白帶的開(kāi)發(fā)工具進(jìn)行測(cè)試。
4.1利用MsgBox工具顯示測(cè)評(píng)結(jié)果
Msgbox(Message Box)是VBA中的一個(gè)函數(shù),功能是彈出一個(gè)信息對(duì)話框,待用戶單擊“確定”按鈕后,繼續(xù)或結(jié)束程序運(yùn)行。VBA測(cè)評(píng)部分將利用Msgbox返回測(cè)評(píng)信息(圖4:Msg-box顯示測(cè)評(píng)結(jié)果),幫助測(cè)試人員查找測(cè)評(píng)對(duì)象屬性的準(zhǔn)確性。
4.2 0ffice tool工具
使用C#編寫(xiě)開(kāi)發(fā)的OffiCe tool工具(如圖5:OffiCe tool工具界面)是本測(cè)評(píng)工具的一個(gè)重要組成部分,完成Word文檔的批量讀取,將VBA測(cè)評(píng)算法寫(xiě)入Word文檔中,并將VBA測(cè)評(píng)所得分值上傳至系統(tǒng)服務(wù)器中。
為了便于測(cè)試而開(kāi)發(fā)的Office tool工具可以進(jìn)行適應(yīng)性更好的訓(xùn)練,在后期針對(duì)EXCEL、PPT等MiCrosoft Office系統(tǒng)軟件也會(huì)有同樣的功能。
5結(jié)束語(yǔ)
Word測(cè)評(píng)工具是一款服務(wù)于高職院校計(jì)算機(jī)應(yīng)用基礎(chǔ)課程的教學(xué)輔助工具,它的設(shè)計(jì)緊貼實(shí)際教學(xué)、服務(wù)教學(xué),也為教學(xué)質(zhì)量測(cè)評(píng)提供了客觀的數(shù)據(jù)依據(jù)。測(cè)評(píng)工具還具有很強(qiáng)的拓展性,可以將ExCel和PPT納入本工具中,共同構(gòu)成Office軟件測(cè)評(píng)系統(tǒng)。
參考文獻(xiàn):
[1]李圓.基于VBA對(duì)Office二次開(kāi)發(fā)的可移植性研究[J].電子世界,2014(12):67-68.
[2]桑銀邦,王成良.XML數(shù)據(jù)交換在Office二次開(kāi)發(fā)中的應(yīng)用[J].計(jì)算機(jī)工程,2010,22(36):78-80.
[3]汪璟.Office操作題的自動(dòng)閱卷分析[J.長(zhǎng)春教育學(xué)院學(xué)報(bào),2013,29(18):76-77.
[4]劉冰.基于VBA的Word自動(dòng)閱卷系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2017(9): 134-137.
[5]尹云霞.教學(xué)質(zhì)量測(cè)評(píng)與數(shù)據(jù)分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].新技術(shù)新工藝,2017(3): 14-16.
【通聯(lián)編輯:謝媛媛】
收稿日期:2020-05-08
基金項(xiàng)目:2019年度廣西高校中青年教師科研基礎(chǔ)能力提升項(xiàng)目:計(jì)算機(jī)基礎(chǔ)技能交互練習(xí)測(cè)評(píng)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(項(xiàng)目編號(hào):2019KY1348);2019年度廣西高校中青年教師科研基礎(chǔ)能力提升項(xiàng)目(項(xiàng)目編號(hào):2019KY1346)
作者簡(jiǎn)介:肖英(1982-),女,湖南湘鄉(xiāng)人,講師,工程師,碩士,研究方向?yàn)榭刂瓶茖W(xué)與技術(shù)、計(jì)算機(jī)應(yīng)用;韋家正(1985-),男,廣西南寧人,講師,工程師,碩士,研究方向?yàn)榍度胧郊夹g(shù)、應(yīng)用電子技術(shù)。