Excel VBA質問箱 IV

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

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


63931 / 76732 ←次へ | 前へ→

【17389】以前の記事から
質問  Kobasan  - 04/8/28(土) 8:39 -

引用なし
パスワード
    以前の記事に下記のものがあり、クラスモジュールを使って試したところ、「指定したオブジェクトは見つかりません」というエラーが出て、UserForm1が表示されません。
 クラスモジュールを使うのは初めてなと、本を見ても少しの説明しかのってないので、どこでミスしているのかよく分かりません。
 ユーザーフォームモジュールはUserForm1に貼り付け、CheckBoxは3つつくっています。クラスモジュールはClass1に貼り付けました。
どなたか対策を教えて下さい。
--------------------------
【10411】Re:イベントの処理をまとめて記述
複数個の
 Private Sub CheckBox1_Click()
 ・・・
 End Sub

 Private Sub CheckBox2_Click()
 ・・・
 End Sub
 ・・・
を1つにする方法?

【10412】Re:イベントの処理をまとめて記述 
クラスモジュールを使えばできそうですけど試してみますか?

★ユーザーフォームモジュール
Option Explicit
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), Me("TextBox" & i))
    ColCls.Add ClsT
    Set ClsT = Nothing
  Next i
End Sub

Private Sub UserForm_Terminate()
  Set ColCls = Nothing
End Sub

★クラスモジュール(Class1)
Option Explicit
Private WithEvents Chk As MSForms.CheckBox
Private Txt      As MSForms.TextBox

Sub propertysSet(ByVal ChkT As MSForms.CheckBox, ByVal TxtT As MSForms.TextBox)
  Set Chk = ChkT
  Set Txt = TxtT
End Sub

Private Sub Chk_Click()
  If Chk Then
    Txt.Value = 1
  Else
    Txt.Value = ""
  End If
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 お礼

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