利用VBA對word操作自動評分提高課堂實效性研究
摘 要:現代計算機技術,把人們從繁瑣的勞動中解脫出來。而要教學這些內容,卻又給計算機教師帶來繁重的負擔。比如Word、Excel、Powerpoint等Office教學內容,學生練習后的結果,如果讓教師去逐個檢查的話,簡直是一項不可想象的事情;而不去檢查,學生的錯誤又不能得到及時糾正。要解決這一問題,還要從自身找答案,那就是利用Office提供的VBA功能,實現Office操作題的自動測評。
關鍵詞:自動測評 VBA 宏 Word
當今計算機課的教學中,Word、Excel、Powerpoint等Office教學內容占了相當大的比重,而這主要是一種技能性,或者說操作性的教學。如果在教學和練習過程中讓教師逐個去檢查學生的練習結果,勢必給計算機教師增加過重的負擔,在實際教學中幾乎成為不可能。而如今能找到的一些測評軟件,由于版權問題,大多是光盤版的,不能多機使用,更不能靈活地改變其題目設置,很不方便教學。“求人不如求已”,本文嘗試利用Office提供的VBA功能,實現Office操作題的自動測評。
那么什么叫VBA呢?
VBA即Visual Basic For Application,是微軟開發出來的應用程序所共享的一種通用自動化語言?梢哉J為VBA是非常流行的應用程序開發語言Visual Basic的子集。實際上VBA是“寄生于”VB應用程序的版本。早在上世紀90年代早期,使應用程序自動化還是充滿挑戰性的領域,當時為了對每個需要自動化的應用程序實現自動化,人們不得不去學習多種不同的自動化語言。例如:可以用EXCEL的宏語言來使EXCEL自動化,使用WORD BASIC來使WORD自動化等等。為了解決這一矛盾,微軟開發出一種通用的自動化語言——VBA,它適用于微軟開發出來的所有應用程序。
那么VBA和VB又有哪些區別呢?
1、VB是設計用于創建標準的應用程序,而VBA是使已有的應用程序(Word等)自動化。
2、VB具有自己的開發環境,而VBA必須寄生于已有的應用程序。
3、要運行VB開發的應用程序,用戶不必安裝VB,因為VB開發出的應用程序是可執行文件(*.EXE),而VBA開發的程序必須依賴于它的“父”應用程序,例如Word等。
盡管存在這些不同,VBA和VB在結構上仍然十分相似。事實上,如果你已經了解了VB,會發現學習VBA非常快。相應地,學完VBA會給學習VB打下堅實的基礎。而且,當學會在Word中使用VBA后,即已具備在Excel、Powerpoint等Office 中用VBA創建解決方案的大部分知識。
VBA一個關鍵特征是你所學的知識在微軟的一些產品中可以相互轉化。
總體而言,VBA可以稱作Office系列應用程序的“遙控器”。
下面我就以一節Word課的教學為例,演示其實現過程。當然,在此之前,你應該對宏、VBA、面向對象、方法、屬性等概念有所了解,我想作為一名計算機教師來說,這些應該是不困難的。
一、根據所學,設計練習題
例如Word教學中,關于“文字格式及段落屬性的設置”一節,就涉及到文字的字體、字號、字形、顏色;段落的居中、首行縮進、行距等的設置。根據教學要求,我便設計了如下“練習題.doc”文檔。
計算機的發展趨勢
當前計算機的發展趨勢是向巨型化、微型化、網絡化和智能化方向發展。
1、巨型化(或功能巨型化)
巨型化是指其高速運算、大存儲容量和強功能的巨型計算機。其運算能力一般在每秒百億次以上、內存容量在幾百兆字節以上。巨型計算機主要用于尖端科學技術和軍事國防系統的研究開發。巨型計算機的發展集中體現了計算機科學技術的發展水平,推動了計算機系統結構、硬件和軟件的理論和技術、計算數學以及計算機應用等多個科學分支的發展。
2、微型化(或體積微型化)
二十世紀七十年代以來,由于大規模和超大規模集成電路的飛速發展,微處理器芯片連續更新換代,微型計算機連年降價,加上豐富的軟件和外部設備,操作簡單,使微型計算機很快普及到社會各個領域并走進了千家萬戶。隨著微電子技術的進一步發展,微型計算機將發展得更加迅速,其中筆記本型、掌上型等微型計算機必將以更優的性能價格比受到人們的歡迎。展望未來,計算機的發展必然要經歷很多新的突破。從目前的發展趨勢來看,未來的計算機將是微電子技術、光學技術、超導技術和電子仿生技術相互結合的產物。第一臺超高速全光數字計算機,已由歐盟的英國、法國、德國、意大利和比利時等國的70多名科學家和工程師合作研制成功,光子計算機的運算速度比電子計算機快1000倍。在不久的`將來,超導計算機、神經網絡計算機等全新的計算機也會誕生。屆時計算機將發展到一個更高、更先進的水平。
提出要求:“題目要求.txt”
(1)將標題“計算機的發展趨勢”,設為華文行楷、二號、天藍色字。
(2)將兩個小標題,設為楷體、四號、加粗。
(3)將兩段正文,設為仿宋體、小四號、傾斜。
(4)將標題居中。
(5)將正文內容首行縮進2字符,行距1.5倍。
二、 教師試做,錄制并分析宏
教師試做上面5個小題,同時相應錄制五段宏:KS1、KS2、KS3、KS4、KS5。提示:在錄制宏的過程中,要選擇內容時,注意需要暫停宏。
Sub ks1()
Selection.Font.Name=“華文行楷”
Selection.Font.Size=22
Selection.Font.Color=wdColorSkyBlue
End Sub
Sub ks2()
Selection.Font.Name=“楷體_GB2312”
Selection.Font.Size=14
Selection.Font.Bold=wdToggle
Selection.Font.Name=“楷體_GB2312”
Selection.Font.Size=14
Selection.Font.Bold=wdToggle
End Sub
Sub ks3()
Selection.Font.Name=“仿宋_GB2312”
Selection.Font.Size=12
Selection.Font.Italic=wdToggle
Selection.Font.Name=“仿宋_GB2312”
Selection.Font.Size=12
Selection.Font.Italic=wdToggle
End Sub
Sub ks4()
Selection.ParagraphFormat.Alignment=wdAlignParagraphCenter
End Sub
Sub ks5()
With Selection.ParagraphFormat
.LeftIndent=CentimetersToPoints(0)
.RightIndent=CentimetersToPoints(0)
.SpaceBefore=0
.SpaceBeforeAuto=False
.SpaceAfter=0
.SpaceAfterAuto=False
.LineSpacingRule=wdLineSpace1pt5
.Alignment=wdAlignParagraphJustify
.WidowControl=False
.KeepWithNext=False
.KeepTogether=False
.PageBreakBefore=False
.NoLineNumber=False
.Hyphenation=True
.FirstLineIndent=CentimetersToPoints(0.35)
.OutlineLevel=wdOutlineLevelBodyText
.CharacterUnitLeftIndent=0
.CharacterUnitRightIndent=0
.CharacterUnitFirstLineIndent=2
.LineUnitBefore=0
.LineUnitAfter=0
.AutoAdjustRightIndent=True
.DisableLineHeightGrid=False
.FarEastLineBreakControl=True
.WordWrap=True
.HangingPunctuation=True
.HalfWidthPunctuationOnTopOfLine=False
.AddSpaceBetweenFarEastAndAlpha=True
.AddSpaceBetweenFarEastAndDigit=True
.BaseLineAlignment=wdBaselineAlignAuto
End With
End Sub
五段宏中,“Selection對象代表一個窗格中的選定內容。該內容可以包括文檔中的一個區域,也可以僅包括插入點。”
前三段宏中,“Font對象包含了各種字體屬性。”“Name代表文字字體名稱。”“Size代表文字大小。”“Color代表文字顏色。”“Bold代表文字是否加粗。”“Italic代表文字是否傾斜。”“wdToggle等同于True。”
第四段宏中,“ParagraphFormat代表了指定區域、所選范圍、查找與替換操作或樣式中的段落設置。”“Alignment返回或設置指定段落的對齊方式。” “wdAlignParagraphCe
nter代表居中對齊。”
第五段宏,內容很多,但只有幾個參數有用,“Character
UnitFirstLineIndent返回或設置首行或懸掛縮進的值(以字符為單位)。用正值設置首行縮進,用負值設定懸掛縮進。Single 類型可讀寫。”“LineSpacingRule返回或設置指定段落的行距,wdLineSpace1pt5代表1.5倍行距。”
這里,如果對代碼不理解的話,可以查閱幫助,注意不是Word窗口中的幫助,而是Visual Basic 編輯器窗口中的幫助,或者直接在VBAWRD9.CHM幫助文件中查找。(其默認安裝目錄為C:\Program Files\Microsoft Office\Office\2052)
三、按圖索驥,編制測評代碼
這一步,難度較大,我們可以參考相關的VB和VBA書籍。另外在Office 2000的安裝目錄下可以找到諸如VBAWRD9.CHM、VBAXL9.CHM、VBAPPT9.CHM、VBAOFF9.CHM等幫助文件作為學習和參考之用。
下面是我編寫的關于“練習題.doc”文檔的測評代碼。
Sub 測評()
Dim defen As Integer 設置測評結果變量defen
defen=0’測評結果變量defen初始化為0
、 將標題“計算機的發展趨勢”,設為華文行楷、二號、天藍色字。(2分)
If ActiveDocument.Paragraphs.Count >= 1 Then
ActiveDocument.Paragraphs(1).Range.Select
If Selection.Font.Name=“華文行楷”And Selection.Font.Size=22 And Selection.Font.Color=wdColorSkyBlue Then
defen=defen+2如果正確則加2分
End If
End If
、 將兩個小標題,設為楷體、四號、加粗。(2分)
If ActiveDocument.Paragraphs.Count >= 4 Then
ActiveDocument.Paragraphs(2).Range.Select
If Selection.Font.Name=“楷體_GB2312”And Selection.Font.Size=14 And Selection.Font.Bold Then
ActiveDocument.Paragraphs(4).Range.Select
If Selection.Font.Name=“楷體_GB2312”And Selection.Font.Size=14 And Selection.Font.Bold Then
defen=defen+2如果正確則加2分
End If
End If
End If
、 將兩段正文,設為仿宋體、小四號、傾斜。(2分)
If ActiveDocument.Paragraphs.Count >= 5 Then
ActiveDocument.Paragraphs(3).Range.Select
If Selection.Font.Name="仿宋_GB2312" And Selection.Font.Size=12 And Selection.Font.Italic=True Then
ActiveDocument.Paragraphs(5).Range.Select
If Selection.Font.Name=“仿宋_GB2312”And Selection.Font.Size=12 And Selection.Font.Italic=True Then
defen=defen+2’如果正確則加2分
End If
End If
End If
⑷ 將標題居中。(2分)
If ActiveDocument.Paragraphs.Count >= 1 Then
ActiveDocument.Paragraphs(1).Range.Select
If Selection.ParagraphFormat.Alignment=1 Then
defen=defen+2 ’如果正確則加2分
End If
End If
、 將正文內容首行縮進2字符,行距1.5倍。(2分)
If ActiveDocument.Paragraphs.Count >= 5 Then
ActiveDocument.Range(ActiveDocument.Paragraphs(2).Range.Start, ActiveDocument.Paragraphs(5).Range.End).Select
If Selection.ParagraphFormat.CharacterUnitFirstLineIndent=2 And Selection.ParagraphFormat.LineSpacingRule=wdLineSpace1pt5 Then
defen=defen+2如果正確則加2分
End If
End If
輸出測評結果變量defen
MsgBox defen,“最終得分”
End Sub
四、設置共享,實現自動測評
這一步可以把“題目要求.doc”和“練習題.txt”兩個文件放置在教師機的一個文件夾內,并把這個文件夾設為只讀共享,學生便可以通過網絡來訪問教師機進行練習了。
本文僅以Word為例加以說明,實際上本方法適用于大多數Office文檔的自動測評,如Excel、Powerpoint等。
【利用VBA對word操作自動評分提高課堂實效性研究】相關文章: