アドレスを分割する | カメレオンのVBA

カメレオンのVBA

VBAの私的メモ書き

アドレスを\で区切るコードを記載する。
これとフォルダ操作関係のコードと併用することも可能。

処理前

入力例:実行前~~~A列に1行目からアドレスを入力している

↓↓↓↓↓↓ 実行後 ↓↓↓↓↓↓

処理後

分割されたアドレスがB列より記載される



<サンプル>
'セルA1より上から順に分割したいアドレスを入力する

Sub アドレス分割()
    Dim myPath As String
    Dim buf As String
    Dim i As Long
    Dim x As Long
   
    For i = 1 To Range("A1").CurrentRegion.Rows.Count
        x = 2 '分割したアドレスを書き込み始める位置
        myPath = Cells(i, "A").Value
        buf = myPath
        Cells(i, x).Value = Left(buf, InStr(buf, "\") - 1)
        Do While InStr(buf, "\") <> 0
            x = x + 1
           
            '残りの文字を取得する
            buf = Mid(buf, InStr(buf, "\") + 1, Len(buf))
           
            '分割する必要があるか
            If InStr(buf, "\") = 0 Then
                '残り部分のみ書き込む
                Cells(i, x).Value = buf
               
                '→次の行に移動するにあたり初期値を設定しなおす
                x = 2
            Else
                '文字のはじめから¥まで入力する
                Cells(i, x).Value = Left(buf, InStr(buf, "\") - 1)
            End If
        Loop
    Next i
   
    MsgBox "処理が終わりました"
End Sub