Eigenschaften der Form Controls

Moderator: ModerationP

Eigenschaften der Form Controls

Beitragvon Proma » 08. Aug 2017, 19:50

Hallo liebe Experten,

ich bin auf der Suche nach einer möglichst übersichtlichen Zusammenstellung oder Auflistung aller gängigen Methoden/Eigenschaften der in Excel 2010 verfügbaren Formularsteuerelemente (also NICHT der ActiveX-Steuerelemente).

Nachdem ich mir schon die Finger wund gesucht und trotzdem nix gefunden habe, seid Ihr heute meine letzte Hoffnung. Auch in der Excel-Hilfe konnte ich so eine Auflistung nicht finden (vielleicht bin ich ja auch nur zu blöd dazu...)

Bin für jeden Tipp dankbar!

Schönen Abend und liebe Grüße
vom Martin
Zuletzt geändert von shift-del am 08. Aug 2017, 19:59, insgesamt 1-mal geändert.
Grund: Thema nach Excel verschoben
Proma
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 200
Registriert: 08. Sep 2015, 11:43

Re: Eigenschaften der Form Controls

Beitragvon Storax » 08. Aug 2017, 20:52

This isn't a code writing service, you need to do some research and have a go at writing some of your own code.
Be careful, content may contain traces of irony.
Benutzeravatar
Storax
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 2308
Registriert: 22. Okt 2013, 18:18

Re: Eigenschaften der Form Controls

Beitragvon ro_sch_DerGast » 08. Aug 2017, 21:16

Hi,

für die unter uns, die es bisher nicht gelernt haben ... und vielleicht auch nicht mehr lernen ... es gibt den Makro-Rekorder !!!

Makro-Rekorder starten -> Entwicklertools -> Einfügen -> Formularsteuerelemente -> irgendeines einfügen -> Eigenschaften (gleich rechts oberhalb) -> alles in den Reiter durchklicken und ändern -> Makro-Rekorder stoppen

Makro anschauen und fertig.

Dass man das noch schreiben muss ...

Gruß Roland
ro_sch_DerGast
 

Re: Eigenschaften der Form Controls

Beitragvon DerHoepp » 09. Aug 2017, 11:55

Hallo auch von mir,

im Anhang eine vollständige Liste der Objekte (ohne Textbox, ComboBox und DropDown, die scheinen bei mir nicht zu funktionieren), Ihrer Member (Functions, Properties, Constants), der Rückgabetypen sowie der Parameter inklusive Typ. Tatsächlich scheint der Excel-Objektkatalog die FormControls nicht zu listen.
Erstellt habe ich das Ganze mit der Hilfe der TypeLib Information-Klasse (kann in den Referenzen ausgewählt werden). Drauf gestoßen bin ich bei stackoverflow.

Ich musste nur noch die Bezeichnung der Enumerationen TLI.InvokeKinds und TLI.tliVarType aus einer Tabelle ziehen, damit dort nicht nur (nichtssagende) numerische Werte stehen. Die Klarnamen der Enumerationskonstanten hatte ich in Tabelle6 in den Spalten 15 und 19 stehen.
Das Auslesen der Objektinformationen musste ich dann nur noch über eine Schleife für alle Formularsteuerelement-Objekte anstoßen. Diese hatte ich jeweils ebenfalls auf Tabelle6 eingefügt.

Grundsätzlich sollte TLI für alle Objekte funktionieren.

Code: Alles auswählen
Sub ListAllProps()
    Dim shp As Object
    Dim filestr As Object
       
    Set filestr = CreateObject("Scripting.filesystemobject").Createtextfile("C:\Daten\TypeInfoFormControls.txt")
    For Each shp In Tabelle6.Shapes
        filestr.writeline TypeName(shp.DrawingObject)
        DumpProperties shp.DrawingObject, filestr
    Next shp
    filestr.Close
End Sub

Sub DumpProperties(ByVal o As Object, filestream As Object)
'extended from:
    'https://stackoverflow.com/questions/19783180/get-list-of-all-properties-for-an-object

    Dim typenme As String
    Dim t As TLI.TLIApplication
    Dim ti As TLI.TypeInfo
    Dim mi As TLI.MemberInfo, i As Long
    Dim parm As TLI.ParameterInfo
    Set t = New TLI.TLIApplication
    Set ti = t.InterfaceInfoFromObject(o)

    For Each mi In ti.Members
        On Error Resume Next
            typenme = Tabelle6.Cells(mi.ReturnType.VarType + 1, 15)
            typenme = mi.ReturnType.TypeInfo.Name
        On Error GoTo 0
       
        filestream.writeline vbTab & Tabelle6.Cells(mi.InvokeKind + 1, 19) & " " & mi.Name & " As " & typenme
   
        For Each parm In mi.Parameters
            On Error Resume Next
                typenme = Tabelle6.Cells(mi.ReturnType.VarType + 1, 15)
                typenme = parm.VarTypeInfo.TypeInfo.Name
            On Error GoTo 0
            filestream.writeline vbTab & vbTab & parm.Name & " As " & typenme
        Next parm
    Next
End Sub


Viele Grüße
derHöpp

[Nachtrag:] Hier noch im Latebinding:
Code: Alles auswählen
Sub DumpProperties(ByVal o As Object, filestream As Object)
'extended from:
    'https://stackoverflow.com/questions/19783180/get-list-of-all-properties-for-an-object
    Dim parm As Object
    Dim typenme As String
    Dim typeLibApp As Object
    Dim ti As Object
    Dim mi As Object
   
    Set typeLibApp = CreateObject("TLI.TLIApplication") 'New TLI.TLIApplication
    Set ti = typeLibApp.InterfaceInfoFromObject(o)
   
   
    For Each mi In ti.Members
        On Error Resume Next
            typenme = Tabelle6.Cells(mi.ReturnType.VarType + 1, 15)
            typenme = mi.ReturnType.TypeInfo.Name
        On Error GoTo 0
       
        filestream.writeline vbTab & Tabelle6.Cells(mi.InvokeKind + 1, 19) & " " & mi.Name & " As " & typenme
   
        For Each parm In mi.Parameters
            On Error Resume Next
                typenme = Tabelle6.Cells(mi.ReturnType.VarType + 1, 15)
                typenme = parm.VarTypeInfo.TypeInfo.Name
            On Error GoTo 0
            filestream.writeline vbTab & vbTab & parm.Name & " As " & typenme
        Next parm
    Next
End Sub
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5400
Registriert: 14. Mai 2013, 11:08

Re: Eigenschaften der Form Controls

Beitragvon Mullit » 09. Aug 2017, 12:51

Hallo Hoepp,
Tatsächlich scheint der Excel-Objektkatalog die FormControls nicht zu listen.

ah sehr gut, top, aber doch die sind da, die Teile sind nur ausgeblendet, Verborg. Elemente anzeigen:

Bild

Gruß, Mullit
Mullit
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 669
Registriert: 16. Jan 2015, 19:31

Re: Eigenschaften der Form Controls

Beitragvon DerHoepp » 09. Aug 2017, 13:25

Danke Mullit,

ich war mir fast sicher, dass ich die ausgeblendeten eingeblendet hatte... Scheint wohl nicht über den Neustart hinweg dauerhaft zu sein.

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5400
Registriert: 14. Mai 2013, 11:08

Re: Eigenschaften der Form Controls

Beitragvon Proma » 10. Aug 2017, 11:03

Hallo liebe Experten,

vielen Dank für Eure Rückmeldungen!
Das ist genau das, was ich brauche, ja mehr noch, es übertrifft meine Erwartungen! Ich bin wieder einmal begeistert!

@Roland
Vielen Dank auch Dir für Deinen ebenso freundlichen wie hilfreichen Hinweis auf den Makro-Recorder; dieses Instrument, das ich ansonsten sehr schätze, ist im aktuellen Fall für die Beantwortung meiner Frage nicht wirklich geeignet.

Die stress-bedingte Verzögerung meiner Rückmeldung bitte ich zu entschuldigen; ich bin derzeit ziemlich unter Druck.

Nochmals ein herzliches Dankeschön an alle und liebe Grüße
vom Martin
Proma
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 200
Registriert: 08. Sep 2015, 11:43

Re: Eigenschaften der Form Controls

Beitragvon Gast » 10. Aug 2017, 17:05

Hi,

@Proma:
sorry, wenn ich hier mal ein wenig lästig bin - hast du meinen Tipp eigentlich mal ausprobiert, oder wolltest du einfach nur mal den Sarkasmus rauskehren ?
Code: Alles auswählen
Sub Makro1()
    ActiveSheet.DropDowns.Add(63.75, 30, 60.75, 29.25).Select
    ActiveSheet.Shapes("Drop Down 2").LockAspectRatio = msoTrue
    ActiveSheet.Shapes("Drop Down 2").Height = 23.25
    ActiveSheet.Shapes("Drop Down 2").Width = 60.75
    Selection.Locked = False
    With Selection
        .Placement = xlFreeFloating
        .PrintObject = False
    End With
    ActiveSheet.Shapes("Drop Down 2").AlternativeText = "Hallo"
    With Selection
        .ListFillRange = "$E$3:$E$6"
        .LinkedCell = "$C$2"
        .DropDownLines = 8
        .Display3DShading = True
    End With
End Sub

Code: Alles auswählen
Sub Makro3()
'
' Makro3 Makro
'
    ActiveSheet.Buttons.Add(180, 26.25, 67.5, 24.75).Select
    With Selection.Font
        .Name = "Calibri"
        .FontStyle = "Standard"
        .Size = 12
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .ReadingOrder = xlContext
        .Orientation = xlUpward
        .AutoSize = True
    End With
    With Selection
        .Locked = False
        .LockedText = True
    End With
    With Selection
        .Placement = xlMove
        .PrintObject = True
    End With
    ActiveSheet.Shapes.Range(Array("Drop Down 2")).Select
End Sub

Da hast du alles dabei, was du bei den beiden Formularsteuerlementen ändern kannst und du siehst auch gleich wie es geht.
Hast du wahrscheinlich nicht umrissen.

Ich würde das nicht empfehlen, wenn es nicht Sinn machen würde.
Einfach mal ohne Gruß
Roland
Gast
 

Re: Eigenschaften der Form Controls

Beitragvon Proma » 11. Aug 2017, 17:20

Hallo Roland,

danke für den Nachschlag!

Ziel meiner Anfrage war, eine VOLLSTÄNDIGE Auflistung der Methoden und Eigenschaften der Formularsteuerelemente zu erhalten. Aus naheliegenden Gründen ist dies jedoch durch eine Aufzeichnung des Codes mittels Makro-Recorder schlichtweg nicht möglich; weitere Ausführungen hierzu werde ich auf Wunsch gerne nachreichen, was aber sicher nicht nötig sein wird, denn schließlich bist Du ja der Experte.

Nun hoffe ich, bei Dir nicht ein neues Feindbild geschaffen zu haben und wünsche Dir eine ruhige Zeit!

Liebe Grüße
vom Martin
Proma
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 200
Registriert: 08. Sep 2015, 11:43


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: GMG-CC und 11 Gäste