聲明32位和64位Excel兼容的API函數(shù)的方法

聲明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)容。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容