Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Shape Eigenschaft left top

Shape Eigenschaft left top
21.08.2006 10:41:13
Dietlinde
Hi an alle
Frage, wie kann ich die top/left Eigenschaft bei einem Shape ohne selection per VBA festlegen?
Grüssle Dietlinde
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Shape Eigenschaft left top
21.08.2006 10:47:29
Heiko
Hallo Dietlinde,
z.B. so:

Sub Makro1()
ActiveSheet.Shapes("Rectangle 1").Top = 25
ActiveSheet.Shapes("Rectangle 1").Left = 125
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
AW: Shape Eigenschaft left top
21.08.2006 10:55:10
EtoPHG
Hallo Dietlinde,
Diese Eigenschaft ist mir unbekannt !
Bekannt sind:

Top
Left
TopLeftCell

Welche willst Du ?
Gruss Hansueli
Anzeige
AW: Shape Eigenschaft left top
21.08.2006 10:56:30
Eule
Hallo Dietlinde
so geht auch:
ActiveSheet.Shapes("Logo").Top = 10
ActiveSheet.Shapes("Logo").Left = Range("h1").Left + Range("h1").Width - ActiveSheet.Shapes("Logo").Width
in diesem Beispiel wird das Shape "Logo" gleichzeitig rechtsbündig auf Range("H1") angezeigt
Gruss Eule
Anzeige
AW: Shape Eigenschaft left top
21.08.2006 10:59:27
Dietlinde
vielen Dank an Heiko und Eule
klappt wunnebar
tschau Dietlinde
;
Anzeige
Anzeige

Infobox / Tutorial

Shape-Eigenschaften in Excel VBA: Top und Left korrekt einstellen


Schritt-für-Schritt-Anleitung

Um die Top- und Left-Eigenschaften eines Shapes in VBA festzulegen, kannst du die folgenden Schritte befolgen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke im Projektfenster auf das entsprechende Arbeitsblatt.

  3. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "Module" klickst und "Einfügen" > "Modul" wählst.

  4. Kopiere den folgenden Code in das Modul:

    Sub SetShapePosition()
        ActiveSheet.Shapes("Rectangle 1").Top = 25
        ActiveSheet.Shapes("Rectangle 1").Left = 125
    End Sub
  5. Ersetze "Rectangle 1" durch den Namen deines Shapes.

  6. Schließe den VBA-Editor und führe das Makro über ALT + F8 aus.


Häufige Fehler und Lösungen

  • Fehler: "Shape not found"

    • Lösung: Stelle sicher, dass der Name des Shapes korrekt ist. Du kannst die Namen der Shapes im Excel-Arbeitsblatt überprüfen.
  • Fehler: Ungültige Position

    • Lösung: Achte darauf, dass die Werte für Top und Left innerhalb der Grenzen des Arbeitsblatts liegen. Verwende Werte, die sowohl positiv als auch innerhalb der sichtbaren Fläche liegen.

Alternative Methoden

Eine weitere Methode, um die Position eines Shapes festzulegen, besteht darin, die Position relativ zu einer Zelle zu bestimmen. Hier ist ein Beispiel:

Sub AlignShapeToCell()
    With ActiveSheet.Shapes("Logo")
        .Top = Range("H1").Top
        .Left = Range("H1").Left + Range("H1").Width - .Width
    End With
End Sub

Hier wird das Shape "Logo" rechtsbündig zu der Zelle H1 ausgerichtet.


Praktische Beispiele

  1. Positionierung eines Rechtecks:

    Sub PositionRectangle()
        ActiveSheet.Shapes("Rectangle 2").Top = 50
        ActiveSheet.Shapes("Rectangle 2").Left = 150
    End Sub
  2. Positionierung eines Logos:

    Sub PositionLogo()
        ActiveSheet.Shapes("Logo").Top = 10
        ActiveSheet.Shapes("Logo").Left = Range("H1").Left + Range("H1").Width - ActiveSheet.Shapes("Logo").Width
    End Sub

Diese Beispiele zeigen, wie du die Top- und Left-Werte für Shapes in Excel VBA anpassen kannst.


Tipps für Profis

  • Nutze die ActiveSheet.Shapes-Sammlung, um auf mehrere Shapes gleichzeitig zuzugreifen. Zum Beispiel:

    For Each s In ActiveSheet.Shapes
        s.Top = s.Top + 10   ' Verschiebe alle Shapes um 10 nach unten
    Next s
  • Experimentiere mit den Eigenschaften TopLeftCell und BottomRightCell, um Shapes an bestimmten Zellpositionen zu verankern.


FAQ: Häufige Fragen

1. Wie kann ich die Größe eines Shapes in VBA ändern? Du kannst die Width und Height Eigenschaften verwenden:

ActiveSheet.Shapes("Rectangle 1").Width = 100
ActiveSheet.Shapes("Rectangle 1").Height = 50

2. Was ist der Unterschied zwischen Top und TopLeftCell? Top gibt die vertikale Position des Shapes auf dem Arbeitsblatt an, während TopLeftCell die oberste linke Zelle angibt, in der sich das Shape befindet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige