首頁 > 科技

VBA控制項引用如何註冊,這是一個很實用的工具,不要錯過

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---


IT145.com E-mail:sddin#qq.com