Excel VBAを使って、文字列を特定の区切り文字で分割したいことはありませんか?
けど、そんな中で悩むことは、
- Split関数の基本的な使い方がわからない
- 複数の文字で区切る方法が知りたい
- 分割したデータを配列として扱いたい
ですよね。
今回はそんなお悩みを解決する
- Split関数の基本的な使い方
- 区切り文字を指定した分割
- 分割したデータを配列として活用する方法
についてまとめます!
もくじ
Split関数を使った文字列分割の完成イメージ
VBA の Split関数を使うことで、文字列を特定の区切り文字で分割し、配列として取得できます。
例えば、
POINT
- “Apple,Orange,Banana” をカンマ
,で区切って配列にする - 改行
vbCrLfを使って複数行のデータを分割する - スペース
" "やハイフン"-"で区切る
Split関数の基本
基本的な使い方
構文
Split(文字列, 区切り文字 [, 制限 [, 比較モード]])
| 引数 | 説明 |
|---|---|
文字列 |
分割する対象の文字列 |
区切り文字 |
文字列を分割する際の区切り文字(デフォルトは " " スペース) |
制限 |
分割する最大要素数(省略可) |
比較モード |
比較方法(vbBinaryCompare または vbTextCompare) |
Split関数の使用例を見てみましょう。
例1: カンマで区切る
Sub ExampleSplit()
Dim fruits As Variant
fruits = Split("Apple,Orange,Banana", ",")
MsgBox fruits(0) ' 出力: Apple
MsgBox fruits(1) ' 出力: Orange
MsgBox fruits(2) ' 出力: Banana
End Sub
結果
| 入力文字列 | Apple,Orange,Banana | ||
| 区切り文字 | , | ||
| 結果 | Apple | Orange | Banana |
例2: スペースで区切る
Dim words As Variant
words = Split("Hello World VBA", " ")
この場合、words(0) = "Hello"、words(1) = "World"、words(2) = "VBA" になります。
| 入力文字列 | Hello World VBA | ||
| 区切り文字 | (スペース) | ||
| 結果 | Hello | World | VBA |
例3 改行で区切る
Dim lines As Variant
lines = Split("Line1" & vbCrLf & "Line2" & vbCrLf & "Line3", vbCrLf)
結果
| 入力文字列 | Line1 Line2 Line3 |
||
| 区切り文字 | (改行) | ||
| 結果 | Line1 | Line2 | Line3 |
例4 分割回数を制限する
3つの要素だけ取得したい場合は第三引数に制限したい回数の数値をいれます。
Dim data As Variant
Dim text As String
text = "One,Two,Three,Four,Five"
data = Split(text, ",", 3)
結果
| 区切り文字 | , | ||
| 制限 | 3 | ||
| 結果 | One | Two | Three,Four,Five |
続いて応用編です。
分割したデータを配列として活用する
Forループで配列の要素を処理する
Forループで配列の要素を処理するサンプル例です。
Sub LoopSplit()
Dim items As Variant
Dim i As Integer
items = Split("Red,Blue,Green", ",")
For i = LBound(items) To UBound(items)
Debug.Print items(i) ' 各要素を出力
Next i
End Sub
items = Split("Red,Blue,Green", ",")文字列をカンマで分割し、配列に格納しています。
For i = LBound(items) To UBound(items)配列の最小インデックス(0)から最大インデックス(2)までループします。
Debug.Print items(i)各要素をイミディエイトウィンドウに出力します。
セルに分割したデータを出力する
Sub SplitToCells()
Dim items As Variant
Dim i As Integer
items = Split("Dog,Cat,Bird", ",")
For i = LBound(items) To UBound(items)
Cells(i + 1, 1).Value = items(i)
Next i
End Sub
こちらはセルに直接データが出力されます。
結果
| i + 1 | Cells(i+1, 1) | items(i) | 結果 |
| 1 | Cells(1,1) = A1 | Dog | A1に”Dog”を出力 |
| 2 | Cells(2,1) = A2 | Cat | A2に”Cat”を出力 |
| 3 | Cells(3,1) = A3 | Bird | A3に”Bird”を出力 |
さいごに
いかがでしょうか。
今回は、
Split関数の基本的な使い方- 区切り文字を指定した分割方法
- 分割後のデータを配列として活用する方法
についてまとめました。
Split 関数を使えば、CSVデータの解析やログデータの処理など、さまざまなシナリオで活用できます。ぜひ試してみてください!







コメントを残す