基本的なことすぎてすいません。
昨日からVBの、というか初めてプログラムなるものを勉強しています。
そこで質問なのですが、配列をつくり、その配列がなくなるまでループさせたいのですが、終了条件が分かりません。
どなたかアドバイスお願いします。
For...Nextを使います。
初めと終わりの数には、LBoundとかを使います。
詳しくはMSDNライブラリとかを見てください。
ところで、イブの日からはじめたばっかりということですけど、
それならば、いちおう助言を1つ…。
MSDNライブラリ(またはそれと同じようなもの)は、印刷したり、要約して表を作ったりして、
パソコンを使わずにも読めるようにしておくといいですよ。
(わたしは印刷して、それを要約して表を作って覚えました)
VBの命令というのは、標準だけで相当な数あります。
(APIのこととか、CreateObjectで作れるオブジェクトのメソッドとか、
全部数えると相当な量になります、わたしもそこまでは覚えていません^^;)
だから表を作るとかしないと、ちょっと全部は扱えないかもしれません。
(結局扱う必要のないものも結構ありますけどね^^;)
回答どうもありがとうございます。
質問の内容が分かりにくくてすいません。
私がやりたかったのは、動的な配列なのです。
最初のループで各配列に値を格納します。
後のループで、配列の中身をリストボックスに表示させたいのですが、
最初にどれくらいの配列になるのか分からないのでとりあえず配列の大きさを
xxx = 99999
Hairetu(xxx)
としています。
値を表示させるループは、xxx回ループさせるのではなく、
中身が存在するだけループさせたいのですが、どうもうまくいきません。
困っています。
頼りっぱなしですいません、よろしくおねがいします。
それこそUBoundを使えばできます。
えー、ちゃんと使ってみましたかぁ?
…失礼しました^^;
For i = LBound(Array) To UBound(Array)
でいくらでもいいんですけど。
あっ、多分。
(また意味が違っちゃってるといけないし^^;)
丁寧な回答どうもありがとうございます。
えーと・・・実行は出来たのですが・・・
debugで見てみると、やはり999回ループしてしまっています。
なので、表示するリストに意味のないスクロールバーができてしまいます。
私のやり方がますいのでしょうか?
前もって(グローバルで)
AAAAA()という配列を作っておきます。
cnt=999
Redim AAAAA(cnt)
For i = LBound(AAAAA) To UBound(AAAAA)
'リストに追加
lst1.AddItem AAAAA(i)
Debug.Print i
Next
何度も助けていただいているのに文句ばっかりですいません。
よろしくおねがいします。
はじめまして。
動的配列がString型と仮定して話を進めさせて頂きます。
配列の中身が入っているだけループさせるのなら
まずはFor...Next でループして、その中で配列
の中身をチェックし、入っていなければループを
抜け出せばいいのでは?
一応サンプルを載せておきます。
'配列のはじめからおわりまでループ
For I = LBound(strArray) To UBound(strArray)
'中身が入っていなかったら
If strArray(I) = "" Then
'ループを抜ける
Exit For
End If
List1.AddItem strArray(I)
Next I
質問の意味が違っていたらすみません。
なるほど!中身を調べればいいのですね。
ありがとうございます。終了条件にばかり気をとられて、中身まで気にしていませんでした。
たかみちえさん、こーちんさんありがとうございました。