码迷,mamicode.com
首页 > 编程语言 > 详细

VBA 调用DLL动态链接库

时间:2015-09-06 12:44:33      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

在ArcMap中引用动态链接库
       我在VB6下编译生成了一个动态链接库文件VBAPrj.dll,其中有一类模块VBACls,此类模块有一个方法Test(Doc As Object)。
        常见的方法有三种(作者:张业新):

1.打开VBA编辑器,点"工具"菜单下的"引用"命令,在引用对话框中引用该动态链接库。
        调用代码如下:
         Dim VBACls As New VBAPrj.VBACls
         VBACls.Test(ThisDocument) 
  2.如果知道该动态链接库文件的位置,可以在ThisDocument代码窗口以代码形式引用, 代码如下:
         Private Sub Document_Open()
                   On Error Resume Next
                   Me.VBProject.References.AddFromFile "D:\VBAPrj.dll"
         End Sub
    3.将动态链接库文件拷贝到文档同一目录下,可在ThisDocument代码窗口中建立如下引用函数:
          Private Function GetProjectDoc() As Object
                 On Error Resume Next
                 Dim VBACls As Object
                 Set VBACls = CreateObject("VBAPrj.VBACls")
                 If VBACls Is Nothing Then
              MsgBox "VBAPrj.dll必须和文档在同一目录下!"
              Exit Function
                End If
                Set GetProjectDoc = VBACls
         End Function
        然后以以下代码形式调用Test:
         Dim objPrjDoc As Object
         Set objPrjDoc = GetProjectDoc
         Call objPrjDoc.Test(ThisDocument)
         Set objPrjDoc = Nothing
       使用第一种方法调试提示找不到类库,第二种方法我没试过,用了第三种方法调试成功。我也觉得第三种还是蛮好的,除了多几行代码。成功调用DLL后原来很多在VB下写的东东简单改一下就可以在VBA下用了,效率又高,保密性又好

VBA 调用DLL动态链接库

标签:

原文地址:http://www.cnblogs.com/lbnnbs/p/4784950.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!