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