解決済みの質問
エクセル 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
こんな感じでチェックしてみたらいかがでしょうか。
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
1人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(1件中 1~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