Programmierung Charts in Excel VBA
Im Folgenden werden wir zwei Programme in Excel VBA aussehen. Ein Programmschleifen durch alle Diagramme auf einem Blatt und ändert sich jedes Diagramm auf einem Kreisdiagramm.
Das andere Programm ändert einige Eigenschaften des ersten Diagramms.
Erstellen Sie einige Grafiken (oder laden Sie die Excel-Datei) 1..
Platzieren Sie eine Befehlstaste auf das Arbeitsblatt und fügen Sie die folgenden Codezeilen:
-
Zuerst müssen wir ein ChartObject- Objekt erklären. Die ChartObject- Objekt wirkt als ein Behälter für ein Chart-Objekt. Wir nennen die ChartObject- cht, aber Sie können einen beliebigen Namen verwenden.
Dim cht As ChartObject
-
Die Chartobjects Sammlung enthält alle eingebettete Diagramme auf einem einzigen Blatt. Wir wollen auf dem ersten Blatt durch alle Diagramme Schleife. Fügen Sie die folgende For Each Next-Schleife.
For Each cht In Worksheets(1).ChartObjects Next cht
-
das Diagrammobjekt stellt ein Diagramm in einem Arbeitsbuch. Fügen Sie die folgende Codezeile an die For Each Next-Schleife jedes Diagramm zu einem Kreisdiagramm zu ändern.
cht.Chart.ChartType = xlPie
Hinweis: wieder cht dient als Container für das Chart-Objekt. Wir verwenden die Charttype-Eigenschaft auf den Diagrammtyp zu ändern. Wir nutzen die integrierten Konstante xlPie jedes Diagramm auf ein Kreisdiagramm zu ändern.
-
Ergebnis, wenn Sie auf den Befehlsschaltflächen auf dem Blatt klicken:
Jetzt werden wir einige Eigenschaften des ersten Diagramms ändern.
Legen Sie eine andere Befehlsschaltfläche
auf dem Arbeitsblatt und fügen Sie die folgenden Codezeilen:
-
Die Chartobjects Sammlung enthält alle eingebettete Diagramme auf einem einzigen Blatt. Fügen Sie die folgende Codezeile der ersten Grafik zu aktivieren:
Worksheets(1).ChartObjects(1).Activate
Wir können nun auf dieses Diagramm als Active beziehen.
-
Die folgende Codezeile Fügen Sie den Diagrammtitel zu ändern.
ActiveChart.ChartTitle.Text = "Sales Report"
-
Der folgende Codezeile Fügen Sie die Legende an der Unterseite des Diagramms zu verschieben:
ActiveChart.Legend.Position = xlBottom
-
Ergebnis, wenn Sie auf den Befehlsschaltflächen auf dem Blatt klicken: