• ベストアンサー

オブジェクトを変数名で使用したいのですが

初めまして。 AccessのVBAを使用しているのですが、 コマンドボタンを10個用意して、 名前をそれぞれ1~10にしたのですが、 それらを繰り返し処理をしたいのですが、どうしたらいいですか? 例えば、 for i = 1 To 10 i.enabled = True Next i という風にしたかったのですが、 できないんです。 助けてください。

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

  • ベストアンサー
回答No.1

Access の VBA の事を何も知らないので、外しているかも知れません。 VBでは、コントロール配列にすると簡単できますが。 コマンドボタンの名前は全部 Command1 となります。 ひとつひとつは、Command1(1),Command1(2)・・・・Command1(10) となります。 for i=1 to 10 Command1(i).Enabled=true next i VBA にコントロール配列と言う考え方がなかったら、ごめんなさい。

michacha
質問者

お礼

できました!! ありがとうございました! for i = to 27 if me.control(i).name=i then 処理  end if で、オブジェクトの名前と一致したら・・・ということができました! 有難うございました!

その他の回答 (3)

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.4

For i = 1 to 10  Me.Controls(CStr(i)).Enabled=True Next i ですね。 「ボタン1」~「ボタン10」ってな名前が付いている場合は、 For i = 1 to 10  Me.Controls("ボタン" & i).Enabled=True Next i になります。 尚、Accessにはコントロール配列はありません。

  • Yackn
  • ベストアンサー率42% (12/28)
回答No.3

フォームのオブジェクトを列挙してその名前によって買えてあげればいいと思います。(コントロール配列がないので) 適当にボタンを貼り付けてから、cmdEnableという名前のボタンを作成してコードビルダに下記のコードを貼り付けてください。 アクセス97で確認しましたが動くようです。 Private Sub cmdEnable_Click() Dim com As Control For Each com In Me If com.Name Like "コマンド*" Then com.Enabled = False End If Next End Sub

回答No.2

> オブジェクトを変数名で使用したいのですが タイトルを見落していました。 外しました(^。^;)、すみません。

関連するQ&A