フォルダパスから親フォルダとフォルダ名を分割

Sub prcSplitPath()
    Dim rngCell As Range         ' 各セルをイテレートするための変数
    Dim strPath As String        ' 入力されたフルパス
    Dim fso As FileSystemObject  ' ファイルシステムを操作するオブジェクト
    Dim fld As Folder            ' FileSystemObjectのフォルダオブジェクト

    ' FileSystemObjectのインスタンスを生成
    Set fso = New FileSystemObject
    
    ' A列のデータ範囲をループ処理
    For Each rngCell In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
        strPath = rngCell.Value
        If strPath <> "" Then
            ' フォルダオブジェクトを取得
            Set fld = fso.GetFolder(strPath)
            ' 親フォルダのパスをB列にセット
            rngCell.Offset(0, 1).Value = fld.ParentFolder.Path & "\"
            ' フォルダ名をC列にセット
            rngCell.Offset(0, 2).Value = fld.Name
        End If
    Next rngCell
    
    ' オブジェクトの解放
    Set fld = Nothing
    Set fso = Nothing
End Sub

コメント