| 
    
     |  | こんばんは〜 ちょっとやってみました。
 ・・・やってみたら出来た・・という程度なんで、
 マズイところはないか?・・・ichinoseさんチェックお願いします^^;
 
 >>ChecBox1〜3を列C,B,Dに対応させて、
 >>チェックされたら列を非表示にする
 >>チェックがとれたら列を表示する
 >>を今までのクラスモジュールを利用して記述するとどうなるのですか。
 >>
 >>Private Sub Chk_Click()
 >>  If Chk Then
 >>    Txt.Value = 1
 >>  Else
 >>    Txt.Value = ""
 >>  End If
 >>End Sub
 >>
 >>のところを変えればよいのは分かるのですが、
 >>CheckBoxの番号と列との関係づけが難しいです。
 
 '==クラスモジュール=======================================
 Private WithEvents Chk As MSForms.CheckBox
 Private ColNum As Long
 
 Sub propertysSet(ByVal ChkT As MSForms.CheckBox, ByVal ColN As Long)
 Set Chk = ChkT
 ColNum = ColN
 End Sub
 
 Private Sub Chk_Click()
 If Chk Then
 Worksheets("Sheet1").Columns(ColNum).Hidden = True
 Else
 Worksheets("Sheet1").Columns(ColNum).Hidden = False
 End If
 End Sub
 
 '==フォームモジュール=======================================
 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), i + 1)
 ColCls.Add ClsT
 Set ClsT = Nothing
 Next i
 End Sub
 
 Private Sub UserForm_Terminate()
 Set ColCls = Nothing
 End Sub
 
 お試しください・・・
 
 |  |