Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 10856|回复: 19

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

[复制链接]
发表于 2007-11-19 18:06 | 显示全部楼层 |阅读模式

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

    控件的注册或对象链接库的引用能否用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项目的访问”选项。如下图:

        

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

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

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

[此贴子已经被作者于2007-11-19 18:23:30编辑过]
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2007-11-19 18:34 | 显示全部楼层
回复

使用道具 举报

发表于 2007-11-19 20:04 | 显示全部楼层
回复

使用道具 举报

发表于 2007-11-19 21:13 | 显示全部楼层

校长的帖要先收下来,再慢慢领悟!

 

[em01][em01][em01][em01][em01]
回复

使用道具 举报

发表于 2007-11-19 21:18 | 显示全部楼层

谢谢兰版!学习中.....
回复

使用道具 举报

发表于 2007-11-19 21:18 | 显示全部楼层

QUOTE:
以下是引用杨副官在2007-11-19 18:34:00的发言:

先收藏

回复

使用道具 举报

发表于 2007-11-19 21:38 | 显示全部楼层

校长动作真快啊,下午的问题这就有答案啦[em01],学习ing!!!!
回复

使用道具 举报

发表于 2007-11-20 11:11 | 显示全部楼层

QUOTE:
以下是引用uranus1997在2007-11-19 21:38:00的发言:
校长动作真快啊,下午的问题这就有答案啦[em01],学习ing!!!
问题的答案?
回复

使用道具 举报

发表于 2007-11-21 05:11 | 显示全部楼层

学习
回复

使用道具 举报

发表于 2008-5-24 01:03 | 显示全部楼层

我进行了全盘搜索,没找到MSCOMCT2.ocx这个文件!~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-29 23:55 , Processed in 0.959056 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表