|
▼亜矢 さん:
>よろしくお願いします
>TextBoxがUserformに42個あります。
>そこでTextBoxのイベントを1ヶずつ書いていますが、まとめて
>書く方法について教えて頂きたいと思います。
>PriVate Sub TextBox1_Exit(ByVal・・・・)
>
>end sub
>
>PriVate Sub TextBox2_Exit(ByVal・・・・)
>
>end sub
>と42ヶ書いていますが、これを1つにまとめる方法です。
>この他のイベントにMouseDownとかDblclickも42ヶ書いています。
>
Class作っても、「DblClick」、「MouseDown」のイベントは取れるけど
「Exit」のイベントは取れないから、ヤッパリ42個分書いた方が無難かな?
ただ、纏める方法では有りませんが、42個VBEで書くより早い方法としてこんなのは?
例えば、以下の様なコードが有ります
Option Explicit
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not DataCheck(TextBox1) Then
Cancel = True
End If
End Sub
Private Function DataCheck(txtBox As MSForms.TextBox) As Boolean
If Val(txtBox.Text) <> 0 Then
DataCheck = True
End If
End Function
この「Sub TextBox1_Exit」を42個分そろえるなら
先ず
↓ここから
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not DataCheck(TextBox1) Then
Cancel = True
End If
End Sub
↑ここまでをワークシートにCopyします
次に、ワークシートでCopyされた行が選択状態に成っている右下のフィルハンドルを
下にドラッグします
そうすれば
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not DataCheck(TextBox1) Then
Cancel = True
End If
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not DataCheck(TextBox2) Then
Cancel = True
End If
End Sub
Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not DataCheck(TextBox3) Then
Cancel = True
End If
End Sub
というコードが一遍に書けます
|
|