Ich habe mehrere Datenreihen in einem Diagramm und möchte, dass jede der etwa 55 Linien im Diagramm je nach meiner Wahl eine andere Dicke hat. Ich habe das folgende Makro gesehen, um die Dicke aller Linien auf einmal anzupassen.
Sub SetWeights()
Dim srs As Series
For Each srs In ActiveSheet.ChartObjects("Chart 1").Chart.SeriesCollection
srs.Format.Line.Weight = 0.75
Next
End Sub
Gibt es eine Möglichkeit (Makro), dass jede Linie eine andere Dicke hat, wie in einer der Spalten im Excel-Arbeitsblatt definiert?
Gibt es eine ähnliche Möglichkeit, sowohl die Linienfarbe als auch den Markierungstyp in einem Schritt zu ändern (ohne dass für jede Linie ein anderer Markierungstyp erforderlich ist)?
Antwort1
Ja, Sie können Linienstärke und Farbe formatieren.
Dieser Code sollte Serie 2 formatieren:
Sub SetWeights()
ActiveChart.SeriesCollection(2).Select
With Selection.Format.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(107, 197, 135)
.Weight = 1
End With
End Sub
Sie können den Code so ändern, dass jede Serie durchlaufen wird und jedes Mal eine andere Farbe und ein anderes Gewicht gelesen wird.
Sie können den Markierungstyp ändern, indem Sie eine Zeile wie die folgende hinzufügen:
.MarkerStyle = -4142
Optionen für den Markierungsstil sind hier aufgeführt: https://msdn.microsoft.com/en-us/vba/excel-vba/articles/series-markerstyle-property-excel
Antwort2
Okay, das folgende Makro (erhalten vonhttps://stackoverflow.com/questions/32437999/auto-adjust-excel-chart-line-weights-with-a-loop) beantwortet meine ursprüngliche Frage.
Sub SetWeights()
Dim Srs As Series
Dim myWeight As Range
Dim £w As Range
Dim j As Long
Set myWeight = Range("Weights")
j = 1
With ActiveSheet
For Each £w In myWeight
If j > ActiveChart.SeriesCollection.Count Then Exit Sub
ActiveChart.SeriesCollection(j).Format.Line.Weight = £w
j = j + 1
Next £w
End With
End Sub
... und ich kann das folgende Diagramm zeichnen: Kann das zeichnen
Kann irgendjemand dieses Makro so ändern, dass ich ein solches Diagramm erhalten kann?
Danke schön!