VBA与Excel进阶系列-02-图表(中篇)

系统:Windows 7
软件:Excel 2010web

  • 这个系列做为入门篇的下一篇,稍微进阶一下,嘿嘿
  • 今天继续VBA对图表的操做,折线图做为示例
  • 研究研究着发现VBA中对象的概念简直醉

Part 1:目标

  1. 为了方便调试,写了一段代码自动删除全部图表
  2. 完成对一个折线图其中的一条线进行设置
    • 线条颜色设置
    • 线型设置
    • 数据标记选项设置
    • 数据标记填充
    • 标记线颜色设置
  3. 总体代码的设置,采用手动设置的话,可选中需设置线条,右键设置数据系列格式便可,以下图

右键效果
这里写图片描述sql

最终运行后效果
这里写图片描述微信

Part 2:代码

Sub test()
    Set sht1 = ThisWorkbook.Worksheets("示例")
    x = sht1.Range("I1").Left
    y = sht1.Range("I1").Top
    w = sht1.Range("I1").Width
    h = sht1.Range("I1").Height
    Set ch1 = sht1.ChartObjects.Add(x, y, w, h)

    'chart方法
    ch1.Chart.SetSourceData Source:=sht1.Range("A2:G4")
    ch1.Chart.SetElement (msoElementDataLabelOutSideEnd)
    ch1.Chart.SetElement (msoElementChartTitleNone)
    ch1.Chart.SetElement (msoElementLegendTop)

    'chart属性
    ch1.Chart.ChartType = xlLineMarkers

    Set line1 = ch1.Chart.SeriesCollection("y")

    '设置其中的一条线
    With line1
        .MarkerStyle = xlMarkerStyleCircle
        .MarkerSize = 7
    End With

    With line1.Format.Line  '设置线条颜色
        .Visible = msoTrue
        .ForeColor.RGB = RGB(255, 0, 0) '红色
        .DashStyle = msoLineDash
        .Weight = 3
    End With

    '设置标记线颜色及填充色
    line1.MarkerForegroundColor = RGB(0, 255, 0) '标记线颜色
    line1.MarkerBackgroundColor = RGB(0, 0, 0)  '填充色

End Sub

代码截图
这里写图片描述ide

Part 3:部分代码解读

  1. Set line1 = ch1.Chart.SeriesCollection("y")效果的话,相似选中其中的一条线,其中的y为其图例名称
  2. MarkerStyle设置数据标记选项,常见的选项以下图
  3. line1.MarkerForegroundColor设置标记线颜色,即线条中那个圆圈外圆的颜色
  4. line1.MarkerBackgroundColor设置标记填充色,即线条中那个圆圈圆内的填充颜色
  5. DashStyle = msoLineDash设置线型
  6. Weight = 3设置线的宽度
  7. 对于标记的外圆的线条会默认保持与线条的线型与宽度一致

数据标记选项
这里写图片描述svg

Part 4:删除图表

  1. 文章中有些知识,我以前也是不知的,须要不断尝试,因此会画了不少图表,就想能不能一次清除,因此就有下面的代码
  2. 代码以下
Sub 清除()
    Set sht1 = ThisWorkbook.Worksheets("示例") n = sht1.ChartObjects.Count If n > 0 Then sht1.ChartObjects.Delete End If End Sub

以上为本次的学习内容,下回见学习

本文为原创做品,如若转载请标明出处,如发现有错误,欢迎留言指出spa


更多原创请关注微信公众号调试

扫描二维码,关注公众号
让重复工做一键化,让时间更有意义code

这里写图片描述