Excel VBA:创建与删除图表

ChartObjects 对象

由指定的图表工作表、对话框工作表或工作表上的所有 ChartObject 对象组成的集合。

说明

ChartObjects 集合

使用 ChartObjects(index)(其中index 是嵌入图表的索引号或名称)可以返回单个对象。以下示例设置名为“Sheet1”的工作表上嵌入图表 Chart 1 中的图表区图案。

Worksheets("Sheet1").ChartObjects(1).Chart. _
    CChartObjecthartArea.Format.Fill.Pattern = msoPatternLightDownwardDiagonal

ChartObject 对象

代表工作表上的嵌入图表。

说明

ChartObject 对象充当 Chart 对象的容器。ChartObject 对象的属性和方法控制工作表上嵌入图表的外观和大小。ChartObject 对象是 ChartObjects 集合的成员。ChartObjects 集合包含单一工作表上的所有嵌入图表。

示例
以下示例设置名为“Sheet1”的工作表上嵌入图表 Chart 1 中的图表区图案。

Worksheets("Sheet1").ChartObjects(1).Chart. _
    ChartArea.Format.Fill.Pattern = msoPatternLightDownwardDiagonal

当选定嵌入图表时,其名称显示在“名称”框中。使用 Name 属性可设置或返回 ChartObject 对象的名称。以下示例对工作表“Sheet1”上的嵌入图表“Chart 1”使用了圆角。

Worksheets("sheet1").ChartObjects("chart 1").RoundedCorners = True

ChartObject.Name 属性

返回一个 String 值,它代表对象的名称。

语法

表达式.Name

表达式   一个代表 ChartObject 对象的变量。

说明

此属性对图表对象(嵌入式图表)而言是只读的。

Chart 对象

代表工作簿中的图表。

说明

此图表既可以是嵌入的图表(包含在 ChartObject 对象中),也可以是单独的图表工作表。

示例部分中描述了以下用于返回 Chart 对象的属性和方法:

  • Charts 方法
  • ActiveChart 属性
  • ActiveSheet 属性

示例

Charts 集合包含工作簿中每个图表工作表的 Chart 对象。使用 Charts(index) 可以返回单个 Chart 对象,其中 index 为图表工作表的索引号或名称。图表索引号表示图表工作表在工作簿标签栏上的位置。Charts(1) 是工作簿中第一个(最左边的)图表;Charts(Charts.Count) 是最后一个(最右边的)图表。所有图表工作表均包括在索引计数中,即便是隐藏工作表也是如此。图表工作表名称显示在图表工作簿标签上。您可以使用 Name 属性设置或返回图表名称。本示例将更改第一张图表工作表中第一个系列的颜色。

Charts(1).SeriesCollection(1).Format.Fill.ForeColor.RGB = rgbRed

本示例将名为“Sales”的图表移至活动工作簿的尾部。

Charts("Sales").Move after:=Sheets(Sheets.Count)

Chart 对象也是 Sheets 集合的成员,此集合包含工作簿中的所有工作表(图表工作表和工作表)。使用 Sheets(index) 可以返回单个工作表,其中index 是工作表索引号或名称。

当图表是活动对象时,您可以使用 ActiveChart 属性引用它。如果用户选择了图表工作表,或者用 Chart 对象的 Activate 方法或 ChartObject 对象的 Activate 方法激活了它,则该图表工作表处于活动状态。本示例将激活图表工作表 1,然后设置图表类型和名称。

Charts(1).Activate
With ActiveChart
    .Type = xlLine
    .HasTitle = True
    .ChartTitle.Text = "January Sales"
End With

如果用户选择了嵌入图表,或者用 Activate 方法激活了包含该嵌入图表的 ChartObject 对象,则该嵌入图表处于活动状态。本示例将激活工作表 1 上的嵌入图表 1,然后设置图表类型和名称。请注意,在激活了嵌入图表之后,本示例中的代码与前一个示例中的代码相同。通过使用 ActiveChart 属性,您可以编写能够引用嵌入图表或图表工作表(视哪一个处于活动状态而定)的 Visual Basic 代码。

Worksheets(1).ChartObjects(1).Activate
ActiveChart.ChartType = xlLine
ActiveChart.HasTitle = True
ActiveChart.ChartTitle.Text = "January Sales"

 当图表工作表为活动工作表时,可以使用 ActiveSheet 属性来引用它。本示例使用 Activate 方法激活名为 Chart1 的图表工作表,然后将图表中系列 1 的内部颜色设置为蓝色。

Charts("chart1").Activate
ActiveSheet.SeriesCollection(1).Format.Fill.ForeColor.RGB = rgbBlue 

创建图表

使用 Add 方法可创建一个新的空嵌入图表并将它添加到集合中。使用 ChartWizard 方法可添加数据并设置新图表的格式。以下示例创建一个新嵌入图表,然后以折线图形式添加单元格 A1:A20 中的数据。

Dim ch As ChartObject
Set ch = Worksheets("sheet1").ChartObjects.Add(100, 30, 400, 250)
ch.Chart.ChartWizard source:=Worksheets("sheet1").Range("a1:a20"), _
    gallery:=xlLine, title:="New Chart"

ChartObjects.Add 方法

创建新的嵌入式图表。

语法

表达式.Add(Left, Top, Width, Height)

表达式   一个代表 ChartObjects 对象的变量。

参数

名称必选/可选数据类型说明
Left必选Double以磅为单位给出新对象的初始坐标,该坐标是相对于工作表上单元格 A1 的左上角或图表的左上角的坐标。
Width必选Double以磅为单位给出新对象的初始大小。

返回值
一个代表新嵌入式图表的 ChartObject 对象。

示例

此示例创建新的嵌入式图表。

Set co = Sheets("Sheet1").ChartObjects.Add(50, 40, 200, 100)
co.Chart.ChartWizard Source:=Worksheets("Sheet1").Range("A1:B2"), _
    Gallery:=xlColumn, Format:=6, PlotBy:=xlColumns, _
    CategoryLabels:=1, SeriesLabels:=0, HasLegend:=1

删除图表

使用 ChartObjects 方法返回 ChartObjects 集合。以下示例删除名为“Sheet1”的工作表上的所有嵌入图表。

Worksheets("sheet1").ChartObjects.Delete

Locked 属性不能使用 ChartObjects 集合来调用以下属性和方法:

  • Placement 属性
  • PrintObject 属性

与早期版本不同,ChartObjects 集合现在可以读取表示高度、宽度、左对齐和顶对齐的属性。

source:VBA Help

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值