案件で何度か作成していたため、これを機にブログに落とし込みます。
一つのセルや、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
注意点
- 特にありません。



コメント