王海峰
摘 要:隨著現代工業的發展,計算機數據管理系統越來越受到企業重視。本程序開發平臺是Visual Basic for Applications(VBA),該平臺是Microsoft Office系列的內置編程語言,它可以使常用的操作過程實行自動化處理,可以創建自定義的解決方案,在Office中可通過錄制宏來完成特定的自動化過程,錄制宏實際上就是將一系列的操作過程記錄下來并由系統自動轉換為VBA語句。當錄制宏不能滿足用戶需要時,就可以手動編寫VBA代碼來控制工作簿及工作表的各項操作[1]。我們通常使用Microsoft Excel軟件多文件轉置粘貼至單文件來編寫數據報告,但儀器生成的數據文件過多,手動粘貼工作量大且易出錯,而利用Excel VBA制作窗體及模塊,既可以提高工作效率,又可以提高數據處理的準確性。
關鍵詞:數據處理;VBA;辦公自動化
中圖分類號: F224-39 文獻標識碼: A 文章編號: 1673-1069(2016)26-141-2
1 系統分析
1.1 系統需求分析
由于波長色散X熒光光譜儀無標樣半定量分析測試樣品后生成的數據為一個樣品對應一個文件,在后期的數據處理中,大量的文件不利于結果的上報,需要將每一個文件中的元素符號和對應測定值粘貼到新的文件中,并按照相同順序和對應元素粘貼,其缺點是工作量大、出錯率高,非常不利于結果的統計.本程序的功能是循環打開文件夾內的需求文件,從源文件中按照元素順序復制其對應值,粘貼到新表之后再讀取下一個文件,最后處理格式,就可以在極短的時間內處理大量的數據。
1.2 開發環境
VBA實際上可以認為是VB的子集合,這樣它的運行環境也就很好理解,就是VB的運行的IDE環境都是基于Basic。它們包含的對象以及對象的屬性和方法都是相同的。兩者的不同在于它們的運行平臺不同,相對來說VB的運行平臺更廣,VBA則只是運行在Excel中,但也因此VBA可以利用Excel的數據處理功能,包括報表、數據統計、圖形分析等。
對于開發人員來說很有必要認識清楚VB和VBA的區別,在此列出以下幾條:
①利用VB開發的Windows應用程序,它的代碼部分最后必須是生成機器碼,而VBA開發的代碼并不直接生成機器碼,而是在產生VB的代碼后就停止,其他工作就不在屬于VBA,這是VBA的宏語言所決定;
②在獨立性方面VBA明顯不如VB,實際上VB有自己的開發環境,而VBA必須依附于某個應用程序,Excel就是VBA很好的“宿主”;
③VBA雖然有運行平臺的限制,但這也是它的優勢,可以利用平臺已有的功能加強自己而且可以簡化開發周期,這是VB所不具有的。盡管有這樣或那樣的不同,但是由于VB和VBA在構架上是相同的所以對開發者來說還是很簡單的,而且在程序的移植方面也是比較簡單的。[2]
1.3 程序流程分析(圖1)
2 波長色散X熒光光譜儀無標樣半定量分析讀取程序
2.1 用戶窗體設計
分析人員在打開程序后進入用戶窗體界面,波長色散X熒光光譜儀自動生成文件的前綴,在窗體中需要輸入本次測試樣品的起止編號、標準樣品編號以及需要創建文件的文件名。
2.2 循環讀取文件代碼設計
在輸入所有參數之后,程序將在固定目錄下查找對應的文件名,并逐一打開。
2.3 循環復制代碼的設計
每打開一個文件,需要按照需要的順序查找對應的元素,找到其所在的單元格地址,并將表格中的元素和其測定值復制到新建的表中,見圖3。
2.4 格式修改代碼的設計
在復制完成之后需要調整格式,需要將“10-6”改為上標“10-6”,并且將第一列的寬度改變為可以容納10位數字的適當寬度,見圖4。
3 結論
在該程序的整個開發實現過程中,完全以軟件工程的基本原理為指導,利用VBA函數、全局變量、多窗體鏈接等技術設計開發該程序。在數據方面,大量采用了查詢復制功能,極大地提高了工作效率。程序滿足了實驗室管理人員及數據處理人員的需求,即達成了對多種儀器生成報告的批量處理。主要功能模塊有數據查詢、數據復制、自動排版、批量計算等,實現了數據的瀏覽、編輯、整合及計算。實驗室管理人員及數據處理人員只需要在打開表格之后點擊宏,就可以實現對數據的批量處理。雖然該程序也有一些不足之處,但從實現的功能來看,已符合程序的設計要求。而且程序具有應用方式簡單、易于日后程序更新、數據管理操作方便、處理速度快等特點,因此該程序具有一定的應用推廣價值。
參 考 文 獻
[1] 汪雪君.基于VBA的礦用產品檢驗報告編制方案[J].工礦自動化,2009(11):95-97.
[2] Walkenbaeh J.中文Excel 2007高級VBA編程[M].馮飛,焦瑜凈,澤.北京:清華大學出版社,2009.