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