@ChrisL:Eigenschaften von Userforms und Controls a
25.08.2006 10:04:53
Userforms
lange hat's gedauert, aber es hat funktioniert! Hier der Code:
Option Explicit
Sub Captions_aus_UserForms_auslesen()
' Namen und Caption aller Controls in allen Userforms auslesen und in
' einer Tabelle abspeichern
' 1. Excel-Datei "Extract_text.xls" mit Blatt "lbl" eröffnen
' 2. Excel-Datei mit Userforms einlesen
' 3. Dieses Module zu Excel-Datei mit Userforms kopieren (dürfte eleganter gehen ;-) )
' 4. Dieses Makro starten
' 5. Blatt "lbl" enthält in Kolonne 1 den UserForm-Name
' 2 den Name des Controls
' 3 die Caption
' Basierend auf Makro von Anton, modifiziert durch yogi
Dim i As Long, intCounter As Long
Dim entry As Long
Dim caption_is As String
Dim res As Worksheet
Dim name_is As String
Dim cmp_name As String
Set res = Workbooks("Extract_text.xls").Worksheets("lbl")
entry = 0
With Application.VBE.ActiveVBProject
For i = 1 To Application.VBE.ActiveVBProject.VBComponents.Count
' prüfen ob UserForm
If .VBComponents(i).Type = 3 Then
' UserForm, Namen der Userform speichern
entry = entry + 1
res.Cells(entry, 1) = .VBComponents(i).Name
cmp_name = .VBComponents(i).Name
' alle Elemente der UserForm prüfen
For intCounter = 0 To .VBComponents(cmp_name).Designer.Controls.Count - 1
' prüfen ob Caption-Eigenschaft vorhanden
On Error Resume Next
caption_is = ""
caption_is = .VBComponents(cmp_name).Designer.Controls(intCounter).Caption
If caption_is <> "" Then
' Caption-Eigenschaft vorhanden, Name und Caption auslesen und retten
entry = entry + 1
res.Cells(entry, 2) = .VBComponents(cmp_name).Designer.Controls(intCounter).Name
name_is = res.Cells(entry, 2)
res.Cells(entry, 3) = .VBComponents(cmp_name).Designer.Controls(name_is).Caption
Else
Err.Clear
End If
Next intCounter
End If
Next
End With
End Sub
Ursprung:
https://www.herber.de/forum/archiv/732to736/t733105.htm
Gruss yogi