| 
    
     |  | ▼Kobasan さん: おはようございます。
 
 > 以前の記事に下記のものがあり、クラスモジュールを使って試したところ、「指定したオブジェクトは見つかりません」というエラーが出て、UserForm1が表示されません。
 > クラスモジュールを使うのは初めてなと、本を見ても少しの説明しかのってないので、どこでミスしているのかよく分かりません。
 > ユーザーフォームモジュールはUserForm1に貼り付け、CheckBoxは3つつくっています。クラスモジュールはClass1に貼り付けました。
 >どなたか対策を教えて下さい。
 以下のコードをそのままコピーして確認しましたが、
 正常に動いていますよ(確認したのはExcel2000で)。
 
 このコードは、Userform1にあるコントロールが
 
 Checkbox1、Checkbox2、Checkbox3(これがチェックボックスコントロール)
 Textbox1、Textbox2、Textbox3(これがテキストボックスコントロール)
 
 
 というオブジェクト名でなければなりませんが、
 これは正しく貼り付けられていますか?
 何となくですが、テキストボックスがUserform1に貼り付けてないのでは?
 
 
 >--------------------------
 > 【10411】Re:イベントの処理をまとめて記述
 >複数個の
 > Private Sub CheckBox1_Click()
 > ・・・
 > End Sub
 >
 > Private Sub CheckBox2_Click()
 > ・・・
 > End Sub
 > ・・・
 >を1つにする方法?
 >
 > 【10412】Re:イベントの処理をまとめて記述
 >クラスモジュールを使えばできそうですけど試してみますか?
 >
 >★ユーザーフォームモジュール
 >Option Explicit
 >Dim ColCls As Collection
 >Private Sub UserForm_Initialize()
 >  Dim ClsT As Class1
 >  Dim i  As Long
 >
 >  Set ColCls = New Collection
 >  For i = 1 To 3
 >    Set ClsT = New Class1
 >    Call ClsT.propertysSet(Me("CheckBox" & i), Me("TextBox" & i))
 >    ColCls.Add ClsT
 >    Set ClsT = Nothing
 >  Next i
 >End Sub
 >
 >Private Sub UserForm_Terminate()
 >  Set ColCls = Nothing
 >End Sub
 >
 >★クラスモジュール(Class1)
 >Option Explicit
 >Private WithEvents Chk As MSForms.CheckBox
 >Private Txt      As MSForms.TextBox
 >
 >Sub propertysSet(ByVal ChkT As MSForms.CheckBox, ByVal TxtT As MSForms.TextBox)
 >  Set Chk = ChkT
 >  Set Txt = TxtT
 >End Sub
 >
 >Private Sub Chk_Click()
 >  If Chk Then
 >    Txt.Value = 1
 >  Else
 >    Txt.Value = ""
 >  End If
 >End Sub
 >
 >という感じです。
 >違ったらすいません。
 
 
 |  |