Excel-Diagramm: Makro für benutzerdefinierte variable Linienstärke

Excel-Diagramm: Makro für benutzerdefinierte variable Linienstärke

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
  1. Gibt es eine Möglichkeit (Makro), dass jede Linie eine andere Dicke hat, wie in einer der Spalten im Excel-Arbeitsblatt definiert?

  2. 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?

Neuer erwarteter Graph

Danke schön!

verwandte Informationen