声明32位和64位Excel兼容的API函数的方法

声明32位和64位Excel兼容的API函数

'当VBA7和Win64都是True时(只有64的Excel才是这种情况),使用第一条Declare语句。在其他版本中,使用第二条Declare语句

#If VBA7 And Win64 Then

Declare ptSafe Function GetWindowsDirectory Lib "kernel32" (ByVal ipBuffer As String, ByVal nSize As Long) As Long

#Else

Declare Function GetWindowsDirectory Lib "kernel32" (ByVal ipBuffer As String, ByVal nSize As Long) As Long

#End If

GetWindowsDirectory()

说明

这个函数能获取Windows目录的完整路径名。在这个目录里,保存了大多数windows应用程序文件及初始化文件

返回值

Long类型,复制到lpBuffer的一个字串的长度。如lpBuffer不够大,不能容下整个字串,就会返回lpBuffer要求的长度,零表示失败。并且将出错的信息存储在GetLastError函数中,用户可以通过调用GetLastError来得到错误信息。

参数表

参数 类型及说明

lpBuffer String,指定一个字串缓冲区,用于装载Windows目录名。除非是根目录,否则目录中不会有一个中止用的“\”字符

nSize Long,lpBuffer字串的最大长度

​'获取Windows文件夹路径

privateDeclare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long'在form窗体中声明改函数

Dim SWinDir As String '定义字符变量用来存储路径

Dim Retn As Long ‘定义长整型变量存储路径的长度

SWinDir = Space(255)’设定一个空串,长度为windows允许的最大长度,也可写作:SWidir=String(255,0)

Retn = GetWindowsDirectory(SWinDir, Len(SWinDir))‘获取windows路径的长度,swindir存储了路径

SWinDir = Left(SWinDir, Retn)’去掉空白内容。

你可能感兴趣的:(声明32位和64位Excel兼容的API函数的方法)