Excel VBA 线条颜色/标记线条颜色 [英] Excel VBA Line Color / Marker Line Color

查看:127
本文介绍了Excel VBA 线条颜色/标记线条颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编写一些 VBA 代码来修改 Excel 图表.对于散点图,我需要修改标记线颜色,有时还需要修改连接线的线条颜色.我可以手动执行这两项操作,但是当我录制宏时,尽管结果非常不同,但两个操作都会产生相同的代码.

I'm writing some VBA code to modify Excel charts. For a scatter chart I need to modify the marker line colour and sometimes the line colour of the connecting lines. I can do both manually but when I record a Macro, both actions result in the same code despite the results being very different.

知道如何区分代码中的线条颜色和标记线条颜色吗?

Any idea how to distinguish between a line colour and a marker line colour in code?

这段代码是在我记录自己改变标记线颜色时创建的

This code was created when I recorded myself changing colour of the marker lines

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

这段代码是在我记录自己改变连接标记的线的颜色时创建的

This code was created when I recorded myself changing the color of the line connecting the markers

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

推荐答案

连接线的线条颜色为Series.Format.Line.ForeColor.标记线颜色为 Series.MarkerForegroundColor.但至少在 Excel 2007 中,设置 Series.Format.Line.ForeColor 存在问题.见示例:

The line colour of the connecting lines is Series.Format.Line.ForeColor. The marker line colour is Series.MarkerForegroundColor. But at least with Excel 2007 there is a problem with setting Series.Format.Line.ForeColor. See example:

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 测试的.

The ActiveChart is a scatter chart. And this is tested with Excel 2007.

这篇关于Excel VBA 线条颜色/标记线条颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆