Hi,
vielen Dank für Deine Antwort! Der springende Punkt ist das dynamische Zugreifen auf die erzeugten Objekte.
So wie in der Hilfe beschrieben habe ich das schon gemacht. Auch als Feld. Folgender Code erzeugt mehrere Listboxen.
Dim Listboxen(5) As Control
Private Sub CommandButton1_Click()
For i = 1 To 5
Set Listboxen(i) = Controls.Add(„Forms.ListBox.1“, „ListBox“ + Mid(Str(i), 2, 1), Visible)
Listboxen(i).Left = 18
Listboxen(i).Top = 150 + i * 10
Listboxen(i).Width = 175
Listboxen(i).Height = 20
Next i
End Sub
Das Problem ist jetzt erstens überhaupt auf die erzeugten Listboxen zuzugreifen und das nächste Problem ist es, das
auch noch dynamisch, also ohne fest vorgegebenen Namen zu machen.
Zum generellen Zugriff steht in der VBA Hilfe :
Sie können der Controls-Auflistung eines Benutzerformulars zur Entwurfszeit ein Steuerelement hinzufügen. Allerdings müssen Sie hierzu die Designer-Eigenschaft der Microsoft Visual Basic for Applications Extensibility Library verwenden. Die Designer-Eigenschaft gibt das UserForm-Objekt zurück.
Die folgende Syntax gibt die Text-Eigenschaft des angegebenen Steuerelements zurück:
userform1.thebox.text
Bei einem zur Laufzeit hinzugefügten Steuerelement müssen Sie, um auf die Eigenschaften dieses Steuerelements zu verweisen, die Syntax mit Ausrufezeichen verwenden. Zur Rückgabe der Text-Eigenschaft eines Steuerelements verwenden Sie beispielsweise die folgende Syntax:
userform1!thebox.text
Das funktioniert ohne Ausrufezeichen auch mit statisch erzeugten Controls. Aber die Variante mit Ausrufezeichen geht bei mir nicht.
Was ist denn diese Microsoft Visual Basic for Applications Extensibility Library ? Muss ich die installieren, damit es klappt?
Dann bliebe ja auch noch der dynamische Zugriff……