本記事では『Split関数』について解説していきます。
Split関数は”指定した区切り文字で区切った文字列を一次元配列にして返す”関数です。
1つのデータを複数に分け、適切なセルに入れたいときによく使う関数かと思います。
Split関数の記述方法
Split関数の記述
Split(文字列式, 区切り文字列, 最大分割数, 比較の種類)
※区切り文字列, 最大分割数, 比較の種類は省略可能。
※区切り文字列, 最大分割数, 比較の種類は省略可能。
Split関数を使う多くの場合「文字列式」と「区切り文字列」の2つを指定することが多いです。
Split(“2020,東京,田中“, “,“)
上の記述は「2020」「東京」「田中」という文字列を「,(カンマ)」で区切っています。
なので、区切り文字列に「”,”」を指定しています。
もちろん、この区切り文字列は「”,(カンマ)”」だけではなく、「 (空白)」や住所で使う「県」などの文字でも区切ることができます。
Split関数の使用上の注意点
Split関数は”配列”を返します。
なので、Split関数を受け取る変数は「Variant(バリアント型)・動的配列」でなければならないわけです。
Split(“2020,東京,田中“, “,“)
なので、Split関数をつかう際には「バリアント型」にしておけばよいでしょう。
Split関数の参考コード
コード内のみの場合
下はSplit関数で取得した値をデバッグして確認してコードです。
1 2 3 4 5 6 7 |
Sub Sampl1() Dim tmp As Variant tmp = Split("2020,東京,田中", ",") Debug.Print tmp(0) Debug.Print tmp(1) Debug.Print tmp(2) End Sub |
上でも書きましたが、Split関数は配列を返します。
そして、配列は「0」から始まるので、上の場合は「0,1,2」の3つが入っていることが分かりますね。
エクセルのセルから取得し、書き換える場合
下のようなデータがあったとします。
このデータを「”県”と”市町村”に分けて他の列に出力する」という処理をSplit関数を用いてやってみます。
それが下のコードになります。
1 2 3 4 5 6 7 8 |
Sub Sample2() Dim i As Long, tmp As Variant For i = 3 To 7 tmp = Split(Cells(i, 2), "県") '補足:Cell(行番号 ,列番号) Cells(i, 3) = tmp(0) & "県" Cells(i, 4) = tmp(1) Next i End Sub |
4行目:Split関数の区切り文字列を”県”に指定し、取得。
5行目:取得した値をC列のi行目のセルに入れる。
また、区切り文字列にした値は取得しないので、セルに移す際に”県”を足しておく。
6行目:取得した値をD列のi行目のセルに入れる。
〇おすすめのVBA参考書ランキング!
1位 | 2位 | 3位 |
---|---|---|
Excel VBA 脱初心者のための集中講座 | パーフェクトExcel VBA | ExcelVBA 実戦のための技術 |
初心者~中級者 | 中級者 | 初心者~中級者 |
【初心者が手に取るべき参考書】 ・「書籍+動画」で圧倒的に理解しやすい入門書になっている。 ・丁寧で詳しい解説でボリューム感がある。 | 【より深い理解をしたい方にお勧めな参考書】 ・テーマに対して丁寧な解説・適度な深さで解説されている。 ・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。 | 【入門書と一緒に買うべき参考書】 ・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。 ・実践的で効果的なコードの書き方が理解できる。 |
【読んでみた一言】 正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。 | 【読んでみた一言】 深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。 | 【読んでみた一言】 基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。 |
スポンサーリンク