Excel VBAで文字列を分割する:Split

VBAで文字列を分割するには、Split関数を使用します。

Split関数の使い方

Split関数は、「,」(カンマ)やスペース等で区切られた文字列を分割し、一次元配列を作成します。構文は下記です。

[文字列]:分割する文字列を指定します。

[ 区切り文字]:上で指定した文字列を区切る文字を指定します。省略可能で、省略した場合は半角スペースになります。

[返す要素数]:いくつの要素を返すかを指定します。省略可能で、省略した場合は「-1」(すべて返す)となります。

[比較モード]:文字列を比較するモードを指定します。省略可能で、省略した場合は、vbBinaryCompare(大文字/小文字を区別する)です。

戻り値は一次元配列になるので、別に格納用の配列を宣言しておく必要があります。

下記に使用例を示します。ここでの[区切り文字]は「,」(カンマ)です。

配列Prefに値が格納されます。

split

ワークシートのセルに格納

下記は、上記を実行して得られた配列要素を、ワークシートのセルA1~A4へ書き写します。

(補足)Ubound関数は、指定した配列の最大インデックス番号を返します。この場合ですと3です。また、セルのインデックス番号は1からですので、Cells(i,1)とするとPref(0)を代入する際にCells(0,1)となり、エラーが発生してしまいますので、Cells(i+1,1)としてやります。

[実行結果]result

分割位置を工夫する

Replace関数を併用すると、分割位置を意図的に設定できます。Replace関数は、指定した文字列の中で、任意の文字を置き換えることができます。

下記例をご覧ください。¥の前の「(」を「,」に変換したのち、Splitを実行します。

[実行結果]list

このように、綺麗にセルに収めることができました。


Welcome to UX MILK

UX MILKはより良いサービスやプロダクトを作りたい人のためのメディアです。

このサイトについて

UX MILKのディレクター募集