VBAのSplitメソッドで文字列を分割して配列にするサンプルです。
目次
説明 | Splitメソッド |
サンプル | カンマで区切る / 半角スペースで区切る / タブで区切る |
末尾が区切り文字の時、最後は要素になる? |
Splitメソッド
- 文字列が2つめの引数の値にマッチすると、そこで文字列を区切ります。
- 戻り値はStringの配列です。
- 以下はMicrosoftのSplit関数のリンクです。
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/split-function
カンマで区切る
Sub test1()
Dim arr1 As Variant
Dim str1 As String
str1 = "赤, 黄, 青"
arr1 = Split(str1, ",")
For Each c In arr1
Debug.Print c '赤 黄 青
Next
End Sub
6行目は、Splitメソッドでカンマ区切りにして配列にしています。
半角スペースで区切る
Sub test1()
Dim arr1 As Variant
Dim str1 As String
str1 = "赤 黄 青"
arr1 = Split(str1, " ")
For Each c In arr1
Debug.Print c '赤 黄 青
Next
End Sub
6行目は、半角のスペースを指定して配列にしています。
タブで区切る
Sub test1()
Dim arr1 As Variant
Dim str1 As String
str1 = "赤" & Chr(9) & "黄" & Chr(9) & "青"
arr1 = Split(str1, vbTab)
For Each c In arr1
Debug.Print c '赤 黄 青
Next
End Sub
6行目は、定数のvbTabを指定して配列にしています。
末尾が区切り文字の時、最後は要素になる?
Sub test1()
Dim arr1 As Variant
Dim str1 As String
str1 = "a, b, c,,"
arr1 = Split(str1, ",")
For Each c In arr1
Debug.Print c '「a」「b」「c」「」「」
Next
Debug.Print UBound(arr1) + 1 ' 5
End Sub
4行目は、末尾がカンマで終わっていますが、空文字も要素として取得します。
関連の記事