
VBA関数 106回
Split関数は区切られた文字列を分割して配列に変換する関数です。
Split(文字列)のように、引数に文字列だけを指定した場合は、半角スペースで区切られた文字列を分割して配列に変換します。
Split(expression, [ delimiter, [ limit, [ compare ]]])
引数expressionは、対象となる文字列式を指定します。
引数delimiterは、識別するために使用する文字列を指定します。省略可能。
引数limitは、 返される文字列の数(最大数)、省略可能。
引数compareは、 大文字と小文字を区別して検索するかを指定。省略可能。
引数compareの定数、
vbBinaryCompare (既定)「大文字と小文字」、「半角と全角」、「ひらがなとカタカナ」を区別
vbTextCompare 区別しない。

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

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

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