案件で何度か作成していたため、これを機にブログに落とし込みます。
一つのセルや、Web上のテーブルに必要な情報が全て入って
一つの文字列データとして取得する場合があります。
そしてその文字列データを、InStr関数とDo LoopWhileで処理をし続けて分割したり、
分割した文字に対して処理する場合があります。
特定の文字で一つのセルにまとまっているイメージ図
下記のように一つのセルに一つのデータが入っている 且つ「、」で区切られているデータ
営業部、東京本社、青木、30歳 |
営業部、大阪支社、伊藤、25歳 |
経理部、東京本社、山田、45歳 |
特定の文字がなくなるまで処理を続けるサンプルコード
'■特定の文字がなくなるまで処理を続ける Public Sub sample() Dim str As String: str = "営業部、東京本社、青木、30歳" Dim tmpNo As Long Dim tmp As String 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
注意点
- 特にありません。
コメント