日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

WORD中VBA自動(dòng)出卷

 shuaixinerwei 2012-02-24

Word中自動(dòng)出卷

1 總體設(shè)計(jì)方案
(1)建立試題庫及設(shè)計(jì)含固定卷首的空白試卷。WORD文檔要從ACCESS數(shù)據(jù)庫形式的試題庫中調(diào)用試題,是Microsoft Office應(yīng)用程序之間的信息交換。根據(jù)需要可設(shè)計(jì)一個(gè)便于執(zhí)行各種操作,包括具有增、刪及調(diào)用功能的ACCESS數(shù)據(jù)庫(本例庫名為pxp.mdb),庫中含填空題、選擇題、判斷題、問答題及綜合題等各類題型的表(如填空題對應(yīng)于表pxptkt)。試卷往往可以有固定的卷首格式,故預(yù)先設(shè)計(jì)含固定卷首(圖1)的一空白試卷供程序調(diào)用。
(2)創(chuàng)建應(yīng)用程序界面。自動(dòng)出卷所涉及的試題提取、編寫題頭、試卷排版、試卷分析、保存試卷及打印輸出等任務(wù)都在同一界面窗口中得以完成。
(3)該應(yīng)用程序嵌入于Microsoft Office某一應(yīng)用程序中。這一應(yīng)用程序可以在《化學(xué)工程考試系統(tǒng)》中擔(dān)當(dāng)被調(diào)用的模塊,為了不影響Microsoft Office正常操作,也可作為Microsoft Office某一應(yīng)用程序的一部分(該應(yīng)用程序嵌入在WORD中)嵌入其中,使Microsoft Office的應(yīng)用功能得到擴(kuò)展。
3 具體方案的實(shí)現(xiàn)
可在ACCESS應(yīng)用程序中建立試題庫。一表一題型,一題一記錄,每一記錄中含題目、答案、難度系數(shù)等項(xiàng)目(難度系數(shù)便于試卷分析用)。以下主要就嵌入式應(yīng)用程序的某些關(guān)鍵之處作重點(diǎn)闡述,由于篇幅所限,許多細(xì)節(jié)此處不多贅述。
3.1 嵌入方案的實(shí)現(xiàn)
在Office的各應(yīng)用程序中,用VBA可以創(chuàng)建許許多多的自定義小程序。這些小程序往往通過創(chuàng)建一個(gè)工具欄中工具按鈕或創(chuàng)建菜單項(xiàng)來運(yùn)行,即采用嵌入的方式使Office各應(yīng)用程序的應(yīng)用功能得到擴(kuò)展。比如在Office應(yīng)用程序Word中創(chuàng)建一個(gè)工具按鈕,當(dāng)用戶單擊所創(chuàng)建的工具按鈕時(shí),Click()事件觸發(fā),并執(zhí)行特定的代碼以響應(yīng)事件。因此,創(chuàng)建工具按鈕來運(yùn)行VBA程序不失為一種擴(kuò)展Office各應(yīng)用程序應(yīng)用功能的嵌入式方法。
3.1.1 創(chuàng)建一個(gè)工具按鈕
打開Visual Basic編輯器,添加一個(gè)新的類模塊,其名稱默認(rèn)為類1。當(dāng)新建一個(gè)Word文檔時(shí),在常用工具欄中自動(dòng)添加一個(gè)名為“自動(dòng)出卷”的工具按鈕(按鈕圖標(biāo) ),其VBA代碼如下:
Dim cmd As New 類1
Private Sub Document_New()
With Application.CommandBars("standard").Controls.Add(Before:=1)  
.Caption = "自動(dòng)出卷"  '將添加的工具按鈕命名為“自動(dòng)出卷”
.FaceId =2985  '設(shè)置工具按鈕的圖標(biāo)
End With
Set cmd.cmdcj = Application.CommandBars("standard").Controls("自動(dòng)出卷")  
End Sub
With…End With塊中為添加一個(gè)工具按鈕的最基本代碼,工具按鈕命名為“自動(dòng)出卷”,并設(shè)置工具按鈕圖標(biāo)。代碼中包含的Set語句為工具按鈕聲明,當(dāng)你單擊此工具按鈕時(shí),將執(zhí)行cmdcj_Click()過程中的代碼。
3.1.2 工具按鈕的Click()事件
單擊添加的工具按鈕時(shí),執(zhí)行cmdcj_Click()過程中的代碼完成以下工作:1)關(guān)閉當(dāng)前文檔;2)打開如圖1所示名為“test.doc”的空白試卷文檔;3)顯示嵌入式應(yīng)用程序的界面,即名為“pxpform”的窗體(圖2)。
cmdcj_Click()過程中的代碼如下:
Public WithEvents cmdcj As Office.CommandBarButton
Private Sub cmdcj_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
Documents.Close  '關(guān)閉當(dāng)前文檔
Documents.Open FileName:="C:\temp\test.doc"  '打開路徑及文件名為“C:\temp\test.doc”的文檔
pxpform.Show  '顯示名為“pxpform”的窗體
End Sub
  
圖1  空白試卷文檔“test.doc”          圖2    “自動(dòng)出卷”嵌入式應(yīng)用程序界面
3.2 連接數(shù)據(jù)庫及試題的提取與編排
在WORD中創(chuàng)建“自動(dòng)出卷”應(yīng)用程序,其關(guān)鍵所在是跨Office各應(yīng)用程序建立集成的解決方案,即從WORD中創(chuàng)建與ACCESS數(shù)據(jù)庫連接并提取試題進(jìn)行編排。一個(gè)ACCESS數(shù)據(jù)庫包含了所需要的各類試題,并確定放在某個(gè)目錄之下。如本例ACCESS數(shù)據(jù)庫庫名為“pxp.mdb”,放在目錄“C:\temp”之下。ACCESS數(shù)據(jù)庫中根據(jù)試題分類建立相應(yīng)的表,如填空題對應(yīng)的表為“pxptkt”。
3.2.1 連接ACCESS數(shù)據(jù)庫
ADO為Microsoft的ActiveX數(shù)據(jù)對象,其連接數(shù)據(jù)庫的功能是基于Microsoft的OLE DB技術(shù)。引用ActiveX數(shù)據(jù)對象的一般步驟為:1)切換到WORD中的Visual Basic編輯器;2)執(zhí)行“工具/引用”菜單命令;3)在打開的對話框中選擇要引用的ActiveX數(shù)據(jù)對象(WORD從Access數(shù)據(jù)庫中檢索與調(diào)用數(shù)據(jù)可在對話框列表中選擇Microsoft ActiveX Data Objects 2.0 library項(xiàng));4)創(chuàng)建VBA宏代碼連接數(shù)據(jù)對象及操作數(shù)據(jù)對象。由ADO的Connection 對象處理到與數(shù)據(jù)庫的連接,建立連接使用Open方法,采用以下語法:
Connection.Open Connectionstring,UserID,Password,Options
Open方法中參數(shù)Connectionstring為包含連接信息的字符串,UserID為連接時(shí)使用的用戶名。Password為連接時(shí)使用的口令,Options為是否希望Open方法等待連接的建立還是立即返回。
以下VBA代碼實(shí)現(xiàn)ADO連接ACCESS數(shù)據(jù)庫,即在WORD文檔中連接ACCESS數(shù)據(jù)庫形式的試題庫中調(diào)用試題:
Public setpxp As New ADODB.Recordset
Public cnnpxp As New ADODB.Connection
Dim constring As String
constring = "provider=microsoft.jet.oledb.4.0;" & "data source=" & "C:\temp\pxp.mdb"
cnnpxp.Open constring

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多