Excel グラフ: ユーザー定義の可変線の太さのマクロ

Excel グラフ: ユーザー定義の可変線の太さのマクロ

グラフに複数のデータ シリーズがあり、グラフ内の約 55 本の線の太さをそれぞれ選択に基づいて異なる太さにしたいと考えています。すべての線の太さを一度に調整する次のマクロを見たことがあります。

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. Excel ワークシートの列の 1 つで定義されているように、各線の太さを異なるものにする方法 (マクロ) はありますか?

  2. 線の色とマーカーの種類を一度に変更する同様の方法はありますか(線ごとに異なるマーカーは必要ありません)?

答え1

はい、線の太​​さと色をフォーマットできます。

このコードはシリーズ 2 をフォーマットする必要があります。

Sub SetWeights()
ActiveChart.SeriesCollection(2).Select
With Selection.Format.Line
    .Visible = msoTrue
    .ForeColor.RGB = RGB(107, 197, 135)
    .Weight = 1
End With
End Sub

コードを変更して各シリーズをループし、そのたびに異なる色と重量を読み取ることができます。

次のような行を追加することでマーカーの種類を変更できます。

.MarkerStyle = -4142

マーカー スタイルのオプションは次のとおりです。 https://msdn.microsoft.com/en-us/vba/excel-vba/articles/series-markerstyle-property-excel

答え2

さて、次のマクロ(https://stackoverflow.com/questions/32437999/auto-adjust-excel-chart-line-weights-with-a-loop) は私の最初の質問に答えます。

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

...そして、次のようなグラフをプロットできます。 これを描くことができる

このようなグラフを作成できるように、このマクロに変更を加えてくれる人はいますか?

新しい予想グラフ

ありがとう!

関連情報