サイトについて      連絡先   検索

VBA Split 関数

はじめに

Excel VBA の Split 関数を紹介します。

Split 関数は、区切り文字で区切られた文字列を配列にして返します。

カンマ区切りの文字列を配列に分割したいときなどに使用します。

構文

Split(文字列, 区切り文字)

Split(文字列, 区切り文字, 最大分割数, 比較モード)

名前 説明
引数「文字列」区切り文字を含んだ文字列を指定します。
引数「区切り文字」省略できます。文字列の区切り文字を指定します。
引数「最大分割数」省略できます。配列の要素数がいくつになるように分割するかを指定します。
引数「比較モード」省略できます。大文字と小文字を区別して検索するかを指定します。
戻り値文字列型の配列 (String)

引数「比較モード」

単位 説明
vbBinaryCompare (既定)「大文字と小文字」、「半角と全角」、「ひらがなとカタカナ」を区別する。
vbTextCompare区別しない。

解説

区切り文字を省略したときは半角スペース " " が指定されます。

区切り文字が見つからないときは、要素数 0 の配列が返ります。

最大分割数を省略したときは、全ての区切り文字で分割した配列を返します。これは -1 を指定したときと同じです。

最大分割数に 1 を指定すると要素数が 1 つの配列を返します。配列の最初の要素に文字列がそのまま入っています。

最大分割数に 2 を指定すると要素数が 2 つの配列を返します。最初に見つかった区切り文字の位置で分割されます。

使用例

UBound 関数は配列の最大インデックスを返します。0 を返すと配列は空を意味します。

Dim list() As String
list = Split("a,b,c")
Debug.Print(UBound(list)) ' 0

list = Split("a b c")
Debug.Print(UBound(list)) ' 2 ' 0=a, 1=b, 2=c

list = Split("a,b,c", ",")
Debug.Print(UBound(list)) ' 2 ' 0=a, 1=b, 2=c

list = Split("a,b,c", ",", 1)
Debug.Print(UBound(list)) ' 0 ' 0=a,b,c

list = Split("a,b,c", ",", 2)
Debug.Print(UBound(list)) ' 1 ' 0=a, 1=b,c

list = Split("a,b,c", ",", 4)
Debug.Print(UBound(list)) ' 2 ' 0=a, 1=b, 2=c

関連ページ