|
▼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
確認してみて下さい。
|
|