Board logo

標題: [轉貼] VBA控件的自动注册与链接库的自动引用方法 [打印本頁]

作者: HUNGCHILIN    時間: 2011-2-10 22:58     標題: VBA控件的自动注册与链接库的自动引用方法

本帖最後由 HUNGCHILIN 於 2011-2-10 23:03 編輯

這篇還不錯大家可以看看
轉帖自excelpx
作者:兰色幻想 发表于 2007-11-19 18:06

VBA控件的自动注册与链接库的自动引用方法


你是否有过这样的困惑,别人的文件或代码无法在自已电脑上正常运行。后来,你知道文件中使用了你电脑中没有注册的控件或对象的引用。于是你学会了手工设置,暂时解决了这个问题。

    控件的注册或对象链接库的引用能否用VBA自动完成呢,如果能实现,则就可以实现VBA程序文件真正的共享。

    兰色分别就控件自动注册和对象的自动引用写了以下说明,请大家多多指点。

     一、控件注册

         注册控件首先电脑中需要有这个OCX文件,所以可以在EXCEL文件夹下提供该控件,然后用程序复制到system32文件夹中,然后使用shell函数进行控件注册。以注册日期控件为例,代码如下:

      Sub 注册日期控件()

        dim d
        On Error Resume Next
         FileCopy ThisWorkbook.Path & "/MSCOMCT2.ocx", "C:\Windows\system32\MSCOMCT2.ocx"
         d = Shell("regsvr32 C:\Windows\system32\MSCOMCT2.ocx")
     End Sub

     二、自动添加引用

        添加引用的前题是对VB工程具有操作权,即需要在宏的安全设置中选取“信任对visual basic项目的访问”选项。如下图:         

[attach]4702[/attach]

VBA程序共享之:控件的自动注册与链接库的自动引用

        当然我们不能告诉每一个用户来设置这个项目,所以这个也需要用程序自动完成。

        综合上述,以自动引用字典对象的链接库为例,代码如下:

         Sub 引用字典对象()
              Dim myob
              On Error Resume Next
                Set myob = ActiveWorkbook.VBProject   
                  If Err <> 0 Then        ’如果程序出错
                        Application.SendKeys "%TMST%V~"    ‘用程序调用快捷键完成选取信任对visual basic项目的访问操作
                     End If
               ThisWorkbook.VBProject.References.AddFromFile "C:\Windows\System32\scrrun.dll"   ’引用
            End Sub
   

完成以上语句后,我们可以把他们放在thisworkbook_open事件中

            Private Sub Workbook_Open()
                引用字典对象
                注册日期控件
            End Sub

先写这么多了,希望能对大家有用

[此贴子已经被作者于2007-11-19 18:23:30编辑过]





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)