• ベストアンサー

コントロール配列のループ

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

質問者が選んだベストアンサー

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.4

なんか日本語とサンプルも変だったので言い直します。 コントロール配列は、Indexが順番通りに振られている時はimogasi氏の言う通りでいいと思いますが、空き番号があるならば「For Each ~ In ~ 」を使用しましょう。 下記サンプルは、各テキストボックスのテキストに、コントロールのIndex値をセットします Dim txtWk  As TextBox For Each txtWk In Text1   txtWk.Text = txtWk.Index Next txtWk

noname#6037
質問者

お礼

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

その他の回答 (3)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.3

コントロール配列は、Indexが順番通りに振られているとはimogasi氏のいう通りいいと思いますが、空き番号があるならば「For Each ~ In ~ 」を使用しましょう。 下記サンプルは、各テキストボックスのテキストに、コントロールのIndex値をセットします Dim txtWk  As TextBox For Each txtWk In Text1   txtWk.Text = .Index Next txtWk

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

下記の実例で判って下さい。 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つの値が 順次表示されます。

noname#6037
質問者

お礼

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

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

on error を 用いて 存在しない配列をアクセスしたら、終了させるという手もあります。 基本的には、配置した時点で 配列が いくつあるのかわかると思いますので、 その数分だけループさせたらいいはずですが・・・。

noname#6037
質問者

お礼

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

関連するQ&A