Split関数の裏技
Split関数の裏技
このとき、
thom (id:t-hom) さんに教えてもらった。
Split関数の第2引数は省略できる
完全に思い込みで必須だと思っていた。
なるほど、Office VBA Reference の Split Function の項によると、
Syntax
Split( expression [ , delimiter [ , limit [ , compare ]]] )The Split function syntax has these named arguments:
Part Description 略 略 delimiter Optional. String character used to identify substring limits. If omitted, the space character (" ") is assumed to be the delimiter. If delimiter is a zero-length string, a single-element array containing the entire expression string is returned. 以下略 以下略
確かに、第2引数delimiter
はOptional
、つまり省略可能で、省略された時は「the space character (" ")」と見なされるみたいなことが書いてある。
サンプルコード
次のコードで実験。
リスト1 標準モジュール
Public Sub testSplitFunction() Dim ar As Variant ar = Split("お ま え は ア ホ か") '……(1)' Dim i As Long For i = LBound(ar) To UBound(ar) '……(2)' Debug.Print ar(i) Next End Sub
(1)の
ar = Split("お ま え は ア ホ か")
では、Split
関数に文字列「お ま え は ア ホ か
」だけを渡している。わかりにくいけれど、各文字の間を半角スペースで区切っている。
第2引数を省略しているので、delimiter
に半角スペースを指定していると見なされ、「お」「ま」「え」「は」「ア」「ホ」「か」を要素とする配列が変数ar
に格納されるはずだ。
あとは、(2)からの3行
For i = LBound(ar) To UBound(ar) Debug.Print ar(i) Next
で、配列の各要素をイミディエイト・ウインドウに表示する。
実行
このとおり。
おわりに
非常に便利なテクニックだと思います。