| 
    
     |  | ponponさん、こんばんは。 
 角田さんのホームページ「擬似の脱却」
 http://www.h3.dion.ne.jp/~sakatsu/Breakthrough_P-Ctrl_Arrays.htm
 で勉強し、
 Ichinoseさんのコード【18245】を参考にして、勉強用に自分なりに分かりやすくつくりました。
 また、この質問箱でTextBoxの扱いもIchinoseさんに質問して教えてもらいました。
 少しクラスモジュールが使えるようになった程度ですから、不十分かもしれません。
 分かりやすければ参考にして下さい。
 必要に応じて、標準モジュールとUserform1のモジュールのLabelの数、TextBoxの数
 を変えて下さい。
 
 '■■標準モジュール
 Public copydata As Variant '<==標準モジュールに記述すると機能する
 
 Sub test()
 UserForm1.Show
 End Sub
 
 Sub ResetColor()
 Dim i As Long
 For i = 1 To 30 '<==Labelの数30
 UserForm1.Controls("Label" & i).ForeColor = &H0  '色復元
 Next i
 End Sub
 
 '■■Userform1のモジュール
 Private FrmLabel(1 To 30) As New Class1   '<==Labelの数30
 Private FrmTextBox(1 To 42) As New Class2  '<==TextBoxの数42
 
 Private Sub UserForm_Initialize()
 Dim i As Long
 For i = 1 To 30   '<==Labelの数30
 With FrmLabel(i)
 .Item = Me.Controls("Label" & i)
 End With
 Next i
 '
 For i = 1 To 42   '<==TextBoxの数42
 With FrmTextBox(i)
 .Item2 = Me.Controls("TextBox" & i)
 End With
 Next i
 End Sub
 
 Private Sub UserFom_Terminate()
 Erase FrmLabel
 Erase FrmTextBox
 End Sub
 
 '■■Class1 のモジュール
 Private WithEvents MyCtrl As MSForms.Label
 
 Public Property Let Item(NewCtrl As MSForms.Label)
 Set MyCtrl = NewCtrl
 End Property
 
 Private Sub MyCtrl_Click()
 ResetColor
 MyCtrl.ForeColor = &HFF   '赤色
 copydata = MyCtrl.Caption
 End Sub
 
 '■■Class2 のモジュール
 Private WithEvents MyCtrl2 As MSForms.TextBox
 
 Public Property Let Item2(NewCtrl As MSForms.TextBox)
 Set MyCtrl2 = NewCtrl
 End Property
 
 Private Sub MyCtrl2_MouseDown(ByVal Button As Integer, _
 ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
 MyCtrl2.Text = copydata
 End Sub
 
 
 |  |