Ein Diagramm per VBA erstellen

Diagramme ermöglichen es, Zahlen grafisch darzustellen, die sich dann oftmals besser verstehen und vergleichen lassen.

Die manuelle Erstellung von Diagrammen war schon mehrfach Thema im Blog.

In diesem Beitrag soll es darum gehen, ein Diagramm mit einem VBA-Makro aufzubauen.

1. Die Wertetabelle

Als Grundlage steht eine Tabelle zur Verfügung, aus der die produzierte Anzahl eines Produktes über ein Jahr abzulesen ist.

2. Ein Makro schreiben

Gehe im Menü Entwicklertools / Code auf „Visual Basic“. Es öffnet sich eine Maske zur Eingabe des Codes.

Die erste und die letzte Zeile eines Codes sind lediglich dazu da, den Code einzuleiten und abzuschließen.

Das Schlüsselwort zur Eröffnung ist „Sub“. Dann folgt ein sinnvoller Name für das Makro. Die erste Zeile wird mit einer öffnenden und einer schließenden Klammer abgeschlossen.

Schreibe z.B.

Sub ErstellenDiagramm()

Gib nun die Anweisung, ein Diagramm zu erstellen. Lege dann den Diagrammtyp „Gruppierte Säulen“ fest.

Charts.Add

ActiveChart.ChartType=xlColumnClustered

Weise jetzt an, welche Daten dem Diagramm zugrunde gelegt werden sollen.

ActiveChart.SetSourceData _

            Source:=Sheets(„Tabelle1“).Range(„$B$4:$C$15“), PlotBy:=xlColumns

Im nächsten Schritt ist anzugeben, wo denn das Diagramm erscheinen soll.

  ActiveChart.Location Where:=xlLocationAsObject Name:=“Tabelle1“

„xlChart.Location“ spezifiziert den Ort der Hinterlegung und kann wie folgt besetzt werden:

xlLocationAsNewSheet (neues Diagrammblatt)

xlLocationAsObject (im Arbeitsblatt als Objekt)

xlLocationAutomatic (automatische Positionierung)

Jetzt kannst Du noch entscheiden, ob dem Diagramm eine Legende hinzugefügt werden soll oder nicht.

Wenn ja, dann schreibe:

ActiveChart.HasLegend=True

Wenn nein, dann schreibe:

  ActiveChart.HasLegend=False

Für das Beispiel wurde False gewählt.

Schließe das Makro mit

         End Sub

ab.

Das vollständige Makro lautet:

Sub ErstellenDiagramm()

Charts.Add

ActiveChart.ChartType = xlColumnClustered

ActiveChart.SetSourceData Source:=Sheets(„Tabelle1“).Range(„$B$4:$C$15“), PlotBy:=xlColumns

ActiveChart.Location Where:=xlLocationAsObject, Name:=“Tabelle1″

ActiveChart.HasLegend = False

End Sub

Nun lass das programmierte Makro ausführen.

Setze den Cursor im Editor in den Code, gehe dann auf Ausführen und klicke „Sub/Userform ausführen“ an.

Befindet sich der Cursor außerhalb des Codes, rufst Du genauso „Sub/Userform ausführen“ auf und wählst dann das Makro aus.

Das Makro läuft jetzt ab und erstellt im Arbeitsblatt „Tabelle1“ das gewünschte Diagramm.

3. Ausblick

Dem Diagramm fehlt noch einiges. Es hat noch keinen Titel, es fehlt die Legende, es fehlen Achsentitel. Eventuell vermisst Du Datenbeschriftungen.

Die Datenreihe hat eine automatische Farbe erhalten, das könnte noch geändert werden.

Möglich ist, Achsen auszublenden.

Letztlich fehlen vielleicht noch Formatierungen des Diagrammbereiches und der Zeichnungsfläche.

Auf diese und andere Aspekte soll in weiteren Beiträgen eingegangen werden.

Ein Gedanke zu „Ein Diagramm per VBA erstellen“

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s