DLL檔案是應用檔案的擴展,就是我們使用的一些應用程式附加的一些功能性檔案,某些情況下是必不可少的一些檔案。特別是在VBA開發的時候,僅僅使用Excel提供的一些控制項是不能很
2021-08-26 03:04:58
DLL檔案是應用檔案的擴展,就是我們使用的一些應用程式附加的一些功能性檔案,某些情況下是必不可少的一些檔案。
特別是在VBA開發的時候,僅僅使用Excel提供的一些控制項是不能很好地完成我們的需要的,那麼就用擴展其它功能來豐富我們的應用操作。
本節介紹一下,如何註冊DLL檔案,當然了,並不僅僅適用於VBA控制項註冊,其它Windows系統控制項註冊都適用,本質上是一個很簡單的小工具,只不過是在Excel平臺下操作。
下圖為操作介面
可以看到介面中並沒有什麼特別的內容,一個組合框,三個按鈕。
組合框裡自動搜尋出電腦某一目錄中的Dll檔案,這個是自動進行,"選擇目錄"按鈕可以開啟檔案對話自定義要搜尋的資料夾。
註冊和登出兩個按鈕分別進行DLL檔案的註冊和登出。
示例圖中註冊了一個名為:CheckDate.dll的檔案。
接下來,看一下程式碼。
整個過程中重要程式碼只有兩行,附加的一些程式碼就比較多了,其實沒有意義,也有一些意義。
意義在於實現一些本來知道但操作人並不知道的一些過程。
下面這個過程就是獲取某目錄下的Dll檔案過程:
Private Function getDllName(xPath As String)
Dim dArr(), di As Integer
Dim dllName As String
If VBA.Len(xPath) = 0 Then xPath = ThisWorkbook.Path
dllName = Dir(xPath & "*.Dll", vbNormal)
If dllName = "" Then
ReDim dArr(0)
dArr(0) = ""
getDllName = dArr
Exit Function
Else
ReDim Preserve dArr(di)
dArr(di) = dllName
End If
Do While dllName <> dArr(0)
di = di + 1
dllName = Dir(ThisWorkbook.Path & "*.Dll", vbNormal)
DoEvents
MsgBox dllName
Stop
Loop
getDllName = dArr
Erase dArr
End Function
註冊過程程式碼
'註冊控制項
Sub login(dllName As String)
Shell "regsvr32 /s " & Chr(34) & ThisWorkbook.Path & "" & dllName & Chr(34)
End Sub
登出過程程式碼
'登出控制項 注意/u 後面加空格
Sub unlogin(dllName As String)
Shell "regsvr32 /s /u " & Chr(34) & ThisWorkbook.Path & "" & dllName & Chr(34)
End Sub
註冊按鈕程式碼
Private Sub CommandButton1_Click()
Dim dllName As String
dllName = VBA.Trim(Me.ComboBox1.Value)
If VBA.Len(dllName) = 0 Then Exit Sub
login dllName
MsgBox "註冊成功!", vbInformation, "成功"
End Sub
登出按鈕程式碼
Private Sub CommandButton2_Click()
Dim dllName As String
dllName = VBA.Trim(Me.ComboBox1.Value)
If VBA.Len(dllName) = 0 Then Exit Sub
unlogin dllName
MsgBox "登出成功!", vbInformation, "成功"
End Sub
總得來說,如果對Dll檔案功能有一些瞭解,那麼使用這個工具真的很省心,不信可以試試。
如果沒有對控制項引用有一定的瞭解,可能就不知所云了,不過沒關係,當某一天突然學到這個地步的時候,會恍然大悟,原來如此。
人生就是從一個又一個未知到一個又一個明白的過程,當明白昨天的努力,只不是今天低頭沉思後的微笑的時候,說明昨天的無知真的是一件很快樂的事情。
歡迎關注、收藏
---END---
相關文章
DLL檔案是應用檔案的擴展,就是我們使用的一些應用程式附加的一些功能性檔案,某些情況下是必不可少的一些檔案。特別是在VBA開發的時候,僅僅使用Excel提供的一些控制項是不能很
2021-08-26 03:04:58
安卓手機同質化現象越來越嚴重,雖然系統都有自家的UI,獨有的設計,可歸根結底還是安卓!想要在外觀上有所突破,結果現在到處都是曲面屏設計,攝像頭模組也越來越像,包括手機的「屁股」
2021-08-26 03:04:50
【手機中國】十年前的8月24日,這一天對於常人來說可能稀鬆平常。但對於51歲的蒂姆·庫克(Tim Cook)來說,這一天絕不平凡。這天他正式接過喬布斯的班,上任蘋果CEO。 庫克和喬布斯
2021-08-26 03:04:36
隨著SoC處理器、記憶體容量和效能以及高清、高重新整理率螢幕技術的飛速發展,曾經很小眾的遊戲手機得到了手遊端使用者的認可和追捧,甚至是很多想要獲得性能提升或體現差異
2021-08-26 03:04:12
前言Redis支援多種高可用方案如Redis Sentinel 叢集和 Redis 資料叢集,但是今天我們的主題是Redis的主從複製。而且今天我們重點在於如何搭建Redis的主從複製,不著重與主從複
2021-08-26 03:04:04
在日常工作中經常會用到excel,有時在開啟excel檔案時會彈出錯誤的提示「運行時錯誤1004」,這時該怎麼辦呢?1、先開啟任意一個excel檔案,點選【檔案】,在左側的選單列中點選【選項
2021-08-26 03:03:58