【20170929】- 你會使用VB封裝自定義函數嗎?

前幾期中為大家介紹了如何快速保存微信裡面的圖片,想了解詳情的請移步:【微信技巧】- 如何快速保存微信裡面的圖片?在文章末介紹了我編寫的一個小程序,那時還沒有完成,通過如下動態圖即可知道小程序如何使用:

終於在昨晚把該小程序上傳到SUT學習交流群中,需要的小夥伴可以下載哦。

好了,前幾天SUT學習交流群剛好有小夥伴問到關於VB6.0封裝的問題,因VBA我都是完全自學的,所以VB封裝我也沒玩過,所以這幾天就抽空學習一下如何使用VB6.0進行封裝。

今天封裝的自定義函數是20170321那天發送的圖文教程案例,請移步【Excel VBA】- 使用自定義函數自動生成序列號進行學習。那有些小夥伴就要問了,為什麼要封裝呢?代碼封裝主要有以下幾個用途:

1 便於傳播;發送給用戶一個dll文件即可,用戶使用Regsvr32.exe註冊即可,方便使用;

2 便於作者維護;如果發送給用戶VBA代碼,用戶可能隨便改動,導致作者維護起來很麻煩;

3 代碼更加安全;其實前面有寫一篇文章,為大家介紹如何儘可能的保護自己的VBA代碼,請移步【VBA技巧】- 如何儘可能的保護VBA代碼?進行學習。其實代碼安全都是相對的,沒有絕對的安全。最多就是增加別人的Crack成本。一般而言,代碼根本無需保護,高手根本不Care我們寫的代碼。

很多高手從編寫VBA代碼到開始使用VB進行封裝,但VB都是十幾年前的產品了,最大的缺點就是不支持64位,所以很多人開始轉戰VSTO(Visual Studio Tools for Office)或者使用XLL進行代碼封裝。既然都是淘汰的產品,為什麼我還要介紹呢?因為通過VSTOXLL進行封裝需要另外學習一門編程語言VB.Net、C#或C++等等,對很多非計算機專業的小夥伴來說比較難,所以今天介紹如何使用VB 6.0進行封裝。

在開始封裝之前需要安裝VB 6.0程序(請複製下載地址到瀏覽器:pan.baidu.com/s/1dFxUIv)。Win10也是可以安裝的,只不過在安裝結束快結束的時候會一直卡在更新系統那裡,其實此時VB6.0企業版已經安裝完畢,可以使用任務管理器直接結束進程即可。雖然此時會彈出如下錯誤提示:

點擊【確定】後,VB 6.0也就安裝完畢了。此時在開始菜單即可找到VB6.0中文版,如下圖所示:

好了,接下來就是封裝自定義函數的過程了,具體步驟如下:

1 打開VB 6.0,打開後的主界面如下:

2 選擇上圖中的ActiveX DLL,點擊打開,打開的界面如下圖所示:

3 把【自動生成序列碼】的Excel文件中的VBA代碼複製到VB 6.0中,並適當修改,修改後的代碼如下圖所示:

4 修改工程名稱為【自動生成序列碼】,修改類Class名稱為【clsNumber】,保存工程到指定目錄,例如桌面下的【自動生成序列碼】文件夾下,具體演示如下:

5 引用Office和Excel類庫,具體操作方法如下:

PS:因為Office 2016類庫文件路徑的改變,可能在引用項里並沒有找到Microsoft Office ×.× Object Library,這裡需要從"C:Program Files (x86)Microsoft OfficerootVFSProgramFilesCommonX86Microsoft SharedOFFICE16MSO.DLL"進行載入,這裡就不麻煩了,所以直接使用Office 2013進行演示;

6 編譯DLL,具體操作如下圖所示:

7 載入和使用DLL,具體操作如下圖所示:

8 卸載DLL;如果不希望繼續載入到Excel,可以通過如下方法進行卸載,詳見動態圖:

雖然在動態圖的最後,刷新函數還顯示結果,但關閉Excel後,在重新打開Excel,此時再刷新函數,會提示#NAME?

好了,今天的VB封裝就到這裡了,如果大家在學習過程中遇到任何問題,歡迎加群(QQ群:615356012)交流,需要完整代碼的小夥伴可以在公眾號回復「20170929」得到哦,歡迎下載學習^_^Written by Steven in 20170929^_^

微信公眾號:SaveUTime

SUT學習交流群:615356012,入群審核人:Steven

關注公眾號,提高效率,節約您的時間!


推薦閱讀:

【Excel VBA】- 合併相同屬性區域
【20171126】- Excel單元格顯示公式大揭秘

TAG:VisualBasic | VBA | 自定义函数 |