Freigeben über


Shapes-Objekt (Excel)

Eine Auflistung aller Shape-Objekte auf dem angegebenen Blatt.

Hinweise

Jedes Shape-Objekt stellt ein Objekt in der Zeichnungsebene, wie beispielsweise eine AutoForm, Freihandform, ein OLE-Objekt oder Bild, dar.

Hinweis

Wenn Sie mit einer Teilmenge der Formen in einem Dokument arbeiten möchten, z. B. um nur die AutoFormen im Dokument oder nur die ausgewählten Formen zu verwenden, müssen Sie eine ShapeRange-Auflistung erstellen, die die Shapes enthält, mit denen Sie arbeiten möchten.

Beispiel

Verwenden Sie die Shapes-Eigenschaft des Worksheet-Objekts , um die Shapes-Auflistung zurückzugeben. Im folgenden Beispiel werden alle Shapes in myDocument ausgewählt.

Hinweis

Wenn Sie für alle Formen auf einem Blatt gleichzeitig eine Aktion ausführen möchten (z. B. löschen oder eine Eigenschaft festlegen), wählen Sie alle Formen aus, und verwenden Sie dann die ShapeRange-Eigenschaft für die Auswahl, um ein ShapeRange-Objekt zu erstellen, das alle Formen auf dem Blatt enthält, und wenden Sie dann die entsprechende Eigenschaft oder Methode auf das ShapeRange-Objekt an.

Set myDocument = Worksheets(1) 
myDocument.Shapes.SelectAll

Verwenden Sie Shapes (Index), wobei index der Name oder die Indexnummer des Shapes ist, um ein einzelnes Shape-Objekt zurückzugeben. Im folgenden Beispiel wird die Füllung für eine voreingestellte Schattierung für Form eins in myDocument festgelegt.

Set myDocument = Worksheets(1) 
myDocument.Shapes(1).Fill.PresetGradient _ 
 msoGradientHorizontal, 1, msoGradientBrass

Verwenden Sie Range (Index), wobei index der Name oder die Indexnummer des Shapes oder ein Array von Formennamen oder Indexnummern ist, um eine ShapeRange-Auflistung zurückzugeben, die eine Teilmenge der Shapes-Auflistung darstellt. Im folgenden Beispiel werden die Füllmuster für die Formen eins und drei in myDocument festgelegt.

Set myDocument = Worksheets(1) 
myDocument.Shapes.Range(Array(1, 3)).Fill.Patterned _ 
 msoPatternHorizontalBrick

Ein ActiveX-Steuerelement in einem Blatt verfügt über zwei Namen: der Name der Form, die das Steuerelement enthält, der beim Anzeigen des Blatts im Feld Name angezeigt wird, und den Codenamen für das Steuerelement, das im Eigenschaftenfenster in der Zelle rechts neben (Name) angezeigt wird. Wenn Sie zum ersten Mal einem Blatt ein Steuerelement hinzufügen, stimmen Formname und Codename überein. Wenn Sie jedoch entweder den Shape-Namen oder den Codenamen ändern, wird der andere nicht automatisch entsprechend geändert.

Sie verwenden den Codenamen eines Steuerelements in dem Namen seiner Ereignisprozeduren. Wenn Sie jedoch ein Steuerelement aus der Shapes- oder der OLEObjects-Auflistung für ein Blatt zurückgeben, müssen Sie den Formnamen und nicht den Codenamen verwenden, um anhand des Namens auf das Steuerelement zu verweisen. Nehmen Sie beispielsweise an, dass Sie einem Blatt ein Kontrollkästchen hinzufügen, und dass der Standardformname und der Standardcodename "CheckBox1" lauten. If you then change the control code name by typing chkFinished next to (Name) in the Properties window, you must use chkFinished in event procedures names, but you still have to use CheckBox1 to return the control from the Shapes or OLEObject collection, as shown in the following example.

Private Sub chkFinished_Click() 
 ActiveSheet.OLEObjects("CheckBox1").Object.Value = 1 
End Sub

Methoden

Eigenschaften

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.