Excel VBA質問箱 IV

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

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


29151 / 76732 ←次へ | 前へ→

【52867】Re:クラスによるコントロールの配列処理
発言  ichinose  - 07/12/7(金) 11:34 -

引用なし
パスワード
   ▼ハナ さん:
こんにちは。
現状の記述は、非常にわかりやすくて、すぐ再現できました。
お手本ですね!!

さて、
>いつも参考にさせていただいてます。
>UserForm上に配置したTextBoxを配列として扱う処理を
>MOUGの「スキルアップ講座」を参考にして、以下のように作成しました
>動作および内容は
>UserForm1上のTextBoxをダブルクリックするとそのTextBoxに文字”OK”が入る
>というイメージです。
> 
>標準モジュール
>Sub test()
>UserForm1.Show
>End Sub
>
>で、UserForm1を表示。
>
>UserForm1
>*TextBox1〜3を配置
>コレクション インスタンス生成
>
>Option Explicit
>Option Base 1
Dim myClass1(3) As Class1
>Private Sub UserForm_Initialize()
'>   Dim myTextBox As New Collection
>   Dim i As Integer
'>   With myTextBox
'>      .Add Item:=TextBox1
'>      .Add Item:=TextBox2
'>      .Add Item:=TextBox3
'>   End With
'このコレクション殆ど要りません
>   For i = 1 To 3
>      Set myClass1(i) = New Class1
>      With myClass1(i)
         .Txt = Controls("textbox" & i)
>         .Index = i
>      End With
>   Next
>End Sub
>
>クラスモジュール「Class1」でTextBoxダブルクリック時の
>メソッド記述(イベントプロシジャー)
>標準モジュールに記述の *** Syori_FromTextBox をCall ***
>
>Option Explicit
>
>Private WithEvents myTxt As MSForms.TextBox
>Private t_intIndex As Integer
>
>Public Property Get Cmd() As MSForms.TextBox
>   Set Txt = myTxt
>End Property
>
>Public Property Let Txt(ByVal txtNewValue As MSForms.TextBox)
>   Set myTxt = txtNewValue
>End Property
>
>Public Property Get Index() As Integer
>   Index = t_intIndex
>End Property
>
>Public Property Let Index(ByVal intNewValue As Integer)
>   t_intIndex = intNewValue
>End Property
>
>
>Private Sub myTxt_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  myTxt.Text = "ok"
'ここで「OK」の設定を行う
>End Sub

'以下の標準モジュールは要りません

>************************************************************
>標準モジュール
>Public Sub Syori_FromTextBox(objTextBox As MSForms.TextBox)
>  objTextBox.Text = "OK"
>End Sub


として試してください。
このコードは、本来はまだ問題点があります(モジュール間の結合度が強すぎる)
が、クラスモジュールを理解する
段階なら、上記でよいです。
0 hits

【52863】クラスによるコントロールの配列処理 ハナ 07/12/7(金) 9:33 質問
【52867】Re:クラスによるコントロールの配列処理 ichinose 07/12/7(金) 11:34 発言
【52870】Re:クラスによるコントロールの配列処理 ハナ 07/12/7(金) 12:00 発言
【52871】Re:クラスによるコントロールの配列処理 ハナ 07/12/7(金) 12:34 お礼
【52888】Re:クラスによるコントロールの配列処理 ichinose 07/12/7(金) 22:36 発言

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