プロが教えるわが家の防犯対策術!

EXCEL VBAのユーザーフォームについて質問があります。
ユーザーフォームを作り、その中にコンボボックスを1個、テキストボックスを100個設置する。
コンボボックスの値が1のときはテキストボックス1~テキストボックス50までのEnabledをFalseに設定し、
コンボボックスの値が2のときはテキストボックス1~テキストボックス100までのEnabled をFalseに設定する。
このとき、TextBox1.Enabled = False、TextBox2.Enabled = False・・・と一つ一つ書いていくのではなく、
セルを処理するときと同様に、テキストボックスの番号を変数にして処理することは可能でしょうか。

Private Sub ComboBox1_Change()
 Dim i As Integer
  If ComboBox1.Value = 1 Then
  For i = 1 To 50
  TextBox(i).Enabled = False
  Next i
  ElseIf ComboBox1.Value = 2 Then
  For i = 1 To 100
  TextBox(i).Enabled = False
  Next i
  End If
End Sub

というような処理をイメージしているのですが、うまくいきません。どうぞよろしくお願いいたします。

A 回答 (1件)

UserForm1.Controls("TextBox" & i).Enabled = False



かな?
    • good
    • 0
この回答へのお礼

ありがとうございます!できました。
またよろしくお願いいたします。

お礼日時:2009/04/14 22:00

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