| 
    
     |  | ▼Kobasan さん: こんばんは。
 >ChecBox1〜3を列C,B,Dに対応させて、
 >>チェックされたら列を非表示にする
 >>チェックがとれたら列を表示する
 >>を今までのクラスモジュールを利用して記述するとどうなるのですか。
 >CheckBoxの番号と列との関係づけが難しいです。
 
 クラスモジュールに↑の情報も登録しておかないとわかりませんよね?
 私は、この手の処理ではコレクションは使用しないので
 とりあえず、私流の方法で・・・。
 以下に記述するコードは、
 userform1に
 Checkbox1、Checkbox2、Checkbox3の3つのコントロールを貼り付けて下さい。
 
 Userform1のモジュールに
 '==============================================================
 Private mycls(1 To 3) As Class1
 '==============================================================
 Private Sub UserForm_Initialize()
 For idx = 1 To 3
 Set mycls(idx) = New Class1
 With mycls(idx)
 .id = idx
 Set .chk = Controls("checkbox" & idx)
 End With
 Next idx
 End Sub
 'ご提示されたコレクションでも同じ処理はできますから
 '考えてみて下さい
 
 'クラスモジュール(Class1)では
 '================================================================
 Public WithEvents chk As MSForms.CheckBox
 Public id As Long
 '================================================================
 Private Sub chk_Click()
 Columns(Array("b", "c", "d")(id - 1)).Hidden = chk.Value
 'チェックボックスと列との対応が記述どおり"c","b","d"ならArrayの中の順序を
 '変更してください
 End Sub
 
 
 確認してみて下さい。
 
 
 |  |