Split 関数の使い方
【書式】
myArray = Split ( expression [, delimiter [, limit [, compare ] ] ] )
【引数・戻り値の説明】
- expression ・・・ 分割する文字列を指定します。 expression が長さ 0 の文字列 (“”) である場合、Split 関数は、要素もデータもない空の配列を返します。
- delimiter ・・・ 配列を分割する際の区切り文字を指定します(省略可 ⇒ 省略時は、スペース(” “)が区切り文字に使用されます)。
- limit ・・・ 分割後に作成される配列の最大要素数。「-1」を指定すると制限なしになります。「0」以上の値を指定した場合は作成される要素数は制限され、分割しきれなかった部分は最後の要素にまとめられます(省略可 ⇒ 省略時は「-1」が設定されます)。
- compare ・・・ 文字列の比較モードで、省略時はバイナリモードとなります(詳細は、Compare 設定値表を参照)。
- myArray ・・・ 作成される文字列型(String)の一次元配列
Split 関数を使用して作成した配列のインデックスの最小値は、0 となります。Option Base 1 ステートメントを指定してもインデックスの最小値は 0 のままです。
Compare 設定値表
名前 | 値 | 説明 |
VbUseCompareOption | -1 | Option Compare ステートメントの設定を使用 |
vbBinaryCompare | 0 | バイナリモードで比較します |
vbTextCompare | 1 | テキストモードで比較します |
vbDatabaseCompare | 2 | Microsoft Access の場合のみ使用する値です |
Split 関数の使用例
サンプルVBAソース(その1)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
Sub sample_split01() Dim myArray1() As String Dim myArray2() As String Dim myStr As String Dim v Dim i As Long myStr = "月 火 水 木 金 土 日" myArray1 = Split(myStr) Debug.Print "【myArray1】" For i = LBound(myArray1) To UBound(myArray1) Debug.Print "myArray1(" & i; ") = " & myArray1(i) Next i Debug.Print " " Debug.Print "【myArray2】" myStr = "101,105,205,307,420,550" myArray2 = Split(myStr, ",", 3) For i = LBound(myArray2) To UBound(myArray2) Debug.Print "myArray2(" & i; ") = " & myArray2(i) Next i End Sub |
実行結果
サンプルVBAソース(その2)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
Option Base 1 Option Compare Text Sub sample_split02() Dim myArray1, myArray2 Dim myStr1, myStr2, tmp1, tmp2, i myStr1 = "月*火*水*木*金*土*日" myArray1 = Split(myStr1, "*") For i = LBound(myArray1) To UBound(myArray1) tmp1 = tmp1 & "myArray1(" & i & ") = " & myArray1(i) & Chr(13) Next i myStr2 = "月*火*水*木*金*土*日" myArray2 = Split(myStr2, "*", -1, vbBinaryCompare) For i = LBound(myArray2) To UBound(myArray2) tmp2 = tmp2 & "myArray2(" & i & ") = " & myArray2(i) & Chr(13) Next i MsgBox tmp1 MsgBox tmp2 End Sub |