vba如何调用dll中的过程函数或变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vba如何调用dll中的过程函数或变量相关的知识,希望对你有一定的参考价值。

采用引用法(也叫事前绑定的方法),这种方法的好处是,在书写代码时,可以有提示的

通过vba或者其他的编码工具---进去编码区----工具----引用---将需要引用的dll打勾
参考技术A 引用之后可以直接用

ExcelVBA如何调用API DLL(Delphi生成)

Public Declare Function plock Lib "passzy.dll" (ByVal s As String) As Boolean
Declare Function punlock Lib "passzy.dll" (ByVal s As String) As Boolean
在excel中执行的时候,提示第一行错误:编译错误,常数、固定长度字符串…………
我的delphi中声明:(DLL中包含窗体,其它没什么特别的了)
function punlock(s:pchar):boolean; stdcall;
function plock(s:pchar):boolean; stdcall;
编译好的dll,用delphi本身是可以完美调用的。
另外这个DLL无法regsvr32.exe注册,无法用VBA引用。请问我应该怎么做?
(已经解决了,无满意答案)Public改成Private就可以调用了,另外VBA的boolean与Delphi类型格式不一样,传递无意义,必须用整形、浮点或字符串。改成long对integer后完美运行

参考技术A :档案信息化建设的目标就是在现代化的技术条件下,一方面促进档案本身信息进入社会交流系统,在社会中广为传播,另一方面就是将档案中的信息与其他社会信息形式融合使用,在社会中传播,广泛地服务于社会。只有档案信息化建设与社会信息化同步发展,为促进国民经济和社会发展,才能确保提供快捷有效的档案信息服务。 参考技术B Public改成Private就可以调用了,另外VBA的boolean与Delphi类型格式不一样,传递无意义,必须用整形、浮点或字符串。改成long对integer后完美运行本回答被提问者采纳 参考技术C 办得到,但是要修改VB(因为它本来不行)
这里有详细说明和修改文件下载

以上是关于vba如何调用dll中的过程函数或变量的主要内容,如果未能解决你的问题,请参考以下文章

调用其他VBA工程中的过程和函数以及API函数

delphi 怎么动态调用dll中的过程

ExcelVBA如何调用API DLL(Delphi生成)

VBA的宏显示“子过程或函数未定义”

如何用函数或VBA调用(引用)另外一个工作表的数据

用Excel使用VBA时显示运行错误5,错误调用参数,程序特别简单,如图,求问哪里出错了