Excel Höhe und Breite Text Box bestimmen

  • Hallo,

    möchte mir eine Excel Tabelle mit Text Boxen erstellen und habe mir aus einem vorher erstellten Makro

    Code
    ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextBox.1", Link:=False, _
    	DisplayAsIcon:=False, Left:=399.75, Top:=259.5, Width:=90.75, Height _
    	:=15.75).Select


    dann diesen Autoitode gemacht.

    [autoit]


    $oExcel.Range("D10").Select
    With $oExcel.ActiveSheet
    .OLEObjects.Add("Forms.TextBox.1")
    .Left=399.75
    .Top=259.5
    .Width=90.75
    .Height=15.75
    .Link=False
    .DisplayAsIcon=False
    .Select
    EndWith

    [/autoit]


    Die Text Box wird auch so weit erstellt.
    Nur kann ich halt nicht die Breite, höhe usw bestimmen. Es wird immer nur eine Text Box erstellt in der vorher " $oExcel.Range("D10").Select"
    makierten Zelle und die dann auch noch zu klein oder nicht an die Zelle angepasst.

    Wie bekomme ich es hin das die Text Box genauso groß ist wie die Zelle ?


    Gruß
    oh-ha

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

    2 Mal editiert, zuletzt von oh-ha (4. Mai 2014 um 07:23)

    • Offizieller Beitrag

    Du mußt die Parameter auf die erstellte Box anwenden.
    Die Zellauswahl ist übrigens ohne Nutzen, die Box wird an der übergebenen Position fixiert, völlig egal ob da E10 oder A5 ist. ;)

    [autoit]

    $oExcel.ActiveSheet.OLEObjects.Add("Forms.TextBox.1")
    With $oExcel.ActiveSheet.OLEObjects
    .Left=399.75
    .Top=259.5
    .Width=90.75
    .Height=15.75
    .Link=False
    .DisplayAsIcon=False
    .Select
    EndWith

    [/autoit]
    • Offizieller Beitrag

    Wenn du mehrere OLE-Objekte hinzufügst, musst du diese aber dann direkt ansprechen:

    Spoiler anzeigen
    [autoit]

    $oForm = $oExcel.ActiveSheet.OLEObjects.Add("Forms.TextBox.1")
    With $oForm
    .Left=399.75
    .Top=259.5
    .Width=90.75
    .Height=15.75
    .Link=False
    .DisplayAsIcon=False
    .Select
    EndWith

    [/autoit]
  • Danke,

    so weit bin ich noch nicht, fange gerade erst an mit dem Skript.
    Kannst gar nicht abschätzen wie du mir damit gerade geholfen hast. :D
    Mache mir ein Kalendarium in Excel was dann später als ausfüllbares PDF Formular ausgegeben werden soll.
    Das sind dann immer die Tage des Monats X 6 Einträge pro Zeile also max 186 Zellen die eine Text Box bekommen.


    Gruß
    oh-ha

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

    Einmal editiert, zuletzt von oh-ha (2. Mai 2014 um 20:21)

    • Offizieller Beitrag

    Kleiner Nachtrag:

    Wenn du deine Objekte elegant an den Zellen ausrichten möchtest, kannst du das so tun:

    Spoiler anzeigen
    [autoit]

    $oForm = $oExcel.ActiveSheet.OLEObjects.Add("Forms.TextBox.1")
    With $oForm
    .Left=$oExcel.ActiveSheet.Range("D10").Left ; Ausrichtung an linkem Rand von "D10"
    .Top=$oExcel.ActiveSheet.Range("D10").Top ; Ausrichtung an oberem Rand von "D10"
    .Width=90.75
    .Height=15.75
    .Link=False
    .DisplayAsIcon=False
    .Select
    EndWith

    [/autoit]