こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCEL VBA ユーザーフォーム内のテキストボックスを一括処理する方法について

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

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

投稿日時 - 2009-04-14 21:33:21

QNo.4879649

困ってます

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

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

かな?

投稿日時 - 2009-04-14 21:39:25

お礼

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

投稿日時 - 2009-04-14 22:00:07

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問