解明才
(云南省通海縣教師進修學校 云南玉溪 652799)
基于Execl VBA的一個企業工藝通知單程序設計
解明才
(云南省通海縣教師進修學校 云南玉溪 652799)
隨著各行各業的管理數字化,對數據的處理能力要求也越來越高,明顯Excel力不從心,VBA的出現使得Excel重新強大起來。學習一定的VBA語言以后,可以為平時的數據處理提供一個良好的開發環境,也可以自己進行程序設計。
Excel;VBA;數據處理;印刷企業;程序設計
VBA是什么呢?VBA的全稱是Visual Basic for Application。VBA是Microsoft Visual Basic的應用程序版本,它集成在office組件之中。由于VBA的出現,使Office形成了獨立的編程環境。
VBA最簡單的應用就是自動執行重復的操作。比如在Excel中,我們要格式化月報表,格式化表格,設置字體、添加邊框等等,這些重復的操作,如果使用VBA代碼的話,我們可以讓過程自動化,為我們節省很多時間。VBA還可以進行復雜的數據分析對比,以及使用VBA生成一些非常漂亮的、復雜的報表和圖表;除了這些,VBA還可以定制個性化用戶界面。
作為Excel來說,提供了一個固定的用戶界面,我們也可以借助VBA定制用戶界面。VBA并不是孤立的存在于Excel等某個軟件之中。VBA是集成在offic組件之中,在VBA中可以使office組件協同工作。VBA雖然不是專業的程序開發語言,但它也可以應用于Excel的二次開發,市面上也有不少商用的Excel應用程序就是使用VBA開發出來的。
該企業工藝通知單一年大概1000張左右,對于專業的數據庫來說,這樣的數據量算非常小,沒必要選用專業數據庫,又考慮到這張通知單樣式企業已經用了好幾年了,是用Excel2003做的,不想改變原來的樣式,所以索性決定用原來的樣式進行加工設計,讓操作者用起來不至于感到陌生,而且Excel的單張電子表格可以保存255×65536個單元格的數據,完全可以滿足企業的需要,而且考慮到后期的數據維護,Excel用戶操作很熟悉,數據備份也很簡單,直接拷貝一個文件就是備份,并且只要電腦里裝有微軟的OFFICE套裝軟件,程序就能運行,方便攜帶和傳遞使用,可以說,基本的小型軟件開發選用EXCEL+VBA是非常不錯的方案。
為了提高數據錄入的速度和有效性,針對通知單的各項數據進行進一步分析,制定完成任務的方法。
(1)產品編號。由于原來企業就有自己的產品編號規則:年+月+編號,如:201404001,這規則是當年+當月+當月編號,這個編號是通知單的唯一編號,不允許重復,如果是手工錄入的話很簡單,但會出現重復的情況,而且進行數據查詢的時候也是要對這個數據進行唯一檢索,為了提高錄入的效率和唯一性,決定進行程序自動編號。
(2)產品名稱。不是唯一性,用戶自由錄入。
(3)用戶單位。用戶可以自行錄入,但考慮到錄入的速度和名稱的一致性,決定設計程序對以前錄入的用戶名稱進行不重復模糊查詢供用戶選擇后快速錄入,也就是智能匹配。
(4)交貨時間、開單時間:利用Excel自帶的日歷控件供用戶選擇,但交貨這個時間只需要月和日,所以必須對日歷進行格式化,去掉年,格式化程序代碼為:Format(Calendar1.Value,“m月d日”)。
(5)薄膜種類、類型、制表人、接件、審核。這幾個項目會根據企業調整進行增減,考慮制作一個字典表格,供操作者自己進行維護,然后用Excel自帶的有效性進行匹配選擇。
(6)印刷色系和工藝流程。這兩個項目的內容是固定的,不同的是每個產品的項目有多有少,所以考慮設計窗體供用戶根據實際情況進行選擇。這樣的好處是用戶可以快速的進行錄入,而且保持內容的一致性。
(7)其他項目。其他項目基本都是由用戶自行根據情況錄入。
(8)查詢。數據管理最重要的一個環節就是可以進行數據的查詢,對以前的數據進行快速的數據檢索,把用戶需要的數據查詢并顯示出來。在本程序中,設計了一個單獨的查詢窗體,用戶可以選擇查詢的項目,并錄入查詢的關鍵字就可以以列表的方式把需要的記錄顯示出來,然后在列表數據中雙擊任意一條記錄,就可以把數據完整的顯示在通知單中,供用戶進行再次使用。
(9)打印。通知單數據錄入好以后或者需要的數據查找出來以后,就可以進行打印區域的設置并打印輸出了。
要進行VBA代碼的編寫,首先要進入代碼編寫平臺,這個平臺是Excel自帶的,進入的方法是單擊“工具”→“宏”→“Visual Basic編輯器”,這個平臺俗稱VBE編輯平臺。
由于篇幅原因,代碼省略。
程序調試完成后,最后的工作是進行數據的保護。為了不讓用戶對表格和一些數據進行更改,需要對程序進行一些基本的保護。比如單元格的鎖定,能否選定,能否編輯等等,還有一些表格是不需要用戶看見的,可以隱藏等設置都需要開發者進行設置。另外,為防止用戶對代碼進行改動,需要對代碼也進行密碼保護,只有提供密碼,才能對VBA代碼進行編輯。
Excel的確是一個數據處理的好工具,但隨著數據需求的不斷變化,簡單的單元格、函數處理根本不能滿足需求,對于一般的小型管理軟件,不編寫程序是達不到要求的,幸好微軟的開發人員考慮到了這個問題,捆綁了VBE平臺,只要肯學習,多做實例,很快就能駕馭這個工具,為我們的工作需要服務。筆者就是通過網上的論壇進行學習的,搞不通的地方就發個貼,很多高手會很熱情的幫助解決。通過這個程序的設計,學到了很多知識,也對EXCEL下VBA代碼有了更深一步的掌握。但是程序設計的過程當中也發現了一些用Excel進行程序開發的不足,例如:沒有控件數組,在有多個相同控件的時候代碼很多,不能用數組處理;文件的保存問題,由于代碼和數據庫是在同一個文件中,如果程序非正常關閉,一切數據都會丟失等問題,但總的來說,Excel+VBA的方式已經可以幫助我們進行簡單的程序設計和開放,對于一般用戶已經足夠了。
[1]網絡論壇www.excelhome.net.
[2]Excelhome團隊.《Excel應用大全》.人民郵電出版社,2012,02.
[3]Excelhome團隊.ExcelVBA實戰技巧精粹(修訂版).人民郵電出版社,2013,01.
[4]羅剛君.ExcelVBA程序開發自學寶典(第2版).電子工業出版社,2011,08.
TP311.5
A
1004-7344(2016)08-0278-01
2016-2-22