分享

VBA控件引用如何注册,这是一个很实用的工具,不要错过

 郗peng 2021-08-25

DLL文件是应用文件的扩展,就是我们使用的一些应用程序附加的一些功能性文件,某些情况下是必不可少的一些文件。

特别是在VBA开发的时候,仅仅使用Excel提供的一些控件是不能很好地完成我们的需要的,那么就用扩展其它功能来丰富我们的应用操作。

VBA控件引用如何注册,这是一个很实用的工具,不要错过

本节介绍一下,如何注册DLL文件,当然了,并不仅仅适用于VBA控件注册,其它Windows系统控件注册都适用,本质上是一个很简单的小工具,只不过是在Excel平台下操作。

下图为操作界面

VBA控件引用如何注册,这是一个很实用的工具,不要错过

可以看到界面中并没有什么特别的内容,一个组合框,三个按钮。

组合框里自动搜索出电脑某一目录中的Dll文件,这个是自动进行,'选择目录'按钮可以打开文件对话自定义要搜索的文件夹。

注册和注销两个按钮分别进行DLL文件的注册和注销。

示例图中注册了一个名为:CheckDate.dll的文件。

VBA控件引用如何注册,这是一个很实用的工具,不要错过

接下来,看一下代码。

整个过程中重要代码只有两行,附加的一些代码就比较多了,其实没有意义,也有一些意义。

意义在于实现一些本来知道但操作人并不知道的一些过程。

下面这个过程就是获取某目录下的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 dArrEnd 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 StringdllName = VBA.Trim(Me.ComboBox1.Value)If VBA.Len(dllName) = 0 Then Exit Sublogin dllNameMsgBox '注册成功!', vbInformation, '成功'End Sub

注销按钮代码

Private Sub CommandButton2_Click()Dim dllName As StringdllName = VBA.Trim(Me.ComboBox1.Value)If VBA.Len(dllName) = 0 Then Exit Subunlogin dllNameMsgBox '注销成功!', vbInformation, '成功'End Sub

总得来说,如果对Dll文件功能有一些了解,那么使用这个工具真的很省心,不信可以试试。

如果没有对控件引用有一定的了解,可能就不知所云了,不过没关系,当某一天突然学到这个地步的时候,会恍然大悟,原来如此。

人生就是从一个又一个未知到一个又一个明白的过程,当明白昨天的努力,只不是今天低头沉思后的微笑的时候,说明昨天的无知真的是一件很快乐的事情。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多