Eine SmartArt-Grafik in Excel liegt als Shape im Arbeitsblatt. Ihre Elemente können über das SmartArt-Objektmodell untersucht werden. Dieses Beispiel gibt den Text und die Positionen der SmartArt-Knoten aus:

Sub SmartArtAuslesen()
    Dim ws As Worksheet
    Dim shp As Shape
    Dim node As SmartArtNode
    Dim i As Long

Set ws = ThisWorkbook.Worksheets("Tabelle1") For Each shp In ws.Shapes If shp.HasSmartArt Then For i = 1 To shp.SmartArt.AllNodes.Count Set node = shp.SmartArt.AllNodes(i) Debug.Print i, node.TextFrame2.TextRange.Text, _ shp.Left, shp.Top Next i End If Next shp End Sub

Die Position links und oben bezieht sich hier auf das Shape als Ganzes. Für einzelne Knoten können je nach Layout andere Objekte und Eigenschaften relevant sein. Das SmartArt-Objektmodell bietet Funktionen zum Lesen und Ändern; welche Änderungen unterstützt werden, hängt von Eigenschaft, Anwendung und Grafiktyp ab.

Das Beispiel gibt Werte im Direktfenster des VBA-Editors aus. Es ändert die Grafik nicht. Vor Änderungen an produktiven Arbeitsmappen sollte eine Kopie getestet werden.

Quellen und Prüfstand

Inhaltlich überarbeitet am 2026-10-13. Veraltete Versionsaussage durch Objektmodellbeispiel ersetzt.