|
以前の記事に下記のものがあり、クラスモジュールを使って試したところ、「指定したオブジェクトは見つかりません」というエラーが出て、UserForm1が表示されません。
クラスモジュールを使うのは初めてなと、本を見ても少しの説明しかのってないので、どこでミスしているのかよく分かりません。
ユーザーフォームモジュールはUserForm1に貼り付け、CheckBoxは3つつくっています。クラスモジュールはClass1に貼り付けました。
どなたか対策を教えて下さい。
--------------------------
【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
という感じです。
違ったらすいません。
|
|