我自己的標准答案
Private Declare Function GetCurrentDirectory Lib "kernel32" Alias "GetCurrentDirectoryA" _
(ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Private Function GetCurrentDir() As String
Dim BufferLength As Long
Dim lBuffer As String
Dim ret As Long
lBuffer = Space(255)
BufferLength = 255
On Error Resume Next
ret = GetCurrentDirectory(BufferLength, lBuffer)
If ret = 0 Then
MsgBox "Error"
Else
GetCurrentDir = stripZero(lBuffer)
End If
End Function
Private Function stripZero(ByVal str As String) As String
Dim intZeroPos As Integer
intZeroPos = InStr(1, str, Chr(0))
If intZeroPos > 0 Then
stripZero = Left(str, intZeroPos - 1)
Else
stripZero = str
End If
End Function