如何在VB.NET、VSTO中使用API函数?

 

在VBA中可以使用API函数来拓展VBA的功能。

 

比如在VBA中插入一个标准模块,然后输入如下的代码:

 

 

就可以用api函数ShellExecute打开指定的网页。

 

如果要把上述的API函数迁移到VSTO、VB.NET中,直接拷贝复制进去是不行的,需要做以下几个步骤

 

1.单击“项目”菜单,“添加模块”,选择”模块”,确定。

 

 

 

2.拷贝上述代码到

 

Module Module1

End Module

 

之间,如下所示

 

3.最关键的,也是最重要的一步,单击Ctrl+H组合快捷键,把API函数声明部分的”As Long”批量替换为”AS Integer”。

如下所示

 

替换后的代码如下所示

 

 

为什么要做这个动作呢?

 

因为在VB.NET中Integer变量类型使用4个字节存储有符号的整数(也就是32位),同VBA中的Long变量类型是一样的。

 

而VB.NET中Long变量类型是使用8个字节存储有符号的整数(也就是64位)。

 

4.最后还需要将API函数的参数用括号括起来,这是VB.NET与VBA的一个最显著的区别。

 

ShellExecute 0, “open”, sUrl, vbNullString, vbNullString, SW_SHOWNORMAL

改成

ShellExecute(0, “open”, sUrl, vbNullString, vbNullString, SW_SHOWNORMAL)

 

VBA中如果是对象的方法,函数的调用等可以不带括号使用,但是在VB.NET中括号是不能缺少的。

 

最后的代码如下

 

通过上述几个步骤,就可以顺利地在VB.NET、VSTO中使用API函数了。

 

怎么样,将VBA中的API代码迁移到VB.NET中就是这么简单,你学会了吗?

 

       

发表评论