VBA: Diagramm- und Zeichnungsfläche formatieren

diagrammflaeche4

In einem der letzten Blogbeiträge ging es um Diagrammtitel, Legende und Achsentitel

In diesem Beitrag soll gezeigt werden, wie die Diagrammfläche und die Zeichnungsfläche eines Säulendiagramms formatiert werden können.

ea94cea3b3c34f939cd2c303bfa43288

1. Die Diagrammfläche formatieren

Du hast eine Säulendiagramm wie im Beitrag gezeigt, erstellt.

VBADiag8

Nun soll die Diagrammfläche eine Hintergrundfarbe und einen Rahmen erhalten.

Dazu aktivierst Du das ChartObject „Diagramm 1“.

ActiveSheet.ChartObjects(“Diagramm 1”).Activate

Als erstes sprichst Du die Füllung mit „Fill“ an und weist Sichtbarkeit an.

With ActiveSheet.Shapes(“Diagramm 1”).Fill

              .Visible = msoTrue

Mit der Anweisung

        .ForeColor.ObjectThemeColor = msoThemeColorBackground1

gibt VBA eine Farbe zurück, die dem Farbschema eines Designs zugeordnet wird oder legt diese fest.

Die Anweisung

        .ForeColor.TintAndShade = 0

gibt einen Single-Wert zurück, der eine Farbe aufhellt oder abdunkelt, oder legt diesen Wert fest.

Jetzt kannst Du noch die Leuchtdichte des angegebenen Objektes festlegen. Das geschieht mit der Anweisung

                    .ForeColor.Brightness = -0.150000006

(Den Wert „-0.150000006“ hat mir die Makroaufzeichnung geliefert)

Die Transparenz einer Füllfarbe bestimmst Du mit

                    .Transparency = 0

In diesem Fall soll es keine Transparenz geben.

Mit

                    .Solid

legst Du die angegebene Füllung auf eine einheitliche Farbe fest.

Um einen Rahmen um die Diagrammfläche zu legen, verwendest Du die Anweisung

With ActiveSheet.Shapes(“Diagramm 1”).Line

Du weist wieder Sichtbarkeit an und bestimmst eine Farbe für den Rahmen.

             .ForeColor.ObjectThemeColor = msoThemeColorText1

Entscheide noch über Aufhellung oder Abdunklung, die Leuchtdichte und die Transparenz.

             .ForeColor.TintAndShade = 0

              .ForeColor.Brightness = -0.150000006

              .Transparency = 0

              .Solid

Mit

            .Weight = 0.75

schließlich legst Du die Strichstärke fest.

Jetzt noch das Makro im Zusammenhang:

Sub Diagrammfläche()

ActiveSheet.ChartObjects(“Diagramm 1”).Activate

With ActiveSheet.Shapes(“Diagramm 1”).Fill

        .Visible = msoTrue

        .ForeColor.ObjectThemeColor = msoThemeColorBackground1

        .ForeColor.TintAndShade = 0

        .ForeColor.Brightness = -0.150000006

        .Transparency = 0

        .Solid

    End With

With ActiveSheet.Shapes(“Diagramm 1”).Line

        .Visible = msoTrue

        .ForeColor.ObjectThemeColor = msoThemeColorText1

        .ForeColor.TintAndShade = 0

        .ForeColor.Brightness = 0

        .Weight = 0.75

    End With

End Sub

Letztlich das Diagramm nach Ausführen des Makros:

Diagrammflaeche2

2. Die Zeichnungsfläche formatieren

Jetzt soll noch die Zeichnungsfläche etwas formatiert werden. Dazu willst Du ihr eine Hintergrundfarbe und einen Rahmen geben.

Dazu aktivierst Du wieder das ChartObject „Diagramm 1“.

ActiveSheet.ChartObjects(“Diagramm 1”).Activate

Als erstes sprichst Du die Füllung mit „Fill“ an und weist Sichtbarkeit an.

With ActiveSheet.Shapes(“Diagramm 1”).Fill

              .Visible = msoTrue

Mit der Anweisung

             .ForeColor.RGB = RGB(255, 255, 153)

gibt VBA eine Farbe zurück, die mit einem RGB-Wert festgelegt wird.

Die Transparenz einer Füllfarbe bestimmst Du mit

                    .Transparency = 0

In diesem Fall soll es keine Transparenz geben.

Mit

                    .Solid

legst Du die angegebene Füllung auf eine einheitliche Farbe fest.

Um um die Zeichnungsfläche einen Rahmen zu setzen, verwendest Du die Anweisung

With Selection.Format.Fill

Du weist wieder Sichtbarkeit an und bestimmst eine Farbe für den Rahmen.

              .ForeColor.ObjectThemeColor = msoThemeColorText1

Entscheide noch über Aufhellung oder Abdunklung, die Leuchtdichte und die Transparenz.

             .ForeColor.TintAndShade = 0

              .ForeColor.Brightness = 0

              .Transparency = 0

              .Solid

Mit

            .Weight = 0.5

schließlich legst Du die Strichstärke fest.

Jetzt noch das Makro im Zusammenhang:

Sub Zeichnungsfläche()

ActiveSheet.ChartObjects(“Diagramm 1”).Activate

    ActiveChart.PlotArea.Select

    With Selection.Format.Fill

        .Visible = msoTrue

        .ForeColor.RGB = RGB(255, 255, 153)

        .Transparency = 0

        .Solid

    End With

    With Selection.Format.Line

        .Visible = msoTrue

        .ForeColor.ObjectThemeColor = msoThemeColorText1

        .ForeColor.TintAndShade = 0

        .ForeColor.Brightness = 0

        .Weight = 0.5

    End With

End Sub

Letztlich das Diagramm nach Ausführen des Makros:

Diagrammflaeche3

3. Zusammenfassung Diagramm und VBA

In dieser kleinen Serie hast Du sehen können, wie mit VBA

Nach Ausführung dieser drei Makros ist das Diagramm auf diesem Stand fertig:

Diagrammflaeche5

Viele weitere Formatierungen lassen sich an einem Diagramm vornehmen.

Nicht behandelt wurde z.B. die Formatierung der Datenreihe und die Formatierung der Achsenbeschriftungen. Vielleicht werde ich das später noch beschreiben.

560f3f8ac8254ecc89c7a3d7eacc7a91

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

WordPress Cookie Plugin von Real Cookie Banner