Pertanyaan Excel VBA Line Color / Marker Line Color


Saya sedang menulis beberapa kode VBA untuk mengubah grafik Excel. Untuk diagram pencar, saya perlu memodifikasi warna garis penanda dan terkadang warna garis dari garis penghubung. Saya bisa melakukan keduanya secara manual tetapi ketika saya merekam Makro, kedua tindakan menghasilkan kode yang sama meskipun hasilnya sangat berbeda.

Tahu bagaimana membedakan antara warna garis dan warna garis penanda dalam kode?

Kode ini dibuat ketika saya merekam sendiri mengubah warna garis penanda

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

Kode ini dibuat ketika saya merekam sendiri mengubah warna garis yang menghubungkan penanda

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

7
2018-04-16 13:00


asal


Jawaban:


Warna garis dari garis penghubung adalah Series.Format.Line.ForeColor. Warna garis penanda Series.MarkerForegroundColor. Tetapi setidaknya dengan Excel 2007 ada masalah dengan pengaturan Series.Format.Line.ForeColor. Lihat contoh:

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 adalah bagan sebar. Dan ini diuji dengan Excel 2007.


13
2018-04-16 14:26



Dari Excel 2013, warna garis dan warna garis penanda mudah dibedakan, karena warna Garis diatur menggunakan .Berbatasan properti, sementara warna Marker disetel menggunakan .MarkerBackgroundColor dan .MarkerForegroundColor properti.

Jadi berikut ini akan memberi Anda spidol putih, dengan perbatasan merah dan garis penghubung hitam di antara mereka:

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: Jika Anda menggunakan Selection.Format.LineWeight, perhatikan ini berlaku untuk kedua perbatasan dan menghubungkan ketebalan garis secara default


2
2017-11-08 11:47



Anda bisa menggunakannya

ActiveChart.SeriesCollection (1) .MarkerForegroundColor = -2


0
2018-03-10 09:28