Split関数とは…
一定のルールを持った文字列を扱う場合に便利な関数ですね。
例えば…
- 必ず文字と文字の間に「、」が入っている
- 必ず文字と文字の間に半角スペースが入っている
- 必ず文字と文字の間に「-」が入っている
こういったときですね。
とは言え想像がつきにくいでしょうので更に言うと
『北海道、本州、四国、九州、沖縄』
こういった文字列ですね。ちなみにこういった時の分割したい文字に使用する物の事を「デリミッタ」といいます。
Split関数を使うとデリミッタを指定する事により、デリミッタを境にそれぞれを分割して配列で返してくれます。
そう、「配列で返す」のです。
という事はつまりそれ単体で使うのではなく一旦変数に格納しなければいけません。
変数の型はバリアント型でなくてはなりません。
ひとまずやってみましょう。
行うのは先程の『北海道、本州、四国、九州、沖縄』。デリミッタを「、」にして配列に分割していきます。
Sub split関数() Dim tmp As Variant '一時的...という意味のtmpという名前の変数 Dim i As Integer tmp = Split("北海道、本州、四国、九州、沖縄", "、") For i = 0 To UBound(tmp) Debug.Print tmp(i) Next End Sub
ここでは『北海道、本州、四国、九州、沖縄』という文字列を第1引数に設定し、第2引数にデリミッタ「、」を指定して変数に代入します。
そうするとこのバリアント型変数は以降配列として扱われます。
という事でForで回して配列0番地から順番にイミディエイトウィンドウに出力していっているわけですね。
これ、ExcelVBAでは結構使います。僕は結構配列に入れて吐き出す処理の他に一旦「,」カンマ区切りの文字列を作ってしまって、それをSplitで分解・配列にしてからセルに一括で吐き出したりします。
そっちの方が手っ取り早い場合もあります。
csvファイルなんかも実はカンマ区切りのテキストファイルですし。。。なくても大体何とかなる関数ですが、あると重宝する関数ですね。
という事でなんと次回は!
何をやるか決めていませんので何か面白い事考えておきます!