VBA関数Split関数

Split関数で文字列を分割して配列にする ~VBA関数
Split

VBA関数 106回

Split関数は分割関数

Split関数は区切られた文字列を分割して配列に変換する関数です。
Split(文字列)のように、引数に文字列だけを指定した場合は、半角スペースで区切られた文字列を分割して配列に変換します。

Split関数構文

Split(expression, [ delimiter, [ limit, [ compare ]]])

引数expressionは、対象となる文字列式を指定します。
引数delimiterは、識別するために使用する文字列を指定します。省略可能。
引数limitは、 返される文字列の数(最大数)、省略可能。
引数compareは、 大文字と小文字を区別して検索するかを指定。省略可能。
引数compareの定数
vbBinaryCompare (既定)「大文字と小文字」、「半角と全角」、「ひらがなとカタカナ」を区別
vbTextCompare 区別しない。


Split 関数構文

Split関数の使用例

1. 文字列をスペースで分割しましょう。スペースの場合は、Split関数の引数を省略できます。
下記コードの list = Split(strfull, " ")を list = Split(strfull)と書いても結果は同じです。

Public Sub vbfunc_106()
    Dim list() As String, strfull As String, i As Long
    strfull = "rock a bye baby in the treetop"
    list = Split(strfull, " ")
    For i = LBound(list) To UBound(list)
        Debug.Print (i & "=" & list(i))
    Next i
End Sub

Split1

2. 文字列の区切りが”-”の場合は、引数delimiterの指定を "-" としてやります。 list = Split(strfull, "-")

Public Sub vbfunc_106()
    Dim list() As String, strfull As String, i As Long
    strfull = "When-the-wind-blows,-the-cradle-will-rock"
    list = Split(strfull, "-")
    For i = LBound(list) To UBound(list)
        Debug.Print (i & "=" & list(i))
    Next i
End Sub

Split2

Split関数を使う時の注意点

3.上記サンプルでは、戻り値を受け取る変数を、 String型の動的配列にしています。
Dim list() As String
もしくは、 Variant 型にします。
Dim list() As Variant と動的配列 にするとエラーとなります。注意してください・

こちらもおすすめ