亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于VBA的單項選擇題練習文檔的設計

        2015-10-24 10:14:05夏蕓
        電腦知識與技術(shù) 2015年5期
        關(guān)鍵詞:按鈕設計

        夏蕓

        摘要:文中在Word 2010中使用VBA實現(xiàn)用于單項選擇題練習的文檔設計。用戶可根據(jù)需要選擇題目進行練習,在單擊選項時系統(tǒng)進行正誤判斷,可以將練習中的部分題目標記,并將這些標記的題目保存為Word文檔和Excel工作簿。文中較為詳細地描述了VBA在文檔中的設計和實現(xiàn)。該設計具有一定的實用價值。

        關(guān)鍵詞:單項選擇題; Word 2010; Excel 2010; VBA

        中圖分類號:TP317 文獻標識碼:A 文章編號:1009-3044(2015)05-0095-04

        The Design of A Word Document Used to Exercise Individual Choice Questions Based on VBA

        XIA Yun

        (College of Mathematics and Computer Science, Anhui Normal University , Wuhu 241000 , China)

        Abstract: A Word document is designed on VBA in this paper, which can be used to do exercises of individual choice questions. User can use this document to do exercise according to his need, and the document can judge his answer when he clicks one option. User can mark some problems when he is doing exercises, and he also can save the marked problems as a Word document and an Excel file in this document. It is described in this paper how to design and realize the document based on VBA. And the design has some practical value.

        Key words: individual choice questions; Word 2010; Excel 2010; VBA

        在日常的學習中,特別是在章節(jié)學習或者階段學習結(jié)束后,學生們可能會做一些習題進行知識的鞏固和檢測。因為學習者的學習程度不同,做錯的題目可能各不相同,而這些錯題可能需要反復強化練習。因此,針對這一情況,文中專門就單項選擇題設計了一個練習用的文檔。

        使用者在使用這個文檔時,可以根據(jù)自己的需要通過“選擇文檔”按鈕,選擇事先存儲題目相關(guān)信息的電子工作簿,系統(tǒng)將其內(nèi)容自動加載到Word文檔中,使用者可以通過文檔中的“上一題”和“下一題”按鈕進行題目的切換。在點擊答案選項時,即時反饋該題回答正確與否。當然,使用者也可以根據(jù)需要直接查看答案,或隱藏答案。當使用者覺得某個題目需要再多次練習時,可以先對該題進行“標記題目”的操作,當文檔中需要標記的題目都標記完成后,再選擇“保存標記題目”按鈕,則會將所有的標記題目保存為Word文檔和Excel工作簿,該電子工作簿可以在下次練習時使用。

        1 文檔外觀和功能的設計

        1.1 文檔外觀的設計

        文檔在設計時為了方便用戶的使用,考慮將題目以表格的形式展現(xiàn)。在表格中顯示題目的題干、答案選項、參考答案以及備注內(nèi)容,文檔中的表格設計如圖1所示。在這個表格中只能顯示當前一個題目的相關(guān)信息,如果需要顯示其他題目,則需要配合使用相應的功能按鈕“上一題”和“下一題”進行使用。表格第一列中的第二行至第五行的四個單選按鈕控件是事先放置在文檔中的。

        在表格的上方分兩行放置了7個功能按鈕控件,第一行是“選擇文檔”、“上一題”、“下一題”和“標記題目”四個按鈕,第二行是“查看答案”、“隱藏答案”和“保存標記題目”三個按鈕。兩行功能按鈕的中間是一個標簽控件,該標簽控件中的內(nèi)容為當前練習正在使用的電子工作簿的完整路徑。

        1.2 功能的描述

        “選擇文檔”按鈕被單擊后,出現(xiàn)文件選擇對話框,便于用戶進行練習題目的Excel文件的選擇。在標簽控件中顯示打開文件的完整路徑,并將題目加載到內(nèi)存中,在文檔的表格中顯示第一題的相關(guān)內(nèi)容。

        當題目顯示后,用戶單擊某個單選按鈕時,系統(tǒng)將給出評判,表明選擇正確與否。

        單擊“上一題”按鈕或者“下一題”按鈕時,若存在這樣的題目,則進行相關(guān)的內(nèi)容顯示,否則顯示出錯信息。

        單擊“查看答案”按鈕時,則會顯示參考答案,如果這個題目有備注內(nèi)容,則也會進行顯示。備注內(nèi)容一般是題目的解析。

        單擊“隱藏答案”按鈕時,則會將表格中的參考答案和備注中的內(nèi)容清空。

        單擊“標記題目”按鈕時,是將該題作了標記,準備將該題添加到新的試題工作簿中。

        單擊“保存標記題目”按鈕時,是將所有做標記的題目保存為用戶指定文件名的Word文檔和Excel電子工作簿,該工作簿可以作為題目庫被用戶選擇,并加載到文檔中。

        文檔在設計時,考慮到使用者使用方便,因此將題目等信息保存為電子工作簿。使用者可以自己按照固定的格式要求,事先將題目的相關(guān)信息保存為電子工作簿。當然,使用者也可以使用這個練習文檔,在表格中填寫相關(guān)內(nèi)容后,使用“標記題目”按鈕后,再在表格中重新輸入新的內(nèi)容,然后再單擊“標記題目”按鈕,如此循環(huán)往復。當所有題目都輸入并標記后,使用者可以單擊“保存標記題目”按鈕,則標記的題目將保存為新的Word文檔和Excel電子工作簿,這個新文件是由使用者指定存放位置和名稱的。

        2功能的實現(xiàn)

        為了記錄題目內(nèi)容的相關(guān)信息,設置了如下的全局變量:表示總題數(shù)的變量rowcount,表示當前題目所處行號(即題號值加1)的變量rowno,表示標記題數(shù)的變量ctno,分別用于存儲所有題目和標記題目的數(shù)組arr和errarr。

        2.1 文檔Open事件的設計

        文檔打開時,文檔中所有的內(nèi)容需要清空,即標簽控件的Caption值為“未選擇文件”,單選按鈕控件的Value值為False,表格中的內(nèi)容清空,全局變量rowcount、rowno和ctno設置為0。其中清空表格中的內(nèi)容具體實現(xiàn)代碼如下:

        With ActiveDocument.Tables(1)

        .Cell(1, 1).Range.Text = ""

        For i = 1 To 7

        .Cell(i, 2).Range.Text = ""

        Next

        End With

        2.2 命令按鈕的事件設計

        1)“選擇文檔”按鈕Click事件的設計

        單擊“選擇文檔”按鈕時,出現(xiàn)圖2所示的文件打開對話框,在該對話框中只允許選擇單個Excel文件。如果用戶選擇了某個Excel工作簿文件,該文件的路徑被保存至變量filepath,則清空文檔中的表格內(nèi)容,將單選按鈕控件的Value值置為False,設置rowcount值為所選取的工作簿文件的工作表Sheet1的總行數(shù),修改rowno的值為2和ctno的值為0。將所有題目信息保存到數(shù)組arr中,并在文檔的表格中顯示第一題的相關(guān)信息。

        其中,獲取指定工作簿中工作表Sheet1的總行數(shù)時,首先啟動Excel程序,打開Excel文件,再獲取表Sheet1有效區(qū)域的總行數(shù),最后關(guān)閉Excel。具體實現(xiàn)代碼如下:

        Dim excelobject As Object, r As Long

        Set excelobject = CreateObject("excel.application") '啟動Excel程序

        excelobject.Visible = False '不可見

        Set wb = excelobject.Workbooks.Open(filepath, ReadOnly:=True)

        On Error Resume Next

        r = wb.sheets(1).UsedRange.Rows.Count

        GetRow = r

        excelobject.Quit

        上述Excel工作簿的工作表Sheet1中的內(nèi)容要求格式如圖3所示。

        將題目信息保存至數(shù)組arr中,其在實現(xiàn)時要求首先啟動Excel程序,打開Excel文件,再將有效單元格區(qū)域保存至數(shù)組arr,最后關(guān)閉Excel。具體實現(xiàn)代碼如下:

        Dim excelobject As Object, wb As Object, i As Long

        Set excelobject = CreateObject("excel.application") '啟動Excel程序

        excelobject.Visible = False '不可見

        Set wb = excelobject.Workbooks.Open(filepath, ReadOnly:=True)

        cellsstr = "a1:h" & rowcount

        arr = wb.sheets(1).Range(cellsstr)

        excelobject.Quit

        將當前題目寫入文檔表格中的實現(xiàn)代碼如下:

        With ActiveDocument.Tables(1)

        .Cell(1, 1).Range.Text = Str(rowno - 1) & ". "

        For i = 1 To 5

        .Cell(i, 2).Range = arr(rowno, i + 1)

        Next

        End With

        2)“上一題”按鈕Click事件的設計

        首先判斷rowno的值是否大于2,若是則將單選按鈕的Value值置為False,清空文檔中表格的內(nèi)容,rowno的值減1,再將當前題目寫入文檔的表格中;否則,出現(xiàn)提示對話框,表明沒有題目。

        3)“下一題”按鈕Click事件的設計

        首先判斷rowno的值是否小于rowcount,若是則將單選按鈕的Value值置為False,清空文檔中表格的內(nèi)容,rowno的值增1,再將當前題目寫入文檔的表格中;否則,出現(xiàn)提示對話框,表明沒有題目。

        4)“查看答案”按鈕Click事件的設計

        首先判斷rowno的值是否大于0,若是則在表格中顯示答案。在表格中顯示答案的代碼如下:

        With ActiveDocument.Tables(1)

        .Cell(7, 2).Range = arr(rowno, 8)

        .Cell(6, 2).Range = UCase(arr(rowno, 7))

        End With

        5)“隱藏答案”按鈕Click事件的設計

        如果rowno的值大于0,則將表格中參考答案和備注欄清空。

        6)“標記題目”按鈕Click事件的設計

        第1步,檢查文檔的表格中題目內(nèi)容、四個備選項和參考答案,只要有一項是空的,則顯示出錯對話框,并結(jié)束;第2步,繼續(xù)檢查參考答案是否為大寫或小寫字母A到D中的一個,若不是,則顯示出錯對話框,并結(jié)束;第3步,檢查該題在errarr數(shù)組中是否已存在,若是則結(jié)束;第4步,將ctno的值增1,并且將當前文檔表格中的題目信息保存到數(shù)組errarr中。

        正是因為這樣的操作,保證了用戶可以在文檔中輸入新的題目。

        7)“保存標記題目”按鈕Click事件的設計

        第1步,顯示圖4所示的文件的另存為對話框,將用戶所設置的文件名和完整路徑保存至變量FileName中;第2步,檢查文件的類型是否為Word文檔,如果不是,則顯示相關(guān)的出錯信息,并結(jié)束;第3步,檢查文件名為FileName的文檔是否存在,若該文檔存在且處于打開狀態(tài),則將該文檔先關(guān)閉再刪除,如果該文檔存在但尚未打開,則刪除該文檔。第3步的具體實現(xiàn)代碼如下:

        Set wd = GetObject(, "Word.Application")

        wdna = Dir(FileName)

        If wdna <> "" Then

        For Each doc In wd.Documents

        If doc.FullName = FileName Then

        doc.Close

        Exit For

        End If

        Next

        Kill FileName

        End If

        第4步,新建文檔,并以FileName命名保存,設置該文檔中的內(nèi)容,即為所有的標記題目的信息errarr數(shù)組的內(nèi)容,再保存該文檔并關(guān)閉,顯示W(wǎng)ord文檔成功生成的對話框。具體的實現(xiàn)代碼如下:

        Set wdnw = wd.Documents.Add

        wdnw.SaveAs FileName

        For i = 1 To ctno

        With wdnw.ActiveWindow.Selection

        .TypeText Text:=errarr(i + 1, 1)

        .TypeText Text:=". "

        For j = 2 To 6

        If j > 2 Then

        .TypeText Text:=Chr(62 + j) & "、"

        End If

        .TypeText Text:=errarr(i + 1, j)

        .TypeParagraph

        Next

        .TypeText Text:="參考答案:"

        .TypeText Text:=UCase(errarr(i + 1, 7))

        .TypeParagraph

        .TypeText Text:="說明:"

        .TypeText Text:=errarr(i + 1, 8)

        .TypeParagraph

        End With

        Next

        wdnw.Close True

        第5步,修改FileName文件名的擴展名為“xlsx”;第6步,打開Excel,如果有文件名為FileName的Excel文件,則刪除;第7步,新建Excel文件,并寫入數(shù)組errarr中的所有信息,該文件的格式如圖3所示,再保存并退出Excel,該步驟的具體實現(xiàn)代碼如下:

        Set exbk = ex.Workbooks.Add

        exbk.SaveAs FileName

        For i = 1 To ctno + 1

        For j = 1 To 8

        rngstr = Chr(64 + j) & Trim(Str(i))

        exbk.sheets(1).Range(rngstr).Value = errarr(i, j)

        Next

        Next

        exbk.Close True '保存并關(guān)閉工作簿文件

        第8步,關(guān)閉Excel,顯示Excel文件生成成功的對話框。

        2.3 四個單選按鈕Click事件的設計

        首先判斷rowno的值是否大于零,如果不是則結(jié)束,因為沒有相關(guān)的題目記錄;否則,判斷用戶所單擊的答案選項是否與題目的參考答案相同,如果是則出現(xiàn)圖5(a)所示的對話框,否則出現(xiàn)圖5(b)所示的對話框。

        3 結(jié)束語

        本文詳細介紹了使用VBA開發(fā)單項選擇題練習使用的文檔的方法,以及具體的功能實現(xiàn)。文中所設計的練習文檔可以很方便地為用戶使用,無需安裝其他軟件,因為在設計時使用的是Excel文件來保存題目信息,所以使用者在維護修改題目時也較為方便。該文檔具有一定的實際應用價值。

        參考文獻:

        [1] 仝海燕, 呂紅善, 秦春影,等. 基于VBA的交互性習題的設計[J]. 韶關(guān)學院學報·自然科學, 2014, 35(6) : 24-29.

        [2] 方波, 李亞男, 劉加加 等. VBA在考試系統(tǒng)中的運用[J]. 電腦知識與技術(shù), 2015, 11(8): 48-49.

        [3] 解必華, 奚玉梅. 基于VB的Excel打印插件設計及實現(xiàn)[J]. 電腦知識與技術(shù), 2011, 7(6) :1343-1345.

        [4] 羅剛君, 楊嘉愷. 來吧! 帶你玩轉(zhuǎn)Excel VBA[M]. 北京: 電子工業(yè)出版社, 2013.

        [5] 裴純禮. Word教育教學高級應用[M]. 北京: 北京郵電大學出版社, 2013.

        猜你喜歡
        按鈕設計
        哪個是門鈴真正的按鈕
        當你面前有個按鈕
        何為設計的守護之道?
        《豐收的喜悅展示設計》
        流行色(2020年1期)2020-04-28 11:16:38
        門鈴按鈕
        瞞天過海——仿生設計萌到家
        設計秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        死循環(huán)
        有種設計叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        內(nèi)心不能碰的按鈕
        亚洲精彩av大片在线观看| 亚洲爆乳无码专区| 亚洲都市校园激情另类| 亚洲一区二区三区新视频| 亚洲国产精品av在线| 丁香六月久久婷婷开心| 亚洲精品中文字幕无乱码麻豆| 国产小车还是日产的好| 麻婆视频在线免费观看| 国模吧无码一区二区三区 | 国产精品美女久久久免费| 亚洲精品乱码久久久久久蜜桃图片| 国产精品无码久久久一区蜜臀| 白嫩少妇在线喷水18禁| 久久精品国产99久久久| 精品国产aⅴ无码一区二区| 亚洲中文字幕av天堂| 男男做h嗯啊高潮涩涩| 大ji巴好深好爽又大又粗视频| 蜜桃成人无码区免费视频网站 | 91久久精品一区二区喷水喷白浆| 日韩一区av二区三区| 中文www新版资源在线| 久久av高潮av喷水av无码| 日韩日本国产一区二区| 十八禁无遮挡99精品国产| 亚洲va在线∨a天堂va欧美va| 91精品国产无码在线观看| 日本一二三四区在线观看| 欧美成人精品午夜免费影视| 国产精品偷伦视频免费手机播放| 国产99久久久国产精品免费| 亚洲日韩成人无码| 国产精品亚洲综合色区韩国| 杨幂Av一区二区三区| 刚出嫁新婚少妇很紧很爽| 初女破初的视频| 一区二区免费电影| 国产一区二区在线免费视频观看 | 在线无码中文字幕一区| 老湿机香蕉久久久久久|