10代と話して驚いたこと

タイトルどおりなのですが、コントロール配列の最初から最後までループさせるにはどうすればいいんでしょうか?

A 回答 (4件)

なんか日本語とサンプルも変だったので言い直します。



コントロール配列は、Indexが順番通りに振られている時はimogasi氏の言う通りでいいと思いますが、空き番号があるならば「For Each ~ In ~ 」を使用しましょう。

下記サンプルは、各テキストボックスのテキストに、コントロールのIndex値をセットします
Dim txtWk  As TextBox
For Each txtWk In Text1
  txtWk.Text = txtWk.Index
Next txtWk
    • good
    • 0
この回答へのお礼

ずばり知りたかった方法です。これでうまくできそうです。
回答ありがとうございました。

お礼日時:2002/11/03 21:27

コントロール配列は、Indexが順番通りに振られているとはimogasi氏のいう通りいいと思いますが、空き番号があるならば「For Each ~ In ~ 」を使用しましょう。



下記サンプルは、各テキストボックスのテキストに、コントロールのIndex値をセットします
Dim txtWk  As TextBox
For Each txtWk In Text1
  txtWk.Text = .Index
Next txtWk
    • good
    • 0

下記の実例で判って下さい。


Form1にTextBoxのText1を4つコピーしました。コントロール配列にします。計5つテキストボックスが出来ます。
コマンドボタンを1つ貼り付けます。
コマンドボタンのClickイベントプロシージュアーとして
Private Sub Command1_Click()
MsgBox text1.Count
For i = 0 To text1.Count - 1
MsgBox text1(i).Text
Next i
End Sub
のコードを作りました。
実行し5つのテキストボックスの値を適当に変えます。
コマンドボタンをクリックすると、5つの値が
順次表示されます。
    • good
    • 0
この回答へのお礼

なるほど!Countを使う方法もありましたね。最近、PGから離れていたので
忘れていました。回答ありがとうございました。

お礼日時:2002/11/03 21:28

on error を 用いて 存在しない配列をアクセスしたら、終了させるという手もあります。



基本的には、配置した時点で 配列が いくつあるのかわかると思いますので、
その数分だけループさせたらいいはずですが・・・。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
字足らずでしたm(__)m。コントロールは動的なのとスマートな書き方を追究していました。

お礼日時:2002/11/03 21:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報