• ベストアンサー

FOR文でtext1,text2,text3...などとどうやって処理させればいいのですか

超初心者な質問ですみません。 たとえばFOR文を使ってtext1~10まで連続に処理させるには どういったコードを記述すればよいのでしょうか? 初心者用の本やHPを探しても見当たりませんでした。 お願いします。

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

  • ベストアンサー
  • patak
  • ベストアンサー率23% (108/457)
回答No.1

textエリアをインデックス配列にすればいいです。 Text1のエリアをファーム上でコピーし、貼り付けると Text1(0)~ Text1(9) の配列になります。 それを   (例) i =0 for i=0 to 9 text1(i) = x next のようにすればいいです。

negi-bozu
質問者

お礼

ご回答ありがとうございます。早速試したらできました。 これでスムーズに処理できます!

その他の回答 (4)

  • hana432
  • ベストアンサー率37% (6/16)
回答No.5

下記の例は、ACCESS VBA で作業した時のものです。もしかしたらVBでは動かないかもしれないですが、参考になれば幸いです。 For i = 1 To 10 Me("text" & i) = i Next i ただ、この例はACCESSにはコントロール配列がない為の苦肉の策です。せっかくVBをお使いなのであれば、No.1さんの回答にもありますように、コントロール自体を配列にしてしまう方が便利かつスマートだと思います。 ヘルプで「コントロール配列」で検索をかければ意味,作成方法が詳しくわかるのではないかと思います。

negi-bozu
質問者

お礼

工夫次第で色々やり方ができるんですね。 ご回答ありがとうございます。一度試してみます。

回答No.4

おそらくtext1、text2…というのは、 テキストボックスコントロールの事を指しているのかと思われますが、 関連させたい全テキストボックスのプロパティで、 [オブジェクト名]を同じものにし、(例えばtext) [Index]に連番を振ると、(0から) 「コントロール配列」として定義できます。 するとtext1、text2、text3…は、 text(0)、text(1)、text(2)として扱う事ができますので、 For i = 0 To 2  text(i) = "てすと" Next なんて事ができます。

negi-bozu
質問者

お礼

なるほど!こういったやり方もあるんですね。 早速試したらできました。 ご回答ありがとうございました。

  • selenity
  • ベストアンサー率41% (324/772)
回答No.3

「コントロール配列」というモノを使います。

negi-bozu
質問者

お礼

コントロール配列を覚えることができました。ありがとうございました。

  • josyo_m
  • ベストアンサー率63% (28/44)
回答No.2

お疲れ様です。 下で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 間違っていたらごめんなさい。

negi-bozu
質問者

お礼

なんとなく理解はできましたが、まだ私には少し難しいみたいです。 もっと勉強します。ありがとうございました。

関連するQ&A