Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


63920 / 76738 ←次へ | 前へ→

【17407】Re:以前の記事から
回答  つん E-MAIL  - 04/8/28(土) 22:04 -

引用なし
パスワード
   こんばんは〜
ちょっとやってみました。
・・・やってみたら出来た・・という程度なんで、
マズイところはないか?・・・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

お試しください・・・

0 hits

【17389】以前の記事から Kobasan 04/8/28(土) 8:39 質問
【17390】Re:以前の記事から ichinose 04/8/28(土) 9:03 発言
【17392】Re:以前の記事から Kobasan 04/8/28(土) 9:38 お礼
【17405】Re:以前の記事から Kobasan 04/8/28(土) 21:41 お礼
【17406】Re:以前の記事から Kobasan 04/8/28(土) 21:46 質問
【17407】Re:以前の記事から つん 04/8/28(土) 22:04 回答
【17410】Re:以前の記事から ichinose 04/8/28(土) 22:25 発言
【17409】Re:以前の記事から ichinose 04/8/28(土) 22:14 発言
【17414】Re:以前の記事から Kobasan 04/8/28(土) 23:41 お礼
【17393】Re:以前の記事から 角田 04/8/28(土) 9:55 発言
【17400】Re:以前の記事から Kobasan 04/8/28(土) 13:48 お礼

63920 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free