Excel VBA - 如何为图表系列设置线条样式?

4
我希望图表中的折线可以根据用户指定的某些条件变成实心、圆点或方点。使用宏可以成功地设置绘图的线条颜色和标记样式,但我找不到保存绘图线条样式属性值的对象。尝试使用记录宏功能,但在属性窗口中更改线条样式不会显示在代码中,运行录制的宏也没有效果。
非常感谢您的帮助!
3个回答

6
YourChartSeries.Border.LineStyle = [some value from the XlLineStyle enumeration]

更新:在使用XL 2010进行录制时,我得到了这个结果 -
ActiveChart.SeriesCollection(1).Select
With Selection.Format.Line
    .Visible = msoTrue
    .DashStyle = msoLineSysDot
End With
ActiveChart.SeriesCollection(2).Select
With Selection.Format.Line
    .Visible = msoTrue
    .DashStyle = msoLineSysDash
End With

也许这正是您在寻找的内容。

我尝试在Excel中手动设置线条样式,并使用以下代码: MsgBox (CurrentChart.SeriesCollection(1).Border.LineStyle) 无论线条是方点、圆点、虚线等,它都会返回-4105的值。 - user1130306
你的问题有些混淆 - 你是在询问连接标记的线条还是标记本身?请更新你的问题并提供任何你已经拥有的代码:这将有助于获得有用的答案。 - Tim Williams
如果您手动右键点击绘制的系列并在“线条样式”下单击“格式化数据系列...”,则可以更改短划线类型。我想能够在我的程序中将数据系列线路格式化为“圆点”和“方点”。然而,XLineStyle枚举没有提供这些划痕选项。后来我决定放弃“方点”和“圆点”样式,改用XlContinuous、XlDot和XlDash。虽然不像方点和圆点那么漂亮,但它可以完成工作。 - user1130306

4
创建一个包含255个数据系列的图表,运行代码(并进行其他必要的格式设置)。然后将其保存为模板。
Sub dd()

Dim wb As Workbook
Set wb = Application.ActiveWorkbook

Dim myChart As Chart
Set myChart = wb.Charts("Chart5")

Dim mySeries As series

For Each mySeries In myChart.SeriesCollection
    mySeries.Format.Line.Weight = 1#
Next

End Sub

1
如果您有一条线图,我最终创建了一个switch语句,因为我无法弄清如何创建一个“名称”变量的数组。请参见此处列出的线类型列表
For j = i To num_lines_to_plot
        count = count + 1
        ActiveChart.SeriesCollection.NewSeries
        With ActiveChart.SeriesCollection(j)
            .Name = _
                "='"**... (you'll need to fill this in)**
            'create gradient
            .Format.Line.ForeColor.RGB = RGB(255, 20 * count, 0)
            'modify linetype
            If count > 4 Then
                line_type = count Mod 4
            Else
                line_type = count
            End If

            Select Case line_type
                Case Is = 1
                    .Format.Line.DashStyle = msoLineSolid
                Case Is = 2
                    .Format.Line.DashStyle = msoLineSquareDot
                Case Is = 3
                    .Format.Line.DashStyle = msoLineDash
                Case Is = 4
                    .Format.Line.DashStyle = msoLineLongDash
                End Select

        End With
    Next

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接