web-dev-qa-db-ja.com

Excel VBAの線の色/マーカーの線の色

Excelグラフを変更するためのVBAコードをいくつか書いています。散布図の場合、マーカーの線の色を変更する必要があり、接続線の線の色も変更する必要があります。両方とも手動で行うことができますが、マクロを記録すると、結果が大きく異なるにもかかわらず、両方のアクションが同じコードになります。

コードで線の色とマーカーの線の色を区別する方法はありますか?

このコードは、マーカーラインの色の変化を記録したときに作成されました

Sub Macro3()
'

    ' Macro3 Macro
    '
    '
        ActiveChart.SeriesCollection(2).Select
        With Selection.Format.Line
            .Visible = msoTrue
            .ForeColor.ObjectThemeColor = msoThemeColorAccent1
            .ForeColor.TintAndShade = 0
            .ForeColor.Brightness = 0
        End With
    End Sub

このコードは、マーカーを接続する線の色を変更して自分自身を記録したときに作成されました

Sub Macro4()
'
' Macro4 Macro
'
'
'Change the Line Color
    ActiveChart.SeriesCollection(2).Select
    With Selection.Format.Line
        .Visible = msoTrue
        .ForeColor.ObjectThemeColor = msoThemeColorAccent1
        .ForeColor.TintAndShade = 0
        .ForeColor.Brightness = 0
    End With
End Sub
9
Bob Smith

接続線の線の色はSeries.Format.Line.ForeColorです。マーカーラインの色はSeries.MarkerForegroundColorです。ただし、少なくともExcel 2007では、Series.Format.Line.ForeColorの設定に問題があります。例を参照してください:

Sub Macro3()
 Dim oChart As Chart
 Dim oSeries As Series

 Set oChart = ActiveChart
 Set oSeries = oChart.SeriesCollection(2)

 oSeries.Format.Line.Weight = 5 'Line.Weigth works ever

 oSeries.Format.Line.Visible = msoFalse 'for Line.ForeColor getting to work we have to cheat something
 oSeries.Format.Line.Visible = msoTrue
 oSeries.Format.Line.ForeColor.RGB = RGB(0, 255, 0) 'now it works

 oSeries.MarkerSize = 15
 oSeries.MarkerBackgroundColor = RGB(255, 0, 0) 'marker background

 oSeries.MarkerForegroundColor = RGB(0, 0, 255) 'marker foreground (lines around)
End Sub

ActiveChartは散布図です。そして、これはExcel 2007でテストされています。

18
Axel Richter

Excel 2013以降では、線の色は。Borderプロパティを使用して設定され、マーカーの色は.MarkerBackgroundColorおよび。MarkerForegroundColorプロパティ。

そのため、次のように白いマーカーが表示され、赤い境界線とそれらの間の黒い接続線が表示されます。

ActiveChart.SeriesCollection(1).Select
With Selection
    .Border.LineStyle = xlContinuous
    .Border.Color = RGB(0,0,0)
    .MarkerBackgroundColor = RGB(255, 255, 255)
    .MarkerForegroundColor = RGB(255, 0, 0)
End With

NB:Selection.Format.Line.Weightを使用する場合、これは両方に適用されることに注意してくださいデフォルトで境界線と接続線の太さ

4
Steve Taylor

使用できます

ActiveChart.SeriesCollection(1).MarkerForegroundColor = -2

0
Pramod Ghag