グラフに複数のデータ シリーズがあり、グラフ内の約 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
Excel ワークシートの列の 1 つで定義されているように、各線の太さを異なるものにする方法 (マクロ) はありますか?
線の色とマーカーの種類を一度に変更する同様の方法はありますか(線ごとに異なるマーカーは必要ありません)?
答え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
...そして、次のようなグラフをプロットできます。 これを描くことができる
このようなグラフを作成できるように、このマクロに変更を加えてくれる人はいますか?
ありがとう!