Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

VBA-Begriff: Chart-Objekt

Workbooks-Auflistung (Workbook-Objekt)
Charts-Auflistung (Chart-Objekt)
Worksheets-Auflistung (Worksheet-Objekt)
ChartObjects-Auflistung (ChartObject-Objekt)
Chart-Objekt
Mehrere Objekte

Stellt ein Diagramm in einer Arbeitsmappe dar, und zwar entweder ein eingebettetes Diagramm (enthalten in einem ChartObject) oder ein separates Diagrammblatt.

Verwenden des Chart-Objekts

In diesem Abschnitt werden die folgenden Eigenschaften und Methoden beschrieben, mit denen ein Chart-Objekt zurückgegeben wird:

  • Chart-Eigenschaft

  • Charts-Methode

  • ActiveChart-Eigenschaft

  • ActiveSheet-Eigenschaft

Chart-Eigenschaft

Verwenden Sie die Chart-Eigenschaft, um ein Chart-Objekt zurückzugeben, das das in einem ChartObject-Objekt enthaltene Diagramm darstellt. Im folgenden Beispiel wird das Muster für die Diagrammfläche des ersten eingebetteten Diagramms im Tabellenblatt mit dem Namen ""Sheet1"" festgelegt.

Worksheets("sheet1").ChartObjects(1).Chart. _
    ChartArea.Interior.Pattern = xlLightDown

Charts-Methode

Die Charts-Auflistung enthält ein Chart-Objekt für jedes Diagrammblatt einer Arbeitsmappe. Verwenden Sie Charts(Index), um ein einzelnes Chart-Objekt zurückzugeben. Dabei ist Index die Indexnummer oder der Name des Diagrammblatts. Im folgenden Beispiel wird die Farbe der ersten Datenreihe im ersten Diagrammblatt geändert.

Charts(1).SeriesCollection(1).Interior.Color = RGB(255, 0, 0)

Die Indexnummer des Diagramms stellt die Position des Diagrammblatts auf der Registerleiste der Arbeitsmappe dar. Charts(1) ist das erste Diagramm der Arbeitsmappe (von links), Charts(Charts.Count) das letzte (von rechts). Alle Diagrammblätter, einschließlich der ausgeblendeten, sind in der Durchnummerierung enthalten. Der Diagrammname wird auf dem Arbeitsmappenregister für das Diagramm angezeigt. Mit Hilfe der Name-Eigenschaft können Sie den Diagrammnamen festlegen oder zurückgeben.

Im folgenden Beispiel wird das Diagramm mit dem Namen "Verkäufe" an das Ende der aktiven Arbeitsmappe verschoben.

Charts("sales").Move after:=Sheets(Sheets.Count)

Das Chart-Objekt ist außerdem ein Element der Sheets-Auflistung. Die Sheets-Auflistung enthält alle Blätter der Arbeitsmappe (sowohl Diagrammblätter als auch Tabellenblätter). Verwenden Sie Sheets(Index), um ein einzelnes Blatt zurückzugeben. Dabei ist Index die Indexnummer oder der Name des Blatts.

ActiveChart-Eigenschaft

Wenn es sich bei dem aktiven Objekt um ein Diagramm handelt, können Sie die ActiveChart-Eigenschaft verwenden, um einen Bezug dazu herzustellen. Ein Diagrammblatt ist aktiv, wenn es vom Benutzer ausgewählt oder mit der Activate-Methode aktiviert wurde. Im folgenden Beispiel wird das erste Diagrammblatt aktiviert und anschließend Diagrammtyp und -titel festgelegt.

Charts(1).Activate
With ActiveChart
    .Type = xlLine
    .HasTitle = True
    .ChartTitle.Text = "January Sales"
End With

Ein eingebettetes Diagramm ist aktiv, wenn es vom Benutzer ausgewählt oder das darin enthaltene ChartObject-Objekt mit der Activate-Methode aktiviert wurde. Im folgenden Beispiel wird das erste eingebettete Diagramm im ersten Tabellenblatt aktiviert, und anschließend werden Diagrammtyp und -titel festgelegt. Beachten Sie, dass der Code in diesem Beispiel mit dem im vorhergehenden Beispiel identisch ist, sobald das eingebettete Diagramm aktiviert wurde. Mit der ActiveChart-Eigenschaft können Sie Visual Basic-Code schreiben, der sich entweder auf ein eingebettetes Diagramm oder auf ein Diagrammblatt beziehen kann, abhängig davon, was aktiviert wurde.

Worksheets(1).ChartObjects(1).Activate
ActiveChart.Type = xlLine
ActiveChart.HasTitle = True
ActiveChart.ChartTitle.Text = "January Sales"

ActiveSheet-Eigenschaft

Wenn es sich bei dem aktiven Blatt um ein Diagrammblatt handelt, können Sie die ActiveSheet-Eigenschaft verwenden, um einen Bezug dazu herzustellen. Im folgenden Beispiel wird mit der Activate-Methode das Diagrammblatt mit dem Namen Chart1 aktiviert und anschließend als Füllfarbe für die erste Datenreihe des Diagramms die Farbe Blau festgelegt.

Charts("Chart1").Activate
ActiveSheet.SeriesCollection(1).Interior.ColorIndex = 5