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