更改所选图表的边框颜色

问题描述

如果我记录一个Excel宏以更改图表的边框颜色,则VBA返回

Sub change_bordercolor()
    With ActiveSheet.Shapes("Chart 1").Line
        .Visible = msoTrue
        .ForeColor.RGB = RGB(0,0)
        .Transparency = 0
    End With
End Sub

所以我想编写代码来更改"Chart 1"而不是如下图当前所选图表的边框颜色。

Sub change_bordercolor()
    Selection.ShapeRange.Line.ForeColor.RGB = RGB(0,0)
End Sub

,但这将返回438运行时错误。我需要在哪里更改以使用Selection而不是"Chart 1?

解决方法

要更改活动图表的边框颜色,您必须选择,可以使用以下代码:

Sub Macro1()

If Application.ActiveChart Is Nothing Then Exit Sub


With ActiveSheet.Shapes(Replace(Application.ActiveChart.Name,ActiveSheet.Name & " ","")).Line
    .Visible = msoTrue
    .ForeColor.RGB = RGB(0,255,0)
    .Transparency = 0
End With

End Sub

我已将其设置为将边框颜色更改为绿色,但是您可以根据需要进行调整。它是这样工作的:

enter image description here

它会更改活动所选图表的边框颜色。

,

这是一种更简单的方法:

Sub ChangeBorderColor()
  If Not ActiveChart Is Nothing Then
    With ActiveChart.ChartArea.Format.Line
      .Visible = msoTrue
      .ForeColor.RGB = RGB(0,0)
      .Transparency = 0
    End With
  End If
End Sub