Split(スピリット)関数で配列を受け取る

Split(スピリット)関数で配列を受け取るマクロ講座
Split(スピリット)関数で配列を受け取る

マクロ 82回

Split(スピリット)関数

配列を返す関数としてスピリット関数があります。
引数に元の文字列と区切り文字列を指定すると、区切り文字を境目にして、元の文字列を分割し配列として返す関数です。
カンマ区切りのデータがある場合には、そのカンマで分割して配列に格納するといった扱い方ができます。
返り値はバリアント型の変数で受け取ります。
(サンプルファイルは、こちらから マクロ82回サンプルデータ

Split(スピリット)関数の構文

Split関数で文字列を区切り配列を受け取る

1. スピリット関数を使った 配列を作るマクロの例を見てみましょう。
スピリット関数を使って「埼玉支店,千葉支店,小山支店,前橋支店,熊谷支店」 という文字列をカンマを境目に分割します。
その結果をバリアント型の変数支店名 に格納すると支店名は配列として操作できるようになるので、 支店名(0)で1番目に格納した データを表示することができます。

Sub 支店split()
    Dim 支店名 As Variant
    Dim i As Long
    支店名 = Split("埼玉支店,千葉支店,小山支店,前橋支店,熊谷支店", ",")
    For i = 0 To UBound(支店名)
        Cells(i + 2, 1).Value = 支店名(i)
    Next
End Sub

Split(スピリット)関数で配列を受け取る1

2. 文字列「埼玉支店,千葉支店,小山支店,前橋支店,熊谷支店」をカンマで区切って配列に代入しています。
変数支店名に代入した値を、For文を使いループ処理して、セルA2以降に入力して表示しました。


Split(スピリット)関数で配列を受け取る2

配列の要素数を知るには

3. 上記の例では、For文でループする際の For i = 0 To UBound(支店名)にSplit関数が返す配列の最小要素番号は0と決まっているので0を指定、最大値はUBound(支店名)で調べています。最小要素数を調べるLBound関数を使って書くこともできます。
For i = LBound(支店名) To UBound(支店名)


Split(スピリット)関数で配列を受け取る3

Split関数の使用例

4.氏名を姓と名にスペースで分ける時にSplit関数を使うことができます。
下図のサンプルでは、 20名の氏名があり、それを姓と名分割します。氏の列は、2列目なので、Cells(i,2)、名の列は3列目なので、Cells(i,3)、としています。


Split(スピリット)関数で配列を受け取る4

5. 実行すると、図のように、姓と名に分けて入力できます。


Split(スピリット)関数で配列を受け取る5

6. こちらは住所を半角スペースで区切って分割した例です。


Split(スピリット)関数で配列を受け取る6

7. 実行すると、このように分割できます。


Split(スピリット)関数で配列を受け取る7

8.


Split(スピリット)関数で配列を受け取る8

こちらもおすすめ