長さ0の2次元の文字列配列(モジュール変数)を作る方法は?
VB6,WinXP
長さ0の配列の作り方は次のページに書かれていたのですが、
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200603/06030072.txt
この配列をモジュール全体で使う必要がありまして、
そのためにはコードウインドウの上の方で Dim文 で宣言しなければなりません。
ところが
Dim a() As String
a = Array()
としてやると、
「コンパイルエラー 配列には代入できません。」
というエラーが出てしまいます。
(Dim文 がなければ出ないのですが。)
長さ0の配列をモジュール変数として定義するにはどうすればいいでしょうか?
読みずらい文面ですが、どうかよろしくお願いいたします。
バカはしょうがないなぁ。
キミしか質問してないんじゃないの?(笑)
> Dim a() As String
> a = Array()
Array は Variant 型の配列を返しますので、
String 型の配列には代入できません。
空の String 配列を必要としているのであれば、
a = Split("")
を使ってみてください。空の1次元配列が生成されます。
なお、空の2次元配列を生成したいのであれば、
SafeArrayCreate API を使う事になります。
魔界の仮面弁士さん、ご回答ありがとうございます。
> Array は Variant 型の配列を返しますので、
> String 型の配列には代入できません。
そうだったのですか。おかげさまで、
Dim a As Variant
a = Array()
としてやることでモジュール変数として長さ0の配列を作ることができました。
> 空の String 配列を必要としているのであれば、
> a = Split("")
> を使ってみてください。空の1次元配列が生成されます。
こんな裏わざがあったのですね。Splitがこんなことにも使えるなんて驚きです。
> なお、空の2次元配列を生成したいのであれば、
> SafeArrayCreate API を使う事になります。
がんばって勉強してみたいと思います。
大変参考になりました。
ご回答どうもありがとうございました。