'変数の明示的な宣言を強制します。
Option Explicit
'API関数 GetCurrentDirectory の使用を宣言します。
Private Declare Function GetCurrentDirectory Lib "kernel32"
Alias "GetCurrentDirectoryA" _
(ByVal nBufferLength As Long, _
ByVal lpBuffer As String) As Long
'第1引数:第2引数に格納された文字列の長さ
'第2引数:取得した情報(カレントディレクトリ名)を格納する変数(文字列型)
'戻り値:エラーが発生した場合は"0"
' :正常に終了した場合は第2引数に格納された文字列の長さ
Private Sub Command1_Click()
'API関数GetCurrentDirectoryの戻り値を格納する変数
Dim ret As Long
'カレントディレクトリ名(第2引数)を格納する変数("* 260"は文字列のサイズです。)
Dim CurrentDir As String * 260
ret = GetCurrentDirectory(Len(CurrentDir), CurrentDir)
'戻り値が"0"だったら(=エラーが発生したら)...
If ret = 0 Then
Text1.Text = "カレントディレクトリを取得できませんでした。"
'戻り値が"0"以外だったら...
Else
'変数CurrentDir内の最初のvbNullCharの位置を求め、Left関数を使用してカレントディレクトリ名を取り出します。
Text1.Text = Left(CurrentDir, InStr(CurrentDir, vbNullChar) -
1)
End If
End Sub