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

エクセル VBAで
コマンドボタンをクリックすると
テキストボックスに空白があった場合
空白のテキストボックスにセットフォーカスしたいのですが
下記のように少ない場合は まだいいですが
多くなってきたとき見易さの面でも簡単にしたいのですが
VBだとコントロール配列のインデックス値をループ処理
すればよいと思いますがVBAだとどのようにすればいいのでしょうか?

Private Sub CommandButton3_Click()
If TextBox2 = "" Then
TextBox2.SetFocus
ElseIf TextBox3 = "" Then
TextBo3.SetFocus
ElseIf TextBox4 = "" Then
TextBox4.SetFocus
ElseIf TextBox5 = "" Then
TextBox5.SetFocus
End If
御願いします。

A 回答 (2件)

    • good
    • 0
この回答へのお礼

この参考は 始めて見ました。
有難うございます。

お礼日時:2007/04/02 14:21

こんな感じでチェックしてみたらいかがでしょうか。



Private Sub CommandButton1_Click()
 Dim i As Integer
 For i = 1 To 5
  If Controls("TextBox" & i).Text = "" Then
   Controls("TextBox" & i).SetFocus
   Exit For
  End If
 Next
End Sub

また、以下の方法ではテキストボックスが増えてもコードを修正する必要はありません。

Private Sub CommandButton2_Click()
 Dim T As Control
 For Each T In Controls
  If TypeName(T) = "TextBox" Then
   If T.Text = "" Then
    T.SetFocus
    Exit For
   End If
  End If
 Next
End Sub
    • good
    • 0
この回答へのお礼

いつも やりたいこと&次のことを考えええた
回答有難うございます。
解決しました。

お礼日時:2007/04/02 14:20

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