文字列操作(3)

array Array(vanum,num,...)
引数列を配列に変換します
Dim a
a = Array("First","Second","Third")
MsgBox a(2)

array Split(str1,str2)
PerlのSplitに似ている
文字列str1を区切り文字str2で区切って配列を作る。
Dim a As Variant
a = Split("Excel,Word", ",")
aは動的配列だがDim a() As Variantだとエラーになる。

str Join(array[,str])
配列を区切り文字列で結合して文字列にする。
区切り文字を省略時は空白一文字。
Dim a(1)
a(0)="Excel"
a(1)="Word"
Debug.Print Join(a,",")
結果は
Excel,Word
PerlのJoinに似ているがVBAの配列の使い勝手の悪さ故、使い勝手は良くない。
Dim a(3)
a(0)="Excel"
a(1)="Word"
Debug.Print Join(a,",")
結果は
Excel,Word,,
という残念な結果になる。
これを回避するにはRedimで修正が必要。

str Replace(str1,str_find,str_replace[,start[,count[,compare]]])
str1の中の文字列str_findを探してその部分をstr_replaceで置き換える。
startは検索開始位置、countは置き換える回数、compareは文字列を比較するモード。
compare
数値意味
0テキストモード比較。大文字と小文字の区別無し
1バイナリモード比較。

array Filter(ary,str[,bool[,compare]])
boolを指定しないか、Trueの時:配列aryの中から、strを含む要素を抜き出した配列を作って返す。
boolがFalseの時:配列aryの中から、strを含まない要素を抜き出した配列を作って返す。
compareはReplaceと同じ定義
Perlでいうgrepに相当するが、正規表現は使えないのでかなり使い勝手は悪い。

比較的複雑な機能の文字列操作関数です。
Perl等に刺激を受けて作ったとみられる関数ですが、VBAの言語仕様の悪さからあまり使い勝手の良くない(使用用途が限定される)残念なものになっています。
comments (3)

コメント

sex celebrity | 2017/08/09 03:47 PM
We are a gaggle of volunteers and starting a new scheme in our community. Your website offered us with valuable info to work on. You've done an impressive activity and our entire neighborhood can be thankful to you.
aromaticcontain12.jimdo.com | 2017/07/31 04:14 PM
This is a very good tip especially to those new to the blogosphere.
Simple but very accurate info_ Thanks for sharing this one.

A must read article!
How do you grow? | 2017/07/29 05:30 AM
Thanks for sharing your thoughts about How does Achilles tendonitis occur?.
Regards

Comment Form