Diagrammelemente mit VBA bearbeiten

(Korrigiert am 06.05.2021)

In einem der letzten Blogbeiträge hast Du sehen können, wie mit VBA ein einfaches Diagramm erstellt werden kann.

Dem Diagramm fehlte ein Diagrammtitel, es fehlte die Legende und es fehlten Achsentitel.

In diesem Beitrag soll auf die fehlenden Aspekte eingegangen werden.

1. Einen Diagrammtitel vergeben

Das erstellte Diagramm hat bisher keinen Diagrammtitel erhalten.

In einem ersten Schritt willst Du einen solchen in Dein Diagramm einfügen.

Dazu musst Du das Diagramm konkret nennen, das machst Du mit „With“ und ein Element „ChartTitle“ setzen.

Mit der With-Anweisung wird es möglich, eine Reihe von Anweisungen für ein angegebenes Objekt auszuführen, ohne den Objektnamen jeweils neu aufzurufen.

Mit „.HasTitle=True“ weist Du an, dass das Titelelement eingeblendet ist.

Danach kannst Du dem Diagramm mit einem erneuten „With“ den Diagrammtitel „Produktionsmengen“ geben und u.a. eine Schriftfarbe festlegen.

Mit „End With“ schließt Du einen With-Block ab.

Sub Diagrammelemente1()

With Worksheets(„Tabelle1“).ChartObjects(„Diagramm 1“).Chart

.SetElement (msoElementChartTitleAboveChart)

.HasTitle = True

With .ChartTitle

.Characters.Text = „Produktionsmengen“

.Font.ColorIndex = 5

End With

2. Achsentitel vergeben

In VBA werden die x- und die y-Achse unterschiedlich benannt.

Die x-Achse wird „Axes(xlCategory)“ und die y-Achse „Axes(xlValue)“ genannt.

Zuerst bestimmst Du mit einer neuen With-Anweisung das Objekt Axes(xlCategory) und legst mit „.HasTitle=True“ wiederum die Sichtbarkeit fest.

With .Axes(xlCategory)

.HasTitle = True

With .AxisTitle

.Characters.Text = „Monate“

.Font.ColorIndex = 5

End With

End With

Darunter programmierst Du eine neue With-Anweisung für den Achsentitel. Das geschieht mit „With AxisTitle“. Definiere nun den Achsentitel „Monate“ und die Schriftfarbe.

Schließe die Bestimmung des Achsentitels mit End With ab und schließe den With-Block zur x-Achse ebenfalls mit End With ab.

Mit der y-Achse verfährst Du analog. Du legst die Sichtbarkeit fest, vergibst den Achsentitel „Menge“ und legst die Schriftfarbe fest.

With .Axes(xlValue)

.HasTitle = True

With .AxisTitle

.Characters.Text = „Menge“

.Font.ColorIndex = 5

End With

End With

Diesen Teil des Codes beendest Du wiederum mit zweimaligem End With.

3. Eine Legende einfügen

Du rufst, wie anfangs beim Diagrammtitel, das Objekt Diagramm auf. Dann setzt Du mit einer Set-Anweisung das Element „Legende“ und bestimmst gleichzeitig, dass die Legende sich rechts im Diagramm befinden soll.

With Worksheets(„Tabelle1“).ChartObjects(„Diagramm 1“).Chart

.SetElement (msoElementLegendBottom)

End With

Diesen Teil des Codes beschließt Du mit End With.

4. Ergebnis nach Ausführen des Makros

Den gesamten Code musst Du dann nochmals mit End With und mit End Sub abschließen.

Der Code lautet zusammengefasst:

Sub Diagrammelemente1()

With Worksheets(„Tabelle1“).ChartObjects(„Diagramm 1“).Chart

.SetElement (msoElementChartTitleAboveChart)

.HasTitle = True

With .ChartTitle

.Characters.Text = „Produktionsmengen“

.Font.ColorIndex = 5

End With

With .Axes(xlCategory)

.HasTitle = True

With .AxisTitle

.Characters.Text = „Monate“

.Font.ColorIndex = 5

End With

End With

With .Axes(xlValue)

.HasTitle = True

With .AxisTitle

.Characters.Text = „Menge“

.Font.ColorIndex = 5

End With

End With

With Worksheets(„Tabelle1“).ChartObjects(„Diagramm 1“).Chart

.SetElement (msoElementLegendBottom)

End With

End With

End Sub

Lasse nun das Makro ausführen. Das Diagramm wird entsprechend mit den Elementen versehen.

In einem nächsten Beitrag wird es um die weitere Gestaltung des Diagramms gehen.

Ein Gedanke zu „Diagrammelemente mit VBA bearbeiten“

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