Schleife Benutzerform Steuerelemente sogar in einer anderen Arbeitsmappe ist nicht trivial. Eine mögliche Lösung erfordert VBE-Referenz zu MS Visual Basic für Applikationen-Erweiterbarkeit 5.3.
finde ich nicht ein komplettes Beispiel überall, so dass die folgenden Arbeits Code helfen könnten:
Sub ListAllControls()
Dim vbc As VBIDE.VBComponent ' Reference to MS VBA Exte 5.3 !!!
Dim ctrl As MSForms.Control
Dim sMsg, sLit As String
Dim cnr, vbcnr As Long
Dim i, imax As Integer
imax = Workbooks.Count
'------------------
'Loop all Workbooks
'------------------
For i = 1 To imax
sLit = Chr(i + 64) & "."
' a) build message new workbook
sMsg = sMsg & vbNewLine & String(25, "=") & vbNewLine & sLit & " WorkBook: " & _
Workbooks(i).Name & _
vbNewLine & String(25, "=")
'-------------------
'Loop all Components
'-------------------
For Each vbc In Workbooks(i).VBProject.VBComponents
' Only if Component type is UserForm
If vbc.Type = vbext_ct_MSForm Then
' increment component and ctrl counters
vbcnr = vbcnr + 1000
cnr = vbcnr
' b) build message new component
sMsg = sMsg & vbNewLine & String(25, "-") & vbNewLine & sLit & cnr & " '" & _
vbc.Name & "'" & vbNewLine & String(25, "-")
'------------------
' Loop all Controls
'------------------
For Each ctrl In Workbooks(i).VBProject.VBComponents(vbc.Name).Designer.Controls
' increment ctrl counter
cnr = cnr + 1
' c) build messages controls)
sMsg = sMsg & vbLf & " " & Format(cnr, "0 000") & " " & _
ctrl.Name
Next
End If
Next vbc
Next i
Debug.Print sMsg
End Sub
Haben Sie Spaß,
Tony
Was sind Sie eigentlich zu den Kontrollen zu tun versuchen, ? – Rory
Hallo Rory, ich habe versucht, die Benutzerformulare zu einem Listenfeld hinzuzufügen, wenn Sie darauf klicken, listet alle Objekte in diesem UF in der sekundären Listbox auf. Ich sollte die folgenden Links verwenden können, um es herauszufinden. Vielen Dank! – ExcelVbaIsFun