聲明32位和64位Excel兼容的API函數(shù)
'當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()
說明
這個函數(shù)能獲取Windows目錄的完整路徑名。在這個目錄里,保存了大多數(shù)windows應(yīng)用程序文件及初始化文件
返回值
Long類型,復(fù)制到lpBuffer的一個字串的長度。如lpBuffer不夠大,不能容下整個字串,就會返回lpBuffer要求的長度,零表示失敗。并且將出錯的信息存儲在GetLastError函數(shù)中,用戶可以通過調(diào)用GetLastError來得到錯誤信息。
參數(shù)表
參數(shù) 類型及說明
lpBuffer String,指定一個字串緩沖區(qū),用于裝載Windows目錄名。除非是根目錄,否則目錄中不會有一個中止用的“\”字符
nSize Long,lpBuffer字串的最大長度
?'獲取Windows文件夾路徑
privateDeclare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long'在form窗體中聲明改函數(shù)
Dim SWinDir As String '定義字符變量用來存儲路徑
Dim Retn As Long ‘定義長整型變量存儲路徑的長度
SWinDir = Space(255)’設(shè)定一個空串,長度為windows允許的最大長度,也可寫作:SWidir=String(255,0)
Retn = GetWindowsDirectory(SWinDir, Len(SWinDir))‘獲取windows路徑的長度,swindir存儲了路徑
SWinDir = Left(SWinDir, Retn)’去掉空白內(nèi)容。