pgbigorokuのブログ

プログラムの再利用できそうなコードをアップ

EXCEL VBA フォルダ名とファイル名が混在したフルパスからフォルダ名のみを取得

利用例

    Debug.Print nstrフォルダ名を取得Fromフルパス("c:\") 'c:\
    Debug.Print nstrフォルダ名を取得Fromフルパス("c:\aaa.txt") 'c:\
    Debug.Print nstrフォルダ名を取得Fromフルパス("c:\aaa\") 'c:\aaa
    Debug.Print nstrフォルダ名を取得Fromフルパス("c:\aaa\aaa.txt") 'c:\aaa
    Debug.Print nstrフォルダ名を取得Fromフルパス("c:") '(LEN(0の文字))

ソースコード

'   機能   :  フォルダ名とファイル名が混在したフルパスからフォルダ名のみを取得
'
'    機能説明 :     ドライブ直下(例 C:\)\まで含める。
'
'    状態   :
'
'    バージョン  :2022/8/16
'  公開URL :https://pgbigoroku.hatenablog.com/entry/2022/08/17/003818
Public Function nstrフォルダ名を取得Fromフルパス(ByVal pstr調査するフルパス As String) As String
    Const cstr円マーク As String = "\"
    Dim intInStrRev円マーク区切り位置 As Integer
    intInStrRev円マーク区切り位置 = InStrRev(pstr調査するフルパス, cstr円マーク)
    If intInStrRev円マーク区切り位置 = 0 Then
        nstrフォルダ名を取得Fromフルパス = ""
    Else
        nstrフォルダ名を取得Fromフルパス = Left(pstr調査するフルパス, intInStrRev円マーク区切り位置 - 1)
        If Len(nstrフォルダ名を取得Fromフルパス) = 2 Then
            nstrフォルダ名を取得Fromフルパス = nstrフォルダ名を取得Fromフルパス & cstr円マーク
        End If
    End If
End Function