| 
    
     |  | いつも参考にさせていただいてます。 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 New 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 = myTextBox(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)
 Dim temps As Object
 Set temps = Me.Txt(t_intIndex)
 Call Syori_FromTextBox(temps)
 End Sub
 ************************************************************
 標準モジュール
 Public Sub Syori_FromTextBox(objTextBox As MSForms.TextBox)
 objTextBox.Text = "OK"
 End Sub
 
 この流れの中で、実際にUserForm1上のTextBoxをクリックするとクラスモジュールで
 エラーになるのですが、回避方法が発見できません。
 エラー修正のアドバイス、方法のご教授をお願いできませんでしょうか。
 どうぞよろしくお願いします。
 
 |  |