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

という風にしたかったのですが、
できないんです。
助けてください。

A 回答 (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にはコントロール配列はありません。
    • good
    • 0

フォームのオブジェクトを列挙してその名前によって買えてあげればいいと思います。

(コントロール配列がないので)
適当にボタンを貼り付けてから、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
    • good
    • 0

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


タイトルを見落していました。

外しました(^。^;)、すみません。
    • good
    • 0

Access の VBA の事を何も知らないので、外しているかも知れません。


VBでは、コントロール配列にすると簡単できますが。
コマンドボタンの名前は全部 Command1 となります。
ひとつひとつは、Command1(1),Command1(2)・・・・Command1(10) となります。


for i=1 to 10
Command1(i).Enabled=true
next i

VBA にコントロール配列と言う考え方がなかったら、ごめんなさい。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/12/08 20:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ