真正的ActiveX DLL免注册调用(VBA)

网上搜索了许多ActiveX DLL免注册的文章,虽然找到的方法有好几种,但是都不能满足我的需求(要么只能在VB中正常运行,到VBA就失效或报程序崩溃,要么就需要注册其它组件到系统),此方法完美解决问题,可用于VBA代码封装。废话不多说,直接开始。 打开VB6.0,新建一个ActiveX DLL 工程,工程名称命名为zh_pro.dll,类名命名为zhouh,我们输入一个Hello Word,内容如下:
Sub Hello()
MsgBox "Hello Word!", , "Made By ymvpn.top"
End Sub
然后我们编译为DLL文件,一个只包含Hello Word的ActiveX DLL就生成了。正常情况下,这个DLL 必须通过regsvr32注册之后才能正常使用,但是在一些情况下,我们不想注册,或者权限不够,就需要使用免注册代码了。下载附件中的RegDll.dll,实现方法如下:(权限不够的可以尝试将RegDll.dll和zh_pro.dl存放到[我的文档],此方法在我公司终端桌面上测试可用。) 新建一个EXCEL表格,ALT+F11进入VBA工程编辑模式,插入一个模块并键入如下代码:
Private Declare Function GETINSTANCE Lib "RegDll.dll" _
(FName As String, ClassName As String) As Object

Sub test
Dim TObject As Object
If CreateDllObject("zh_pro.dll", "zhouh", TObject) = 1 Then
Call TObject.Hello
End Sub

Function CreateDllObject(DllName As String,_
 ClassName As String, cObject As Object)
On Error Resume Next
Dim ob As Object
CreateDllObject = 1
Set ob = GETINSTANCE(DllName, ClassName)
If Err.Number <> 0 Then CreateDllObject = 0:_
 MsgBox "出现错误,请关闭所有Excel后重新打开!"
Set cObject = ob
Set ob = Nothing
End Function

现在我们运行test,看看是不是见到了我们的Hello Word!到此ActiveX DLL免注册被完美解决。

RegDll.rar

真正的ActiveX DLL免注册调用(VBA)
版权声明:若无特殊注明,本文皆为《 周洪 》原创,转载请保留文章出处。
本文链接:真正的ActiveX DLL免注册调用(VBA) http://www.ymvpn.top/?post=4
正文到此结束

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗

评论信息框

吃奶的力气提交吐槽中...


既然没有吐槽,那就赶紧抢沙发吧!