• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Excel VBA考試試題設計與評分方法研究

      2015-04-29 00:59:18賈志先
      智能計算機與應用 2015年1期

      摘 要:在Excel VBA課程考試軟件開發(fā)中,如何從Excel文件中獲取考生操作的窗體對象和宏代碼,是操作題評分中的一個關鍵性問題。到目前為止,有關Excel VBA課程的考試軟件開發(fā)和評分方法研究方面的文獻報道尚不多見。利用VBE及其子對象的屬性和方法,可以測試Excel VBA工程中的窗體和控件對象的屬性和事件代碼,以及模塊中的宏代碼。給出了基本操作題、程序改錯題和程序填空題這三種題型的試題和答案設計的示例。考試結果表明,使用VBE對象來獲取考生操作的窗體對象和宏代碼,很好地解決了Excel VBA考試系統(tǒng)中操作題的計算機評分問題。

      關鍵詞: VBA; 操作題;試題設計; 評分方法

      中圖分類號:TP311.1 文獻標識碼:A 文章編號:2095-2163(2015)01-

      Abstract: In the software development process of Excel VBA examination, there is a key problem how to obtain the form object and macro code from the Excel file which examinee operates in the examination. So far, it is rarely for the literature on the development of software and the method of scoring in the examination of Excel VBA courses. In Excel VBA project, the properties and event code of form and controls, and the macro code in module can be tested by using the properties and methods of VBE object and its sub objects. In this article, three design examples of examination questions and answers, namely, basic operation question, modify the program and fill in the blanks in the program are given. The results show that it is a good solution to the computer scoring problem of exam questions in the Excel VBA by using the VBE object to obtain form object and macro code.

      Key Words: VBA; Operation Question; Design of Examination Question; Method of Scoring

      0 引 言

      VBA (Visual Basic for Applications)是基于Visual Basic發(fā)展而來的一種宏語言[1-4]。VBA集成在Office組件之中,是Microsoft Visual Basic的應用程序版本。VBA的出現(xiàn),使Office形成了一個獨立的編程環(huán)境。應用VBA執(zhí)行OLE可以擴展Windows的應用軟件功能,特別是Microsoft Office軟件。在許多應用程序中,都嵌入了VBA作為開發(fā)工具。運用和掌握VBA不僅可以實現(xiàn)高效辦公,并且可以循序漸進地掌握一門編程語言,為以后學習計算機語言奠定堅實基礎[5-7]。近年來,在國內一些高校中,開設了VBA的計算機課程。到目前為止,有關VBA課程的考試軟件開發(fā)和評分方法研究方面的文獻報道尚不多見。

      在VBA課程考試軟件開發(fā)中,如何從Excel文件中獲取考生操作的窗體對象和宏代碼,是操作題評分中的一個關鍵性問題。在已有的考試軟件基礎上[8],經(jīng)過深入地研究,開發(fā)了一個Excel VBA的考試系統(tǒng)。采用Microsoft Visual Studio 2010作為開發(fā)平臺,應用VBE對象來獲取考生操作的窗體對象和宏代碼,從而在考試系統(tǒng)中實現(xiàn)了VBA客觀題和操作題的計算機評分。

      1 VBE對象

      在Excel中,VBE(Visual Basic Editor)是VBA的編輯窗口,所有的VBA操作都可在VBE中完成。VBE及其子對象的結構,如圖1所示[4]。

      在圖1中,橢圓框表示對象,矩形框表示集合。

      Excel VBA考試操作題的評分,主要用到以下VBE及子對象的方法和屬性:

      (1)VBE對象:VBE為根對象,具體包含了所有其它可在Visual Basic for Applications中表示的對象和集合。可用VBProjects集合訪問VBA工程的集合。

      (2)VBProject對象:VBProject對象表示一個工程??捎肰BProject對象設置工程的屬性、訪問VBComponents集合以及References集合。

      (3)VBComponent對象:VBComponent對象表示一個包含在工程中的部件,例如類模塊或標準模塊。使用VBComponent對象,可以訪問與部件關聯(lián)的代碼或改變部件的屬性設置。使用VBComponent對象的Type屬性,可以確定出所引用的部件類型;而使用VBComponent對象的Collection屬性,則可以確定出所引用的部件在哪個集合中。VBComponent對象的Type屬性設置,如表1所示。

      (4)CodeModule對象:CodeModule是代碼模塊對象,在諸如窗體、類或文檔等部件之后表示程序代碼。應用CodeModule對象相關聯(lián)的屬性和方法,能夠操作并返回有關逐行代碼文本的信息。CodeModule對象的主要屬性有:

      ① CountOfLines屬性,返回代碼模塊中的總行數(shù);

      ② Lines屬性,返回代碼模塊中指定的代碼塊。其格式為:.Lines(startline, count);

      ③ CountOfDeclarationLines屬性,返回代碼模塊中公共聲明部分的行數(shù);

      ④ ProcBodyLine屬性,返回模塊中一個過程的起始行數(shù)。其格式為:.ProcBodyLine(procname, vbext_pk_Proc);

      ⑤ ProcCountLines屬性,返回模塊中一個過程的行數(shù)。其格式為:. ProcCountLines(procname, vbext_pk_Proc)。

      (5)Property對象:Property對象,用來描述一個對象的屬性??捎肞roperty對象的Value屬性來返回或設置一個部件的屬性值。

      利用VBE及其子對象的屬性和方法,可以測試Excel VBA工程中的窗體屬性,窗體中的控件對象的過程代碼以及模塊中的宏代碼。因此,可以利用VBE及子對象的方法和屬性實現(xiàn)對Excel VBA操作題的評分。

      2 VBA 考試試題設計

      在Excel VBA考試系統(tǒng)中,考試試題包括理論題和操作題。理論題為客觀題,評分比較容易實現(xiàn)。操作題的題型有:基本操作題、程序改錯題、程序填空題和編程題。與大多數(shù)考試軟件一樣,編程題的評分采用黑盒測試法,根據(jù)程序的運行結果,給出相應的分數(shù)?;静僮黝}、程序改錯題和程序填空題,需要利用VBE及其子對象的屬性和方法獲取考生操作的窗體對象和宏代碼進行評分。

      為了實現(xiàn)計算機的自動評分,需要對試題進行標準化。下面,給出基本操作題、程序改錯題和程序填空題這三種題型的試題和答案的設計示例。

      2.1基本操作題

      設計基本操作題的主要目的是為了測試考生對窗體操作和簡單VBA語句的掌握程度。利用VBE及其子對象的屬性和方法,可以檢測Excel VBA工程中窗體和控件對象的屬性和事件代碼,并通過對屬性和事件代碼的檢測,實現(xiàn)對考生的控件掌握程度的測試。

      試題1:

      打開考試文件夾下的工作簿“Test1.xlsm”,并在該工作簿的窗體--UserForm1中完成以下操作:

      (1)將窗體--UserForm1的標題改為“信息查詢”;

      (2)將窗體--UserForm1的"Height"屬性設置成200,"Width"屬性設置成270;

      (3)在窗體--UserForm1中添加一個命令按鈕“CommandButton1”,并將CommandButton1的標題設置為"測試",字體設置為“楷體”;

      (4)在CommandButton1的Click過程中,輸入以下代碼:

      MsgBox "這是我建立的命令按鈕", vbInformation, "VBA考試"

      注意:完成以上操作后,請保存文件;

      不能刪除窗體--UserForm1或更改窗體--UserForm1的對象名。

      在以上答案中,CheckType=1,表示檢測窗體屬性;CheckType=2,表示檢測窗體中控件的屬性;CheckType=3,表示檢測控件的事件代碼。SimilarAnswers表示相同答案的個數(shù)。ScorePoint表示給分點的個數(shù)。Score表示該測試點的分值。

      2.2程序改錯題

      設計程序改錯題的主要目的是為了測試考生對VBA語句和語法的掌握程度。在程序改錯題中,一般可設置2~4處錯誤。為了降低考試的難度,在出錯的語句處給出相應的標示。通常情況下,改錯題的答案不是唯一的,可能有多個答案,在答案中應盡可能給出所有可能的答案。

      試題2:

      打開考試文件夾下的工作簿“Test2.xlsm”,在該工作簿的模塊--模塊1中有一段程序代碼。功能為:檢測檔案歸還是否逾期。若借閱時間+期限>=歸還時間,則為按時歸還,否則為逾期。其中有三個錯誤行。

      2.3程序填空題

      與程序改錯題一樣,設計程序填空題的主要目的是為了測試考生對VBA語句和語法的掌握程度。在程序填空題中,一般可設置2~4個空,為了降低考試的難度,在有空的語句處給出相應的標示。通常情況下,程序填空題的答案不是唯一的,可能有多個答案,在答案中應盡可能給出所有可能的答案。

      試題3:

      打開考試文件夾下的工作簿“Test3.xlsm”,在該工作簿中有一個窗體-- UserForm1,其功能是查詢并顯示Sheet1中相應產(chǎn)品的名稱及庫存量。

      請完善OK_Click、Cancel_Click過程中的代碼。在窗體UserForm1中,實現(xiàn)利用下拉列表框ComboBox1選擇相應的產(chǎn)品編號,單擊“查詢”按鈕后,在標簽Lname和LNum上顯示Sheet1中相應產(chǎn)品的名稱及庫存量;單擊“取消”按鈕后,窗體消失[5]。具體如圖3所示。

      為了評分程序的正常運行,需要通過修改注冊表,開啟“信任對VBA工程對象模型的訪問”。

      在程序改錯題和程序填空題中,考生的答案具有多種多樣,存在著不一致(inconsistent)或不確定(uncertain)的問題[9]。對試題進行合理地設計,是減少評分難度的一個主要方面,答案應該選擇相對確定和唯一[10]。

      在考生答題的結果中,可能會出現(xiàn)一些多余的字符,例如,空格,注釋等,另外存在英文字符的大小寫與試題答案不一致等問題。在評分之前,需要對考生的答案進行規(guī)格化處理[10]。

      4 結束語

      試題設計與評分方法是考試系統(tǒng)中的關鍵問題。要根據(jù)考試的目的和要求,設計評分算法,同時根據(jù)計算機考試和評分的特點設計試題,這樣才能使計算機考試優(yōu)于傳統(tǒng)的考試。通過考試系統(tǒng)的開發(fā)和應用,表明使用VBE對象來獲取考生操作的窗體對象和宏代碼,可以很好地解決Excel VBA考試系統(tǒng)中操作題的計算機評分問題。

      參考文獻:

      [1] John Walkenbach. Excel 2010 Power Programming with VBA [M]. Wiley publishing, Inc., Indianapolis, Indiana, 2010

      [2] Bill Jelen, Tracy Syrstad. VBA and Macros: Microsoft Excel 2010 [M]. Que Corporation, U.S., 2010.

      [3] Microsoft公司. Microsoft Visual Basic for Applications and Shared Libraries Reference與共享庫參考手冊(上下)[M]. 北京:希望電子出版社, 1999.

      [4] David Shank等著. Microsoft Office 2000 Visual Basic Programmer's Guide 程序員指南[M]. 北京:希望電子出版社, 1999.

      [5] 《Excel VBA從入門到精通》編委會. Excel VBA從入門到精通[M]. 北京: 中國鐵道出版社, 2013.

      [6] 馬維峰. Excel VBA應用開發(fā)從基礎到實踐[M]. 北京:電子工業(yè)出版社, 2006.

      [7] 王鴻儒. Excel VBA程序設計[M]. 北京:中國鐵道出版社, 2005.

      [8] 賈志先. 計算機文化基礎考試系統(tǒng)的開發(fā)與應用[J]. 計算機應用, 2001,21(7):60-61.

      [9] R.Reiter. A logic for default reasoning [J]. Artificial Intelligence, 1980, 13(1&2):81-132.

      [10] 賈志先. 基于邏輯推理的計算機試題評卷算法研究[J]. 智能計算機與應用, 2014, 4(4):47-49,53.

      香港 | 商河县| 太谷县| 彭州市| 休宁县| 盖州市| 家居| 阿城市| 青河县| 鄂托克前旗| 靖宇县| 绵竹市| 岳池县| 岑溪市| 镇雄县| 望奎县| 安陆市| 香格里拉县| 昭觉县| 德安县| 屏南县| 文山县| 西贡区| 四子王旗| 湛江市| 禹州市| 武义县| 德惠市| 张北县| 平谷区| 五寨县| 奎屯市| 名山县| 肥乡县| 读书| 永胜县| 祁连县| 新建县| 绥棱县| 通化县| 乡城县|