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

VBA Split 関数

はじめに

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

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

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

構文

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

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

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

引数「比較モード」

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

解説

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

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

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

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

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

使用例

UBound 関数は配列の最大インデックスを返します。0 を返すと 1 つの要素があります。


Dim list() As String

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

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) ' 最大分割数 1
Debug.Print(UBound(list)) ' 0 ' 0=a,b,c

list = Split("a,b,c", ",", 2) ' 最大分割数 2
Debug.Print(UBound(list)) ' 1 ' 0=a, 1=b,c

list = Split("a,b,c", ",", 4) ' 最大分割数 4
Debug.Print(UBound(list)) ' 2 ' 0=a, 1=b, 2=c

Join 関数」を使って配列を区切り文字で結合する


Dim 配列(2) As String
配列(0) = "ああ"
配列(1) = "いい"
配列(2) = "うう"

s = Join(配列, ",")
Debug.Print (s) ' ああ,いい,うう