Die Verwendung von VBScript zum ändern der Hintergrundfarbe in Excel Diagramm
Ich bin mit VBScript zu erstellen, die eine Linie scatter-plot von Spalten von Daten in Excel 2003. Es kommt gut, aber ich wollen, Bearbeiten Sie die Eigenschaften des Diagramms, wie Hintergrundfarbe und Beschriftung der Achse. Ich habe diese manuell in Excel ein makro aufgezeichnet, das gab mir den folgenden VBA-code:
ActiveChart.PlotArea.Select
With Selection.Border
.ColorIndex = 16
.Weight = xlThin
.LineStyle = xlContinuous
End With
With Selection.Interior
.ColorIndex = 2
.PatternColorIndex = 1
.Pattern = xlSolid
End With
ActiveChart.Axes(xlCategory).Select
With Selection.TickLabels
.ReadingOrder = xlContext
.Orientation = 45
End With
ActiveChart.Axes(xlValue).AxisTitle.Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.ReadingOrder = xlContext
.Orientation = xlHorizontal
End With
ActiveChart.ChartArea.Select
End Sub
Diese sieht gut aus in VBA, aber ich habe Probleme beim umwandeln in VBScript. Wie sollte ich anfangen? Das ist mein code im moment:
Set objChart = objExcel.Charts.Add()
With objExcel.ActiveChart
.ChartType = xlXYScatterLinesNoMarkers
.SeriesCollection(1).Interior.Color = RGB(255, 0, 0)
.HasTitle = True
.ChartTitle.Text = "usage"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Time"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "units"
.HasLegend = False
.SetSourceData objWorksheet.Range("E1","F" & LastRow), xlColumns
.SetSourceData objWorksheet.Range("E1:F200"), xlColumns
End With
Die Linie .SeriesCollection(1).Innenraum.Color = RGB(255, 0, 0) verursacht einen Fehler: "kann Nicht legen Sie die color-Eigenschaft des Interior-Klasse". Ich vermute, ich sollte nicht nennen .SeriesCollection Recht unter .Activechart. Irgendwelche Vorschläge? An dieser Stelle möchte ich einfach glücklich sein zu können, ändern Sie die Hintergrundfarbe des Diagramms zu weiß, und drehen Sie die x-Achsen-Beschriftungen 45 Grad.
Vielen Dank im Voraus.
- Das VBA sieht ziemlich nah an VBScript... hast du das probiert : Mit objExcel.ActiveChart <alle Ihre vba-code hier> Ende mit?
- Wenn Sie wenn Sie VBScript verwenden, können Sie keine Konstanten wie
xlCategory
: Excel-VBA weiß, was die Werte sind, aber Sie sind es nicht in VBScript. Finden Sie die numerischen Werte in den Objektkatalog (F2 in der VBEditor) - ... oder geben Sie einfach
?xlCategory
und drücken Sie die EINGABETASTE in das Direktfenster.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Reihenfolge ist wichtig. Bevor Sie Zugriff auf eine Reihe, müssen Sie es zuerst. Dasselbe gilt für andere Eigenschaften, wie
HasTitle
. Auch die Linien eines XY-Diagramm nicht über eine innen-Farbe, das ist nur in den charts, die zeigen, dass ein Innenraum (wie Kreisdiagramme oder Säulendiagramme). Du meinst wohl die Rahmenfarbe hier. Ändern Sie Ihren code zu diesem:und es sollte funktionieren, vorausgesetzt, Sie haben den symbolischen Konstanten.
.ChartArea.Color
, die Hintergrundfarbe des Graphen kann geändert werden über.PlotArea.Color
. Sie können auch.ColorIndex
statt.Color
zuweisen einer indizierten Farben (z.B. 2 für weiß)..PlotArea.Interior.Color
, nicht.PlotArea.Color
.Gibt es zwei Dinge:
siehe Beispiel
Einstellung den Allgemeinen Bereich des Diagramms, um eine bestimmte Farbe (ich meine die gesamte Fläche des Diagramms , mit Ausnahme des Zeichenbereichs.)
'set die Farbe der Diagrammfläche, Grau
Mit ActiveSheet.Formen("NameChart").Füllen
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorBackground1
.ForeColor.TintAndShade = 0
.ForeColor.Helligkeit = -0.5
.Solid
Ende Mit
Wenn meine Antwort Ihnen geholfen, die in irgendeiner Weise, bitte bewerten Sie es. Danke.