如何将vba代码封装为dll或com

如何将vba代码封装为dll或com,第1张

可以将vba的函数和过程封装成ActiveX Dll 或 ActiveX 控件 封装之后要使用的话,如果是ActiveX Dll的话就需要先注册DLL再声明函数,和API函数一样,ActiveX 控件需要先注册再在部件里添加,并添加到窗体里,不需要声明 具体vb制作ActiveX 控件的...

首先,DLL封装应该不是太难的事情,特别是你这个更简单,但是你的函数本身是有错误的,你的函数名称为t,而你函数内部又定义了一个变量t

as

integer,显然这是最基本的语法问题。为了防止本错误,我将你函数名称修改为了tt,然后修改了最后一行的代码tt

=

ar(t)

于是你的Function就变成了:

Function

tt(ByVal

mycell

As

Range)

'该函数用于提取简单的算术运算公式,可提取运算符号集

"(,-,*,/,^,)"

......

tt

=

ar(t)

End

Function

OK,谨以上述代码生成DLL文件,方法如下:

第一步:打开VB新建,选择ActiveX

DLL;

第二步:将你上面的代码,按照我的修改之后复制到Class1类模块里面,

以上两步因为太过于简单,我都不好意思截图了!

第三步:引用,这个很重要,参考截图,选中类似于"Microsoft

Excel

14.0....."这个部件;

确定之后,得到的可用的引用中增加了上图中我选中的那个选项,那么DLL成功一半,接着

第四步:修改工程属性名称为myFunctions,修改类Class1的名称为myFunction,参考截图:

myFunctions是我们生成的Dll的名称,而myFunction是我们在Excel的VBA中使用时引用的对象名。

完成以上四步之后,OK,点击VB的“文件”

-

“生成myFunctions.dll”。

OK,到此为止,DLL文件封装完毕。

然后就是使用,在EXCEL的VBE窗口中,通过“工具”-

“引用”-”浏览“选择我们刚刚生成的DLL文件myFunction.dll,然后通过图中的代码测试,注意C12单元格中,随便输入一个代数计算式:

如果不懂,可追问!应该够详细了吧!忘记附上DLL文件了!补上附件:

不明白。指出亮点问题,

一、最好能够在单元格对象后面加上.VALUE

二、Cells(3, 10)这个固定值最好写入一个变量,防止重复调用。如

dim a

a= Cells(3, 6) .value


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12010516.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存