VBA 图表的基本操作(二)

今天继续讲讲VBA图表的相关操作

一、在图表工作表上创建图表(看起来有点拗口,也就是在Chart上创建一个图表)

插入图表的方式:打开工作簿后,对着sheet点一下右键——插入——选择图表。

 

①昨天主要是讲了VBA创建在sheet上面的图表,如果单独在Chart上创建图表的话,用Charts的add2方法就可以了:

    Charts.Add2

②创建完了如果需要引用数据的话,可以和昨天一样引用数据:

Sub demo()
    Dim myChart As Chart
    Set myChart = Charts.Add2
    myChart.SetSourceData Source:=Sheets("Sheet1").Range("A1").CurrentRegion
    myChart.ChartType = xlColumnClustered
End Sub

需要注意的是,上述在引用数据源的时候,我是用的Sheets("Sheet1"),而不是常用的Sheets(1),这是因为新建了myChart后呢,它是自动往前面插入的,Sheets(1)就变成了图表,而不是原来的数据的那张表。

③如果先将区域值内的值赋值,再新建Chart就不用担心Sheet(1)引用不到了,可以这样写:

Sub demo()
    Dim myChart As Chart
    Dim myRng As Range
    
    '先将原数据进行赋值,这样创建Chart后即使Chart是Sheet(1)也就不会报错啦
    Set myRng = Sheets(1).Range("A1").CurrentRegion
    Set myChart = Charts.Add2
    myChart.SetSourceData Source:=myRng
    myChart.ChartType = xlColumnClustered
End Sub

当然了,也可以简单点,Chart新建时用after参数将新建的Chart表格位置放在Sheet1后面,同样不会报错

Sub demo()
    Charts.Add2 after:=Sheets(Sheets.Count)
    Sheets("Chart1").SetSourceData Source:=Sheets("Sheet1").Range("A1").CurrentRegion
End Sub

二、修改图表

 

①在插入了图表后,点一下图表,在右上角会出现3个可以点的按钮:

1.图表元素 ChartElements,给图表添加或删除元素

2.图表样式 Style&Color,选择图表样式或调色板的颜色

3.图表筛选器: Chart Filters,隐藏序列或数据点

②VBA控制图表元素的话,主要是通过SetElement属性,代码如下:

    myChart.SetElement msoElementPrimaryValueGridLinesMajor

SetElement具体的每个属性可以参考这个链接:

https://docs.microsoft.com/zh-cn/office/vba/api/office.msochartelementtype

VBA控制图表样式的话,主要是通过ChartStyle和ChartColror属性,代码如下:

ChartStyle数字有效值是1~48和201~248

    myChart.ChartStyle = 248

ChartColor数字有效值是1~26

    myChart.ChartColor = 26

VBA控制图表筛选器的话,系列主要用myChart.FullSeriesCollection(2).IsFiltered进行过滤;类别主要是ChartGroups(1).FullCategoryCollection(i).IsFiltered进行过滤,值为True则不显示,代码如下:

    For i = 1 To 1
        myChart.FullSeriesCollection(i).IsFiltered = True
    Next
    For j = 1 To 10
        myChart.ChartGroups(1).FullCategoryCollection(j).IsFiltered = False
    Next

三、激活和取消激活

①激活图表

如果是单独的Chart图表可以这样:

    Sheets("Chart1").Activate

如果是在sheet里面的图表可以这样:

    Sheets("sheet1").ChartObjects(1).Activate

②取消激活

取消激活比较简单,随便点一下其他地方就取消激活了,所以可以这样:

Sheets("sheet1").Range("A1").Select

四、移动图表

还是拿前面的例子来说,假设需要把myChart进行移动

    '将Sheet1上的图表移动到存在的Sheet2上
    'myChart.Location where:=xlLocationAsObject, Name:="Sheet2"
    '将Sheet1上的图表移动准备新建的Sheet3上
    'myChart.Location where:=xlLocationAsNewSheet, Name:="Sheet3"
    '将Sheet1上的图表交给EXCEL处理
    'myChart.Location where:=xlLocationAutomatic

名称

描述

xlLocationAsNewSheet

1

将图表移动到新工作表

xlLocationAsObject

2

将图表嵌入现有工作表

xlLocationAutomatic

3

由 Excel 控制图表位置

今天就先到这里啦,明天继续~


版权声明:本文为Di77HaoWenMing原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。