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

解決済みの質問

テキストボックス 空白確認

エクセル 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
御願いします。

投稿日時 - 2007-03-31 22:32:14

QNo.2883453

困ってます

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

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

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

投稿日時 - 2007-03-31 23:02:46

お礼

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

投稿日時 - 2007-04-02 14:20:20

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

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

回答(2)

ANo.1

Controls コレクション
http://www.h3.dion.ne.jp/~sakatsu/Breakthrough_P-Ctrl_Arrays.htm

投稿日時 - 2007-03-31 22:41:14

お礼

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

投稿日時 - 2007-04-02 14:21:21

あなたにオススメの質問