肖英 韋家正



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