2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« 文字列でSplitする。複数の文字でSplitする。 | トップページ | WScript.ShellのPopup(,秒)の秒が効かない。(障害) »

2007年1月13日 (土)

配列よりVARIANT。多次元配列より配列の配列のVARIANT。

Dim Items(n)
より
Dim Items
Items=Array(...)

Dim Items(n,m)
hoge=Items(n,m)
より
Dim Items
Items=Array(Array(...),,,)
hoge=Items(n)(m)

のほうが扱い易いと思います。

例えば、
aaa(tab)bbb(tab)ccc(nl)
ddd(tab)eee(tab)fff(nl)
ggg(tab)hhh(tab)iii
のような、テキストを3x3の配列にすることを考えると、
Items=テキスト
Items=Split(Items,vbNewLine)
For k=0 To UBound(Items)
  Items(k)=Split(Items(k),vbTab)
Next
逆は、
For k=0 To UBound(Items)
  Items(k)=Join(Items(k),vbTab)
Next
Items=Join(Items,vbNewLine)
でテキストに戻ります。

※注
Split(string,delimiter)関数のdelimiterが、もし文字だと、
Split(,vbNewLine)が出来ないので、文字列になったのではないか、と想像。

因みに、正規表現の[.\n]が駄目なのも、.や\nがCr+Lfの関係で、
文字クラスでなくて文字列クラスになってるせいではないか、と想像。
なので、(.|\n)はOK。とは言え、これはやっぱり「障害」です。

« 文字列でSplitする。複数の文字でSplitする。 | トップページ | WScript.ShellのPopup(,秒)の秒が効かない。(障害) »