Klassenprogrammierung
22.10.2017 14:57:21
Siegfried
ich habe TextBoxen beim Aufruf einer UserForm in einer Klasse zusammengefasst:
Option Explicit
Dim txtb As Control
Private Sub UserForm_Initialize()
Dim Zähler As Integer
' fasst bestimmte Steuerelemente in einer Klasse (cls_TextBox) zusammen
Zähler = 0
With Frame2
For Each txtb In Frame2.Controls
Zähler = Zähler + 1
ReDim Preserve TextBox(1 To Zähler)
If txtb.Tag = "" Then
Else
Set TextBox(Zähler).TextBox = txtb
End If
Next txtb
End With
End Sub
so weit so gut.Weiter habe ich in einem allgemeinen Modul die Klasse definiert:
mdl_Klassen
Option Explicit
Public TextBox() As New cls_TextBox
In dem Klassenmodul
cls_TextBox
Option Explicit
Public WithEvents TextBox As MSForms.TextBox
möchte ich mit der folgenden Anweisung eine Aktion starten:
Private Sub TextBox_Change()
Dim n1 As Integer
Dim txtb As Control
Dim BoxNr As Integer
Dim objTextBox As Object
BoxNr = Right(TextBox.Name, Len(TextBox.Name) - 7)
Set objTextBox = Frame2.Controls("TextBox" & BoxNr)
Debug.Print BoxNr, objTextBox, TextBox.Name
End Sub
Die Anweisung führt aber zu nichts.Was muss ich ändern, damit die Print-Anweisung ausgeführt wird?
Gruß
Siegfried