- ベストアンサー
VB6 配列を初期化したい
VB6でループさせて配列に値を入れて、計算させて最終的に求めたい値をRとします。そのときループで繰り返すためか同じ配列に値を入れてどんどん値がでかくなりRの値がおかしくなってしまいます; おそらく問題は一回前に入れた配列がそのままのこってしまってるからなのだと思うのですが; 配列の中の値をクリアする方法はないものでしょうか? 一応、配列=0として初期化しようとしても値は変わらず前のが残ったままになってしまっています; どなたかわかる方いらっしゃいましたらご回答宜しくお願いします その他何かいい方法があればそれも教えていただけたらと思います
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Eraceステートメントを使用 Dim a() as Long Dim s(100) as String Dim x() as Long Erase a ’要素が0になる Erase s ’要素が""になる Redim x(100) as Long Erase x ’メモリを解放 注)VB2005の場合は動作が異なるので注意して下さい。
その他の回答 (1)
- usokoku
- ベストアンサー率29% (744/2559)
sub main() call tekito(Rの配列の大きさ,,,) IF (サイド計算する場合) then call tekito(Rの配列の大きさ,,,) end if end sub tekito(Rの配列の大きさ,,,) dim R() redim R(Rの配列の大きさ) call 配列Rの中身の設定(R()) call 配列Rの中身の計算 IF (初期化が必要な場合) then redim R(Rの配列の大きさ) call 配列Rの中身の設定(R()) call 配列Rの中身の計算 end if end sub ローカル変数として設定して、初期化し、実行して、サブルーチン終了でローカル変数を破棄する破棄する 方法と redim を使う方法 があります。dim resum(でしたか)は配列宣言が定数である必要があるので、汎用を考えると使えません。
お礼
お返事ありがとうございます<(_ _)> なるほどローカル変数としてあとはコール文をうまく使っていく方法がだぶらなくて安全そうですね 注意事項まで書いていただきありがとうございます これを参考に頑張ってみたいと思います お忙しい中ご回答いただきましてありがとうございます<(_ _)>
お礼
さっそくのお返事ありがとうございます<(_ _)> なるほどEraseを使えばいいんですね 2005とは動作が異なるという貴重なアドバイス 本当にありがとうございます don_goさんのアドバイスを参考に再度挑戦してみたいと思います お忙しい中回答ありがとうございます<(_ _)>