孫俊峰
(西南民族大學, 四川 成都 610041)
一種基于VBA平臺的OA文檔處理方案及其模擬實現(xiàn)
孫俊峰
(西南民族大學, 四川 成都 610041)
OA系統(tǒng)經(jīng)常需要分發(fā)由Office等軟件生成的文檔并要求接收者在完成一些編輯操作后傳回, 在編輯過程中往往會存在不規(guī)范甚至錯誤的操作, 從而延長了人工查錯糾錯的時間并增加了工作量. 針對這種情況, 提出利用VBA平臺對編輯過程加以限制和規(guī)范, 使用“宏”(Macro)來編輯和保存文檔, 減少或避免出錯的幾率. 以Word2003 VBA表格填寫應(yīng)用為例, 對運行過程進行了模擬實現(xiàn).
可視化編程; VBA; 宏; OA; 文檔處理
辦公自動化系統(tǒng)(Office Automation, 簡稱OA), 是1970S以來, 在現(xiàn)代經(jīng)濟大力發(fā)展特別是IT行業(yè)興盛的背景下迅速發(fā)展起來的一門綜合性方法和技術(shù)[1]. 隨著OA在國內(nèi)的普及, 越來越多的用戶開始自覺在日常工作中使用OA系統(tǒng), 極大的提高了工作效率, 減輕了勞動強度[2]. 在通過OA系統(tǒng)提交和傳遞的文件中, 以MS Office和WPS Office生成的文檔最為常見[3], 由于它們采用了大量的面向?qū)ο蠹夹g(shù)和可視化操作[4], 使得沒有經(jīng)過專門培訓的普通用戶都可以在很短的時間內(nèi)掌握基本的操作并達到日常辦公所需的應(yīng)用水平[5].
在OA系統(tǒng)中傳遞的Office文檔常常以附件的形式發(fā)送和接收, 接收者在下載附件后往往還需要對文檔執(zhí)行編輯操作并將結(jié)果重新反饋給發(fā)送者, 在編輯過程中由于操作者的個體差異, 填寫的格式不規(guī)范甚至內(nèi)容錯誤等問題時有發(fā)生, 使得匯總過程中查錯和糾錯的時間延長, 工作量也相應(yīng)增加. 為了改善這種情況, 可以基于OA和常用的Office軟件開發(fā)一套獨立的文檔編輯和處理系統(tǒng), 使用共享處理并提高安全性, 滿足多人在線輪流處理相同文檔的需求[6]. 也可以將文件的提交和填寫過程進行一定程度的限制和規(guī)范化, 減少人為帶來的失誤.對于普通用戶而言, 較為經(jīng)濟適用的選擇是利用VBA平臺進行這類系統(tǒng)的開發(fā).
2.1 VBA簡介
VBA的全稱為Visual Basic for Application, 是基于VB語言的一種二次開發(fā)平臺, 可用于擴展基于WINDOWS的應(yīng)用程序特別是Office軟件的功能. VBA一般以“寄生”的形式存在于應(yīng)用軟件中, 方便普通用戶查閱和調(diào)用其中的程序及代碼. 由于采用了VB語言的可視化技術(shù), 使得開發(fā)過程容易掌握和實現(xiàn). 以常見的Word為例, 其中寄生的VBA可以實現(xiàn)用戶操作過程的錄制和獨立的程序編寫, 方便的訪問各種對象, 實現(xiàn)規(guī)范化的自動化操作[7]. 如果需要反復執(zhí)行某項任務(wù), 還可以將這項任務(wù)的步驟錄制為 “宏”, 以后就可以通過執(zhí)行這條“宏”記錄來自動執(zhí)行該任務(wù). 除此之外, VBA還可以較為快捷的實現(xiàn)文檔管理程序的開發(fā)和格式的轉(zhuǎn)換[8].
2.2 VBA的應(yīng)用
在通過OA系統(tǒng)分發(fā)的諸如調(diào)查、申報、登記、問卷、注冊信息之類的文檔中, 使用VBA可以使操作界面更加友好并減少失誤, 提高效率, 還可對填寫結(jié)果有限制條件的內(nèi)容進行提前設(shè)置, 減少不規(guī)范填寫, 比如能統(tǒng)一填寫內(nèi)容的樣式和格式. 還能對填寫結(jié)果進行檢查, 糾正錯誤. 因此, 在日常文件處理中, VBA可以使文檔錄入和提交操作效率更高, 減少反復人工校對和糾錯的時間. 由于Office文檔在OA系統(tǒng)中上傳下載的頻率最高,需要手動編輯的次數(shù)也最頻繁, 因此從貼近實用性方面來說, VBA 在 Office 環(huán)境中有時已經(jīng)成為程序員開發(fā)的首選語言[9]. 應(yīng)用VBA對Office進行優(yōu)化, 可以在有限的開發(fā)工作量基礎(chǔ)上實現(xiàn)自動化、規(guī)范化的文件編輯和管理, 由于VBA以寄生的形式存在于應(yīng)用軟件中, 沒有獨立的安裝和卸載過程, 可以直接利用Office宏安全的設(shè)置來加以管理, 其應(yīng)用范圍非常廣泛[10], 并能實現(xiàn)很多高效實用的功能開發(fā)[11].
VBA編程簡單、方便、功能強大, 具有與其它語言及環(huán)境的良好接口, 不需要編程開發(fā)人員具備 C語言或Pascal語言知識和特別系統(tǒng)的專業(yè)知識, 只要懂得 Windows的界面及其基本操作就可以迅速上手, 而且 VBA在程序界面設(shè)計、多媒體開發(fā)方面也具有一定優(yōu)勢[12]. 因此, 為了使VBA的功能更好的發(fā)揮作用, 有必要利用VBA的簡潔、免安裝、自動化、批處理等特性和功能實現(xiàn)對B/S模式OA系統(tǒng)的優(yōu)化. 目前基于VBA的大多數(shù)系統(tǒng)開發(fā)都是針對EXCEL的, 很少有針對Word、WPS等文字處理軟件的系統(tǒng)開發(fā)研究及其成果方便的報道,但文字處理軟件在文檔管理和編輯過程中出現(xiàn)的頻率又非常高, 因此, 針對文字處理軟件的VBA系統(tǒng)開發(fā)方案的研究是有必要的. 本試驗以Word2003為例, 嘗試從文件的保護、編輯、查錯、保存、人機接口幾個方面綜合應(yīng)用VBA功能, 并且將這些功能整合在一起, 形成較為系統(tǒng)的流程, 探索VBA在OA文件處理過程中的優(yōu)化方案及其具體的功能實現(xiàn)途徑, 為實用系統(tǒng)的開發(fā)提供參考和借鑒.
在日常操作中, 表格填寫是最為常見的操作, 以企業(yè)“注冊信息表”中的部分內(nèi)容“企業(yè)信息”為例(見表1中粗體文字部分), 演示文檔的自動填寫和糾錯系統(tǒng)的設(shè)計.
表1 企業(yè)注冊信息表Tab. 1 Enterprise Registration Information Table
3.1 設(shè)計目標
注冊信息表通過Word的文檔保護功能拒絕直接填寫, 填寫過程開始后, 由可視化的命令按鈕和窗體完成,最大限度的防止填寫錯誤, 點擊提交按鈕后, 可自動完成諸如日期、身份證號碼等信息的糾錯和提示, 自動計算注冊有效期, 并通過宏代碼取消文檔保護和填寫表格, 自動另存為規(guī)范化名稱的文檔后退出程序. 整個流程如圖1所示.
圖1 處理流程圖Fig. 1 Management Flow Chart
3.2 模擬實現(xiàn)
要讓用戶收到文檔后能夠按照規(guī)范填寫, 需要對“宏”安全設(shè)置進行修改, Office默認宏安全性為高, 應(yīng)修改為中等安全性, 以便于程序運行. 以Word2003版為例, 選擇“工具”/“宏”/“安全性”, 打開宏安全設(shè)置對話框, 選擇安全性為“中”, 讓OFFICE打開帶有宏的文檔時詢問用戶是否選擇啟用宏, 如果用戶確定該文檔是安全的(比如自己編輯的代碼或來自O(shè)A的待處理文件)就可以啟用宏, 如果不確定就應(yīng)該點選“禁止”啟用. 如未另外說明,以下操作均以Word2003為例.
3.2.1 文檔保護
在管理人員將需要處理的文檔上傳到OA之前, 可以設(shè)置文檔的狀態(tài)為受保護狀態(tài). 代碼可通過宏錄制或編寫, 將其存儲于需要處理文檔的程序模塊中. 代碼如下所示:
3.2.2 解除保護
如果用戶填寫正確, VBA將用戶窗體中的填寫內(nèi)容寫入表格, 需要解除文檔保護, 寫入完成后再重新啟動文檔保護. 代碼如下所示:
3.2.3 “填寫”按鈕設(shè)置
根據(jù)表格內(nèi)容的需要, 可以在Word文件中直接設(shè)置若干填寫按鈕, 設(shè)置方法可以通過打開“視圖/工具欄/Visual Basic”, 然后在彈出的Visual Basic工具條中打開“控件工具箱”, 選擇其中的“命令按鈕”控件, 在Word頁面視圖狀態(tài)在頁面的頂端將命令按鈕控件畫出來. 如果文檔需要打印并且不顯示命令按鈕等控件, 需要打開“工具/選項/打印選項卡/”, 取消勾選“圖形對象”. “填寫”按鈕作用為, 當用戶按下命令按鈕時, 彈出窗體. 以“企業(yè)基本信息”命令按鈕(命令按鈕名稱為jbxx)及其對應(yīng)的彈出窗體(窗體名稱為jbxx)為例, 代碼如下所示:
3.2.4 窗體設(shè)置
窗體根據(jù)表格內(nèi)容設(shè)置如圖2所示. 窗體上的控件包括命令按鈕、標簽、文本框、下拉框幾種類型. 為了讓每個窗體中的內(nèi)容不互相影響, 應(yīng)該將過程聲明為私有過程, 即“Private Sub”, 避免窗體預(yù)設(shè)內(nèi)容的混亂和干擾.
代碼如下所示: (1)窗體預(yù)設(shè)代碼
圖2 窗體效果Fig. 2 Form Result
3.2.5 “提交”按鈕設(shè)置
“提交”按鈕的作用為: 當按下提交后, 提示是否確認提交, 如確認, 則彈出輸入框要求用戶按照規(guī)定輸入用戶名, 并將系統(tǒng)當前狀態(tài)和用戶名一起寫入文檔名另存到本地計算機的某個目錄下(例如桌面). 例如“提交”按鈕的名稱為“Commandbutton1”, 代碼模擬如下:
結(jié)合相關(guān)實踐, 模擬試驗證明通過VBA來處理文檔至少可以實現(xiàn)如下優(yōu)化:
(1)有效保護文檔. 對文檔寫保護, 在用戶通過VBA填寫相關(guān)信息時, 依靠點擊命令按鈕, 依靠后臺代碼完成對文檔的“取消保護”操作并寫入數(shù)據(jù), 然后再自動重新保護文檔. 通過禁止直接在文檔中直接編輯, 可以有效預(yù)防因為編輯失誤造成對原始內(nèi)容的誤刪或無意篡改.
(2)充分利用域. 利用VBA, 可以充分利用域的自動化功能, 比如在需要用戶輸入大段文字的地方可以插入文本域來加以提示和限定, 在需要填寫當前時間等信息的地方可以插入日期域并通過點擊“提交”按鈕來完成時間的更新等.
(3)自動檢查. 在用戶完成信息填寫后, 可以通過點擊“檢查”按鈕, 利用后臺代碼檢查填寫內(nèi)容是否正確, 如有錯誤則提示用戶修改. 也可將檢查糾錯功能直接在填寫過程中提現(xiàn), 在填寫諸如時間、身份證號碼、電話號碼等信息時自動檢查和提示錯誤的輸入并給予正確輸入的格式示例.
(4)減少重復. 文檔中需要重復填寫的數(shù)據(jù)可以只填寫一次, 比如在文檔中需要重復輸入的姓名、工作單位、地址等信息, 可以利用交互式的窗體將這些需要重復信息集中到一起, 編輯者僅僅需要輸入一次, 就可以在文檔不同的地方完成這些信息的填寫, 有效的降低了工作量并降低了出錯的幾率.
(5)集中編輯. 通過VBA可以將文檔中處于不同位置的若干相關(guān)內(nèi)容集中到同一個窗體中操作, 比如復雜表格中不同位置的內(nèi)容集中到同一個窗體中操作, 或者位于不同工作表中的相關(guān)內(nèi)容集中到一個窗體中填寫.
(6)規(guī)范文件名. 在一些調(diào)查問卷之類的文檔中, 需要對文件名加以規(guī)范, 用戶確認填寫完成并提交后, VBA可以自動將文檔另存為規(guī)范的文件名.
試驗從文檔編輯操作環(huán)節(jié)對VBA平臺作用于OA系統(tǒng)的輔助功能進行了闡述和模擬, 在實際應(yīng)用中, VBA平臺還可以在各種不同的層次和環(huán)節(jié)對OA系統(tǒng)進行協(xié)同與補充, 同時還能有針對性的實現(xiàn)對軟件的二次開發(fā),不僅能快速定制客戶端程序, 還能利用面向?qū)ο蠛涂梢暬腣B語言幫助使用者高效的處理自己在日常工作中所面臨的特殊問題[13], 因此在應(yīng)用OA系統(tǒng)的同時有必要在計算機知識培訓方面推廣VBA的應(yīng)用, 提高工作效率.
[1]范玉順, 胡耀光. 企業(yè)信息化規(guī)劃的基本框架與方法[J]. 新技術(shù)新工藝, 2004(9): 2-7.
[2]尹帆等. 基于工作流的辦公自動化系統(tǒng)的研究與實現(xiàn)[J]. 武漢理工大學學報, 2004, 28(1): 114-117.
[3]王志軍. Office 2013 WPS 2012 誰是你的Style[J]. 電腦愛好者, 2013(1): 8-18.
[4]何勇. 親密無間—Word2000與其他Office程序間的合作[J]. 電腦技術(shù), 2001(2): 70-72.
[5]韓娜. WPS Office 與 MS Office 之間的較量[J]. 科技信息, 2007(7): 162-164.
[6]許淑華, 齊鳴鳴. 基于雙層簽名的 Word 公文在 OA 系統(tǒng)中的實現(xiàn)[J]. 微計算機信息: 2008, 24(5): 266-268.
[7]楊曉亮. Word VBA高效排版范例應(yīng)用[M]. 北京: 中國青年出版社, 2005: 1-15.
[8]鄧劍文. 使用 VBA 開發(fā)文檔管理程序[J]. 南昌高專學報, 2006, 21(5) : 100-101.
[9]肖春英. 基于 VBA 改進的酒店管理系統(tǒng)程序[J]. 2013(12): 106-108.
[10]北京博彥科技發(fā)展有限責任公司. 編程高手 Office VBA [M]. 北京: 北京大學出版社, 2000.
[11]李政, 梁海英, 李昊, 林廣朋. VBA 應(yīng)用基礎(chǔ)與實例教程[M]. 2版. 北京: 國防工業(yè)出版社, 2009.
[12]王蕊. 基于VBA技術(shù)的工資管理系統(tǒng)——以云南經(jīng)濟管理職業(yè)學院為例[D]. 成都: 電子科技大學, 2011.
[13]胡煥然, 陳奉英. Word VBA 的幾種應(yīng)用[J]. 新余高專學報, 2007, 12(4): 74-76.
An OA document processing scheme and its simulation based on VBA platform
SUN Jun-feng
(Southwest University for Nationalities, Chengdu 610041, P.R.C.)
In OA systems, the Office documents often need to be distributed and sent back after some editing operation. Some questions in the editing operation, such as not standardized editing or error, will increase workload. This paper proposes the use of VBA and Macro platform to edit and save the documents, which would avoid and reduce the chances of error. With Word2003 VBA as an example, the simulation is done.
visual programming ; VBA; Macro; OA; document processing
TP317.1
A
1003-4271(2014)05-0739-06
10.3969/j.issn.1003-4271.2014.05.20
2014-05-18
孫俊峰(1979-), 男, 漢族, 重慶豐都人, 講師, 博士, 從事旅游管理信息系統(tǒng)教學與培訓研究.
西南民族大學2012年青年教改項目: VBA在旅游管理信息系統(tǒng)理論與實操教學中的應(yīng)用(2012QN12).