● ファイル名からフルパスを取得する ●

但し、以下ディレクトリにある実行ファイル限定である。

1.実行可能ファイルと同じディレクトリ
2.カレントディレクトリ
3.システムディレクトリ
4.Windowsディレクトリ
5.環境変数 PATH に設定されているディレクトリ

Private Declare Function SearchPath Lib "kernel32" Alias "SearchPathA" (ByVal lpPath As String, ByVal lpFileName As String, ByVal lpExtension As String, ByVal nBufferLength As Long, ByVal lpBuffer As String, ByVal lpFilePart As String) As Long

'-----------------------------------------------------------------------
' 関数名 : GetFullPathName
' 機能   : ファイル名からフルパスを取得する
' 引数   : (in) FileName … ファイル名
' 戻り値 : 取得したフルパス
'-----------------------------------------------------------------------
Public Function GetFullPathName(ByVal FileName As String) As String

    Dim FileNameLen As Long
    Dim TempBuff As String * 256
    Dim FilePart As Long

    FileNameLen = SearchPath(vbNullString, FileName, "", Len(TempBuff), _
                         TempBuff, FilePart)
    If FileNameLen > 0 Then
        GetFullPathName = Left$(TempBuff, FileNameLen)
    End If

End Function

戻る