|
こんばんは〜
ちょっとやってみました。
・・・やってみたら出来た・・という程度なんで、
マズイところはないか?・・・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
お試しください・・・
|
|