- ベストアンサー
FOR文でtext1,text2,text3...などとどうやって処理させればいいのですか
超初心者な質問ですみません。 たとえばFOR文を使ってtext1~10まで連続に処理させるには どういったコードを記述すればよいのでしょうか? 初心者用の本やHPを探しても見当たりませんでした。 お願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
textエリアをインデックス配列にすればいいです。 Text1のエリアをファーム上でコピーし、貼り付けると Text1(0)~ Text1(9) の配列になります。 それを (例) i =0 for i=0 to 9 text1(i) = x next のようにすればいいです。
その他の回答 (4)
- hana432
- ベストアンサー率37% (6/16)
下記の例は、ACCESS VBA で作業した時のものです。もしかしたらVBでは動かないかもしれないですが、参考になれば幸いです。 For i = 1 To 10 Me("text" & i) = i Next i ただ、この例はACCESSにはコントロール配列がない為の苦肉の策です。せっかくVBをお使いなのであれば、No.1さんの回答にもありますように、コントロール自体を配列にしてしまう方が便利かつスマートだと思います。 ヘルプで「コントロール配列」で検索をかければ意味,作成方法が詳しくわかるのではないかと思います。
お礼
工夫次第で色々やり方ができるんですね。 ご回答ありがとうございます。一度試してみます。
- y_herohero
- ベストアンサー率30% (72/239)
おそらくtext1、text2…というのは、 テキストボックスコントロールの事を指しているのかと思われますが、 関連させたい全テキストボックスのプロパティで、 [オブジェクト名]を同じものにし、(例えばtext) [Index]に連番を振ると、(0から) 「コントロール配列」として定義できます。 するとtext1、text2、text3…は、 text(0)、text(1)、text(2)として扱う事ができますので、 For i = 0 To 2 text(i) = "てすと" Next なんて事ができます。
お礼
なるほど!こういったやり方もあるんですね。 早速試したらできました。 ご回答ありがとうございました。
- selenity
- ベストアンサー率41% (324/772)
「コントロール配列」というモノを使います。
お礼
コントロール配列を覚えることができました。ありがとうございました。
- josyo_m
- ベストアンサー率63% (28/44)
お疲れ様です。 下でpatakさんがおっしゃったコントロール配列のやり方が一番いいと思います。 参考までに、コントロール配列を使用しないやり方をかきます。 テキストボックスを「TEXT1」から「TEXT10」までの名前でフォームに貼り付けて以下のコードを書込み実行してみてください。 Private Sub Form_Load() Dim i As Long For i = 1 To 10 '// TEXTnのテキストプロパティ Me.Controls("TEXT" & CStr(i)).Text = CStr(i) Next i End Sub 間違っていたらごめんなさい。
お礼
なんとなく理解はできましたが、まだ私には少し難しいみたいです。 もっと勉強します。ありがとうございました。
お礼
ご回答ありがとうございます。早速試したらできました。 これでスムーズに処理できます!