Ansprechen für Laufzeit-Labels
14.08.2006 12:01:21
Jürgen
Mit dem folgenden Code wird eine Form um Steuerelemente ergänzt. Um die Form aus Excel herraus verwalten zu können, werden die entsprechenden Steuerelemente (Labels) bei öffnen der Form eingelesen. So weit bin ich anhand der hier sehr gut dokumentierten Beispiel bisher gekommen. Meine Frage bezieht sich nun auf das genaue Ansprechen der einzelnen, neu erstellten Labels. Bei einem Click auf Label 1 sollen ein anderer Code als bei einem Click auf Label 2 ausgeführt werden. Wie kann ich daher die erstellten Labels einzeln ansprechen.
Private WithEvents objLabel As MSForms.Label
Dim objLabelText As MSForms.Label
Dim Zähler As Integer
Dim Labelzähler As Integer
Private Sub UserForm_Activate()
Application.ScreenUpdating = False
Zähler = CInt(Worksheets("Optionen").Range("Terminkalender").Row) + 2
Labelzähler = 1
Do Until Worksheets("Optionen").Cells(Zähler, 3) = ""
Set objLabel = Me.Controls.Add("Forms.Label.1")
With objLabel
.Left = 12
.Top = 12 + Labelzähler * 18 + Labelzähler * 12
.Width = 36
.Height = 18
.Caption = Worksheets("Optionen").Cells(Zähler, 2).Text
.TextAlign = fmTextAlignCenter
.Font.Size = 10
.Font.Bold = True
.BackColor = Worksheets("Optionen").Cells(Zähler, 2).Interior.Color
End With
Set objLabelText = Me.Controls.Add("Forms.Label.1")
With objLabelText
.Left = 60
.Top = 12 + Labelzähler * 18 + Labelzähler * 12
.Width = 72
.Height = 18
.Caption = Worksheets("Optionen").Cells(Zähler, 3).Text
End With
Zähler = Zähler + 1
Labelzähler = Labelzähler + 1
Loop
Terminplaner.Height = 36 + Labelzähler * 18 + Labelzähler * 12
Application.ScreenUpdating = True
End Sub