Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3481 / 13644 ツリー ←次へ | 前へ→

【61937】TextBoxのまとめ 亜矢 09/6/13(土) 8:26 質問[未読]
【61939】Re:TextBoxのまとめ Hirofumi 09/6/13(土) 10:01 発言[未読]
【61940】Re:TextBoxのまとめ 亜矢 09/6/13(土) 11:19 質問[未読]
【61941】Re:TextBoxのまとめ かみちゃん 09/6/13(土) 11:24 発言[未読]
【61942】Re:TextBoxのまとめ 亜矢 09/6/13(土) 12:14 お礼[未読]

【61937】TextBoxのまとめ
質問  亜矢  - 09/6/13(土) 8:26 -

引用なし
パスワード
   よろしくお願いします
TextBoxがUserformに42個あります。
そこでTextBoxのイベントを1ヶずつ書いていますが、まとめて
書く方法について教えて頂きたいと思います。
PriVate Sub TextBox1_Exit(ByVal・・・・)

end sub

PriVate Sub TextBox2_Exit(ByVal・・・・)

end sub
と42ヶ書いていますが、これを1つにまとめる方法です。
この他のイベントにMouseDownとかDblclickも42ヶ書いています。
        

【61939】Re:TextBoxのまとめ
発言  Hirofumi  - 09/6/13(土) 10:01 -

引用なし
パスワード
   ▼亜矢 さん:
>よろしくお願いします
>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

というコードが一遍に書けます

【61940】Re:TextBoxのまとめ
質問  亜矢  - 09/6/13(土) 11:19 -

引用なし
パスワード
   ▼Hirofumi さん:
>▼亜矢 さん:
>>よろしくお願いします
>>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
>
>というコードが一遍に書けます
早速のご指導ありがとうございます。
Classで、「DblClick」、「MouseDown」で作る場合の方法を教えて
頂きたいと思います。Exitは42ヶ作ります。(現在は作ってあります)

【61941】Re:TextBoxのまとめ
発言  かみちゃん  - 09/6/13(土) 11:24 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>Classで、「DblClick」、「MouseDown」で作る場合の方法

「検索」で過去ログを探してみてはいかがでしょうか?
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=57237;id=excel

【61942】Re:TextBoxのまとめ
お礼  亜矢  - 09/6/13(土) 12:14 -

引用なし
パスワード
   ▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>>Classで、「DblClick」、「MouseDown」で作る場合の方法
>
>「検索」で過去ログを探してみてはいかがでしょうか?
>http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=57237;id=excel
有り難うございました。解決しました。
今後もよろしくお願いします。

3481 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free