二、使用API 函数或过程 以API 函数Beep 来说明API函数的几种使用方法,Beep 函数的介绍如下: [VBA声明] Public Declare Function Beep Lib "kernel32" Alias "Beep"(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long [说明] 用于生成简单的声音 [返回值] Long,非零表示成功,否则返回零。 [参数表] dwFreq------Long,声音频率(从37HZ到 32767Hz) dwDuration---Long,声音的持续时间,以毫秒为单位。如为-1,表示一直播放声音,直到再次调用该函数为止。 可采用以下几种方式使用API函数或过程,以BEEP为例: (1)忽略函数返回值的调用: Beep 1000,5000 注意此时函数的参数是不加括号的。 (2)Call 方法调用: Call Beep(1000,5000) 注意这里需要加上括号,便我们不取加函数的返回值。 (3)取得函数返回值的调用: MyLng=Beep(1000,5000) 此时需要加上括号,而且我们必须事先定义一个变量(变量的类型与函数返回值类型相同)来存储API函数的返回值。 三、声明的一些说明 (1)声明中的Lib 和 Alias 是怎么回事 一般情况下WIN32 API 函数总是包含在WINDOWS系统自带的或是其它公司提供的动态链接库DLL中,而Declare 语句中的关键字Lib就是用来指定DLL文件路径的,这样VBA才能找到这个DLL文件,然后才能使用其中的API函数。 如果我们只是列出DLL文件名而不指出其完整路径的话,VBA会自动到EXCEL文件所在目录、当前工作目录、windows\System目录、Windows目录下搜寻这个DLL文件。所以如果所要使用的DLL文件不在上述几个目录下的话,我们应该指明其完整路径。 Alias用于指定API函数的别名,如果我们调用的API函数要使用字符串(参数中包含String型)的话,Alias 关键字是必须的。这是因为在ANSI和Unicode 字符集中同一API函数的名称可能不一样,为了保证不出现声明错误,所以我们使用Alias关键字指出API函数的别名。 (2)常见API参数类型的说明 API函数的参数中最常见的是长整形数据(Long)类型,例如 API 中的句柄、一些特写的常量、函数的返回值都是比类型的值;另外几种常见的参数类型有:整形Integer,Byte型,String型 (3)声明中的ByVal是作什么用的 这跟VBA的参数传递方式有关,在默认情况下VBA是通过传值方式传递函数的参数、而有些API函数要求必须采用地址传递(ByRef)来传递函数参数(这两种参数传递方式是不同的,前者传递的是参数真实的值,而后者要求是一个地址指针)。声明中的ByVal表明参数是传递一个值。 (4) 怎么轻松得到完整API函数声明 VB6。0自带API文本查看器API Texi Viewer,我们可以使用它来找到API函数的完整声明,然后把它粘贴到程序就可使用。 大家使用API有必要对它进行有一定了解,然后再去使用API文本查看器。虽然不必研究第一个API函数(如果真的知道100来个API函数的使用,相信绝对有用),但是需要我们了解一下该函数的作用。 而地API函数功能的介绍,网络也有现丰的软件供大家下载使用。 示例实验成功!!!
[此贴子已经被作者于2008-8-11 19:21:12编辑过] |