打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel 浅谈API 与 在VBA中的调用

浅谈API 与 在VBA中的调用

以前看到VBA里的P lic Declare Function 时真是头大,光照搬过来用都觉得难现在懂一点点了,特地讲出来与大家分享,共同进步!毕竟也在EXCELHOME成长了不少

我尽量将其最简单化,可能有些用词并不是很准确,但对于理解确很有帮助(如果没有代码基础的有自信也可以看哦)
我们需要理解:

1,何谓API:
     得先讲动态程式库(DLL文件),DLL文件你可以把它想象成一个开机就运行的 含有很多全局函数的 程序 (可以说DLL是windows的基础,windows的大部分功能就是靠dll完成的)
而API 是包装在DLL文件中的函数(跟VBA写的函数没啥区别,只是语言不同),现在我们就可以把API称作为函数了,DLL文件中封装的每个函数都对外有一个接口,接口由函数名,参数表组成,像下面这个例子一样
=============================================================
对外输出申明 S test2(int number)  “test2”就是API函数名称 “(int number)”就是参数表
         MsgBox(“Hello!”)
End S    

==============================================================
这个API函数作用是向调用的程序显示一个消息框,而其它的API只是功能不一样,但结构差不多;

现在了解API的大概与原理了那就可以看怎么使用了

2,VBA中怎么调用API
     VBA我们有一个通用的方法调用,这个得举例了,如下
     P lic Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As     String, ByVal lpWindowName As String) As Long
     得先认关键字,关键字就是系统定义好的,你调用就好了,就是要记得东西,这里的关键字有
P lic Declare Function         

Lib               
Alias
(ByVal  As String, ByVal   as String)
As Long
     这些关键字如果一点也不熟悉,你可以参考EXCEL VBA帮助文档,现在讲这个例子的含义

“P lic Declare Function”:
     这个部分你可以记下来,“p lic” 不用我讲了 全局的  “Declare Function” 可以理解为定义一个函数

“FindWindow”:
      随便写的自己用的函数名

“Lib "user32" Alias "FindWindowA" ”:
       核心部分,涉及的东西很多,但你不用灰心,记下一个就是一个(用法都是死的),还可以去网上下一个API大全(自己下啊).“Lib "user32"” 载入 user32.dll 文件,其实也可以写成“Lib "C:\WINDOWS\system32\user32.dll"”,这才是真面目(是因为环境变量里头有设定系统路径,才可写成“Lib "user32"”)。“Alias "FindWindowA" ” FindWindowA表示API对外的接口,也就是原始函数名。我们给它重新定义是防止重名

        (ByVal lpClassName As String, ByVal lpWindowName As String):
这个就是1中讲到的参数表了,dll文件的对外接口是兼容C语言的,VBA是基于VB的(这样说没错吧)所以在VBA中就出现了这个异样参数表了,ByVal (by val)表示传值 ,还有一种叫传内存地址,VBA好像不能对内存操作,我们不讨论。“lpClassName As String”这个参数类型是对应API函数参数表,需要与API一一对应。如果不了解API,你只需要把这个记下来就可以,真正去看API也是这样的。多看些API就会有收获的

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
在VBA中使用WINDOWS API
Excel VBA(宏)精简(四)
实例说明在VBA中如何使用Windows API
Excel-VBA查找本机MP3音乐并播放
如何使用 Unicode 版和 Ansi 版 API – 中文
用API函数控制光驱的开关
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服