• ベストアンサー

ACCESSの変数で

超初心者です。お世話になります。 VBAの変数について教えて下さい。 例えば変数1~変数10まであるとします。 そこに氏名1~氏名20までを代入します。 そのとき、一つずつしていると、効率が悪いので、 For Next を使いたいと思います。 For  繰り返し = 1 to 10 で、変数の数字の部分を繰り返しで増やしていこうと思ったのですが、 "変数"と"繰り返し"のくっつけ方がどうも上手くできません。 どのようにしたらよいのでしょうか? あと、このように、Me.○○の部分も変数と変数をくっつけたいのですが、無謀でしょうか? わかりにくい説明で申し訳ありませんが、よろしくお願い致します。 

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

  • ベストアンサー
  • souta_n
  • ベストアンサー率33% (79/234)
回答No.3

配列ですね。具体的にはこんな感じでコーディングします。 ****************************************************** Option Base 1  ' 既定の配列のインデックス番号を 1 に設定します。 Function aaaa() Dim namae(20) As String  '名前を配列変数に宣言する Dim I As Integer      'ループカウンタ For I = 1 To 20 namae(I) = I & "さん"  'とりあえず1.2.3....に「さん」を付けて名前という事にしときましょう Next For I = 1 To 20 Debug.Print namae(I)  'デバックウインドに結果を表示することにしときます。CTRL+Gで確認できます。 Next End Function ****************************************************** ちなみにMe.○○についてはコントロール配列を使用するのですが、VBでは出来ますが、Accessでは使えなかったように思います。

toroon
質問者

お礼

とてもわかりやすい説明で、助かりました。 ありがとうございました。うまくできました(^o^) 何しろ、超初心者なもので(^^ゞ これからもよろしくお願いします。

その他の回答 (3)

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

>例えば変数1~変数10まであるとします。 そこに氏名1~氏名20(10の誤り?)までを代入します。 --->普通はこうはしません。 多分言いたいとは Sub test01() Name = Array("山田", "山川", "大田", "岸田") For i = 0 To 3 MsgBox Name(i) Next i End Sub 上記がヒントになるのではと推測します。 Accessのテーブルに既に名前フィールドがあるのなら(模式コードは) (オープン処理) For i=1 to 10 (レコードを1つ読む) name(i)=テーブル名!名前 (レコード)MoveNext next i

toroon
質問者

お礼

以前もお世話になりましたね。ありがとうございます。 ACCESSを始めたばかりで分からない事ばっかりです(^^ゞ 今後ともよろしくお願いします。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 変数の場合は、No.1の人が言うように配列を使います。 Me.○○ というのはフォーム上のコントロールのことですね。 フォーム上のコントロールは、 Me.Controls(コントロール名) という風に指定出来ます。 ループの変数iを付けるなら、 Me.Controls("氏名" & i) という感じになります。

toroon
質問者

お礼

いつも、わかりやすい説明をありがとうございますm(__)m コントロール、指定できました。 ありがとうございました。 これからもよろしくお願いします(^^ゞ

  • yoshisuke
  • ベストアンサー率65% (19/29)
回答No.1

こういった時、私は「配列」を良く使いますよ。 詳しくはHELPを見てみてください。

toroon
質問者

お礼

配列ですね。 1つ勉強になりました。 ありがとうございました。