VBATips

特定の文字がなくなるまで処理を続ける【Loop While】【ExcelVBA】

案件で何度か作成していたため、これを機にブログに落とし込みます。
一つのセルや、Web上のテーブルに必要な情報が全て入って
一つの文字列データとして取得する場合があります。

そしてその文字列データを、InStr関数とDo LoopWhileで処理をし続けて分割したり、
分割した文字に対して処理する場合があります。

特定の文字で一つのセルにまとまっているイメージ図

下記のように一つのセルに一つのデータが入っている 且つ「、」で区切られているデータ

営業部、東京本社、青木、30歳
営業部、大阪支社、伊藤、25歳
経理部、東京本社、山田、45歳

特定の文字がなくなるまで処理を続けるサンプルコード

'■特定の文字がなくなるまで処理を続ける
Public Sub sample()
    Dim str As String: str = "営業部、東京本社、青木、30歳"
    Dim tmpNo As Long, tmpJ As String
    Dim c As Long
    
    Do
        tmpNo = InStr(str, "、")                 '営業部、東京本社、青木、30歳の「、」は4
        If tmpNo <> 0 Then
            tmp = Left(str, tmpNo - 1)           '営業部                  と
            str = Right(str, Len(str) - tmpNo)   '東京本社、青木、30歳  に分割
        Else
            tmp = str       '「、」が存在しなければそのまま代入
        End If
        
        '■実際の処理をここで行う
        Debug.Print tmp '営業部→東京本社→青木→30歳の処理となる
        
    Loop While tmpNo <> 0
End Sub

注意点

  • 特にありません。

関連記事

コメント

タイトルとURLをコピーしました