- ベストアンサー
VBで配列の初期化について
VBやVBAで1次元・2次元配列を、プログラムの中の 値の(リテラル的)記述で初期化する方法はどうすれば良いのでしょうか。1次元配列にはx=Array()で代用してきましたが、さて、行と列がある表のような、値データを2次元配列にセットしようとして、ハテナと行き詰まりました。配列名(要素)=値を要素数だけ繰り返す方法以外に、例えば A[][]={(a、b、c)(d、e、f)(g,h,i)}のような、書き方は出来ないのでしょうか。 複数のArrayをArreyの()内に入れてみましたがも上手く行かないようですが。 有り無しについて教えていただけたらと思います。 市販の解説書数書には触れた記述は見つかりませんでした。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Arrayを使って多次元配列の作成はどうもできないようなのですが、 1次元配列の各要素が1次元配列というものであれば、 A = Array(Array(a,b,c), Array(d,e,f), Array(g,h,i)) というのが可能です。 A(i)(j)という形式で各要素にアクセスできます。
その他の回答 (2)
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 Eraseステートメントで初期化します。 Eraseステートメントで初期化すると、Dimで宣言した直後の状態になります。 例えば、数値型は0、文字列型は長さ0の文字列などです。 なおこれは静的配列(サイズ固定)の場合で、動的配列の場合はメモリを解放します。 つまり、ReDimで再宣言した配列のサイズを無効にします。従って、初期化後は、再宣言してから使用することになります。
お礼
ご解答有難うございました。「初期化」の言葉使いを間違ったのかも知れません。勉強しなおしてみます。私の質問は、プログラム処理を始めるにあたって、ある配列に、思った通りの値をセットしたいと言うものでした。DOS-BASICではREAD/DATA文があったりしました。また他のC言語系には=による値一括設定あるのですが、VBで自分の不勉強で知らないのかもと思って質問させていただきました。 今後もお世話になります。
- ykkw_2001
- ベストアンサー率26% (267/1014)
>A[][]={(a、b、c)(d、e、f)(g,h,i)}のような、書き方 わたしも、前々からこれをやりたいと思っていますが、どうやらだめみたいです。 やはり、「BASICだから」なのでしょうか、オブジェクト指向より先に、こういう仕様を入れてほしかった。(あとポインタも・・) #ビルゲイツが引退したら変わるかも・・・
お礼
早速のご解答有難うございました。「出来ないようである」とのご経験を教えていただいて、取りあえず安心したような気分です。今後ともよろしく。
お礼
良い、使えそうな方法を教えていただいて有難うございました。X=Array(a,b,c),・・・として、A=array(X,Y,Z) とまではやって見てたんですが。今後もよろしく。