聲明32位和64位Excel兼容的API函數(shù)
'當(dāng)VBA7和Win64都是True時(shí)(只有64的Excel才是這種情況),使用第一條Declare語(yǔ)句酗宋。在其他版本中,使用第二條Declare語(yǔ)句
#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()
說(shuō)明
這個(gè)函數(shù)能獲取Windows目錄的完整路徑名。在這個(gè)目錄里厚脉,保存了大多數(shù)windows應(yīng)用程序文件及初始化文件
返回值
Long類(lèi)型,復(fù)制到lpBuffer的一個(gè)字串的長(zhǎng)度胶惰。如lpBuffer不夠大傻工,不能容下整個(gè)字串,就會(huì)返回lpBuffer要求的長(zhǎng)度孵滞,零表示失敗中捆。并且將出錯(cuò)的信息存儲(chǔ)在GetLastError函數(shù)中,用戶(hù)可以通過(guò)調(diào)用GetLastError來(lái)得到錯(cuò)誤信息坊饶。
參數(shù)表
參數(shù) 類(lèi)型及說(shuō)明
lpBuffer String泄伪,指定一個(gè)字串緩沖區(qū),用于裝載Windows目錄名匿级。除非是根目錄蟋滴,否則目錄中不會(huì)有一個(gè)中止用的“\”字符
nSize Long染厅,lpBuffer字串的最大長(zhǎng)度
?'獲取Windows文件夾路徑
privateDeclare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long'在form窗體中聲明改函數(shù)
Dim SWinDir As String '定義字符變量用來(lái)存儲(chǔ)路徑
Dim Retn As Long ‘定義長(zhǎng)整型變量存儲(chǔ)路徑的長(zhǎng)度
SWinDir = Space(255)’設(shè)定一個(gè)空串,長(zhǎng)度為windows允許的最大長(zhǎng)度津函,也可寫(xiě)作:SWidir=String(255,0)
Retn = GetWindowsDirectory(SWinDir, Len(SWinDir))‘獲取windows路徑的長(zhǎng)度肖粮,swindir存儲(chǔ)了路徑
SWinDir = Left(SWinDir, Retn)’去掉空白內(nèi)容。