【VBA】Split関数で文字列を分割するやり方

本記事では『Split関数』について解説していきます。

 

Split関数は”指定した区切り文字で区切った文字列を一次元配列にして返す”関数です。

1つのデータを複数に分け、適切なセルに入れたいときによく使う関数かと思います。

スポンサーリンク



Split関数の記述方法

Split関数の記述

Split(文字列式, 区切り文字列, 最大分割数, 比較の種類)
 ※区切り文字列, 最大分割数, 比較の種類は省略可能。

Split関数を使う多くの場合「文字列式」と「区切り文字列」の2つを指定することが多いです。

 

Split(“2020,東京,田中“, “,“)

上の記述は「2020」「東京」「田中」という文字列を「,(カンマ)」で区切っています。

なので、区切り文字列に「”,”」を指定しています。

 

もちろん、この区切り文字列は「”,(カンマ)”」だけではなく、「 (空白)」や住所で使う「県」などの文字でも区切ることができます。

 

Split関数の使用上の注意点

Split関数は”配列”を返します。

なので、Split関数を受け取る変数は「Variant(バリアント型)・動的配列でなければならないわけです。

 

Split(“2020,東京,田中“, “,“)

なので、Split関数をつかう際には「バリアント型」にしておけばよいでしょう。

 

Split関数の参考コード

コード内のみの場合

下はSplit関数で取得した値をデバッグして確認してコードです。

上でも書きましたが、Split関数は配列を返します。

そして、配列は「0」から始まるので、上の場合は「0,1,2」の3つが入っていることが分かりますね。

 

エクセルのセルから取得し、書き換える場合

下のようなデータがあったとします。

 

このデータを「”県”と”市町村”に分けて他の列に出力する」という処理をSplit関数を用いてやってみます。

それが下のコードになります。

4行目:Split関数の区切り文字列を”県”に指定し、取得。

5行目:取得した値をC列のi行目のセルに入れる。

また、区切り文字列にした値は取得しないので、セルに移す際に”県”を足しておく。

6行目:取得した値をD列のi行目のセルに入れる。

 

スポンサーリンク

コメント