プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になっております
下記のコードは

リストボックスが3つありまして、
すべて選択しましたら、コマンドボタンをクリック
できるというものです。
某様から頂戴致しました。
ここで、TextBoxが2つ追加で
TextBoxが空白でなければコマンドボタンをクリック
できるようにしたいのですが、

Private Sub chListBox()
Dim con As Control
Dim lb_count As Integer
Dim te As Control

lb_count = 0

For Each con In Me.Controls
If TypeName(con) = "ListBox" Then
If con.ListIndex > -1 Then lb_count = lb_count + 1
End If
Next

If lb_count = 3 Then ' ListBox が3個なので 3
CommandButton1.Enabled = True
Else
CommandButton1.Enabled = False
End If

Private Sub ListBox1_Click()
Call chListBox
End Sub

Private Sub ListBox2_Click()
Call chListBox
End Sub

Private Sub ListBox3_Click()
Call chListBox
End Sub
--------------------------------------追加
TextBox1_Change
call teb
TextBox1_Change
call teb
とついかして、


Private Sub chListBox()
Dim con As Control
Dim teb as Control '------------------textbox追加

Dim lb_count As Integer


lb_count = 0

'-------ここの部分からどうしたらよいのかおしえてくれませんでしょうか
For Each con In Me.Controls    

If TypeName(con) = "ListBox" Then
If con.ListIndex > -1 Then lb_count = lb_count + 1
End If
Next

If lb_count = 3 Then ' ListBox が3個なので 3
CommandButton1.Enabled = True
Else
CommandButton1.Enabled = False
End If

質問者からの補足コメント

  • うーん・・・

    付け加えぶぶんですが、
    間違っているところおしえてくれませんでしょうか

    If TypeName(con) = "ListBox" And TypeName(te) = "TextBox" Then

    If con.ListIndex > -1 And te.ListIndex <> "" Then lb_count = lb_count + 1

    Private Sub TextBox1_Change()
    Call te
    End Sub

      補足日時:2020/08/12 17:21

A 回答 (1件)

Call chListBox


call teb

チェックで呼び出すのは1つのサブプロシージャーで構わないでしょ。

Private Sub chLB_TB()
Dim con As Control

Dim ch_count As Integer

ch_count = 0

For Each con In Me.Controls    

If TypeName(con) = "ListBox" Then
If con.ListIndex > -1 Then ch_count = ch_count + 1
End If

If TypeName(con) = "TextBox" Then
If con.Text <> "" Then ch_count = ch_count + 1
End If

Next

If ch_count = 5 Then ' ListBox が3個+TextBoxが2個なので 5
CommandButton1.Enabled = True
Else
CommandButton1.Enabled = False
End If

End Sub



Call chLB_TB

とか。
    • good
    • 0
この回答へのお礼

いつも本当に助かります。
思いどおりです。
ありがとうございました。

お礼日時:2020/08/12 19:12

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