《Excel VBA编程常用图表对象方法.docx》由会员分享,可在线阅读,更多相关《Excel VBA编程常用图表对象方法.docx(7页珍藏版)》请在三一办公上搜索。
1、Excel VBA编程 常用图表对象方法Excel VBA编程 常用图表对象方法 使用图表对象方法,可以为图表上的坐标轴添加标题;以及可以通过使用方法来设置图表对象的格式。本节主要介绍一些常用的图表对象方法的使用。 1Axes方法 Axes方法返回表示图表上单个坐标轴或坐标轴集合的某个对象,其语法为:expression.Axes(Type, AxisGroup) 其中,在该方法中包含以下几个参数,其功能如下: l l l expression 该表达式返回“应用于”列表中的一个对象。 Type 指定返回的坐标轴和公式的引用样式。 AxisGroup 指定公式的引用样式。 例如,使用以下代码为
2、分类轴添加坐标轴标签。 With Charts(1).Axes(xlCategory) .HasTitle = True .AxisTitle.Text = 姓名 End With 2ChartWizard方法 ChartWizard方法可以修改给定图表的属性,可以使用本方法快速设置图表的格式,而不必逐个设置所有属性。 语法:表达式.ChartWizard(Source, Gallery, Format, PlotBy, CategoryLabels, SeriesLabels, HasLegend, Title, CategoryTitle, ValueTitle, ExtraTitle)
3、在该方法中,主要包含以下几个参数,其功能如表17-2所示。 表17-2 ChartWizard方法中参数功能 参数 Source Gallery Format PlotBy CategoryLabels SeriesLabels HasLegend Title CategoryTitle ValueTitle ExtraTitle 功能 包含新图表源数据的区域。如果省略本参数,Excel将编辑活动图表工作表或活动工作表上处于选定状态的图表。 用于指定图表类型的XlChartType的常量之一。 内置自动套用格式的选项编号。可为从1到10的数字,如果省略此参数,Excel将根据库的类型和数据源选
4、择默认值。 指定每个系列的数据是来自行还是来自列。 指定包含分类标签的源范围内的行数或列数的整数。 指定包含系列标志的源范围内的行数或列数的整数。合法值为从0至小于相应分类或系列的最大个数间的某一数字。 若要包括图例,则为True。 图表标题文字。 分类轴标题文字。 数值轴标题文字。 三维图表的系列轴标题,或二维图表的次数值轴标题。 提 示 例如,重新设置Chart1的格式,将其改为折线图,添加图例,并添加分类轴标题和数值轴标题,其代码如下: Charts(Chart1).ChartWizard _ Gallery:=xlLine, _ 上述表格中的参数均为可选参数。但是,如果省略参数Sour
5、ce,并且选定内容不是活动工作表中的嵌入图表或者活动工作表中不包含图表,则该方法失效并产生错误。 HasLegend:=True, CategoryTitle:=Year, ValueTitle:=Sales 3Export方法 Export方法以图形格式导出图表。返回Boolean类型的值,其语法为:expression.Export(FileName, FilterName, Interactive)。 其中,在该方法中,各参数功能如下: l l l l Expression 必需参数,该表达式返回一个Chart对象。 FileName 必需参数,表示被导出的文件的名称。 FilterNa
6、me 可选参数,表示图形的文件类型。 Interactive 可选参数。若该值为True,则显示包含过滤器特定选项的对话框。如果该值为False,将使用过滤器的默认选项值。 例如,将图表导出为GIF文件,其代码如下: myChart.Export Filename:=current_sales.gif, FilterName:=GIF 4Location方法 Location方法将图表移动到新位置,其语法为:表达式.Location(Where, Name) 其中,在该方法中包含两个参数,其功能如下: l l Where 必选参数,表示图表移动的目标位置。 Name 如果Where为xlLoc
7、ationAsObject,则该参数为必选参数。如果Where为xlLocationAsObject,则该参数为嵌入该图表的工作表的名称。如果Where为xlLocationAsNewSheet,则该参数为新工作表的名称。 例如,下面将嵌入图表移至新图表工作表“图表工作表”中,其代码如下: Worksheets(1).ChartObjects(1).Chart.Location xlLocationAsNewSheet, 图表工作表 章节中已经作过介绍,这里不再进行讲解。 提 示 5SeriesCollection方法 SeriesCollection方法指定图表或图表组中所有Series对象
8、的集合,用户可以用其进行添加数据系列和创建系列等,下面介绍SeriesCollection方法的功能: l Add 向SeriesCollection集合添加一个或多个新数据系列。 语法:表达式.Add(Source, Rowcol, SeriesLabels, CategoryLabels, Replace) 在该方法中,包含如下几个参数,其功能如下表17-3所示: 表17-3 Add方法参数功能表 名称 Source Rowcol SeriesLabels 功能 作为Range对象的新数据。 指定新值是位于指定区域的行中还是列中。 如果第一行或第一列包含数据系列的名称,则为True。如果第
9、一行或第一列包含数据系列的第一个数据点,则为False。如果省略此参数,Excel就根据第一行或第一列中的内容确定系列名称的位置。 如果第一行或第一列包含分类标签的名称,则为True。如果第一行或第一列包含数据系列的第一个数据点,则为False。如果省略此参数,Excel就根据第一行或第一列中的内容确定分类标签的位置。 如果CategoryLabels为True且Replace为True,那么指定的分类将替换当前系列中存在的分类。如果Replace为False,现有的分类将保留,默认值为False。 常用的图表方法还包括SetSourceData方法,该方法在介绍“使用VBA创建图表”Cate
10、goryLabels Replace 例如,为工作表Sheet1上的嵌入式图表,新建一个数据系列,其代码如下: Worksheets(Sheet1).ChartObjects(1).Activate ActiveChart.SeriesCollection.Add Source:=Worksheets(Sheet1).Range(B1:B10) l Extend 向已存在的系列集合中添加新的数据点。 语法:表达式.Extend(Source, Rowcol, CategoryLabels) 例如,将工作表Sheet1中B1至B6单元格区域中的数据添加到Chart1中,以增加其中的系列。 Cha
11、rts(Chart1).SeriesCollection.Extend Source:=Worksheets(Sheet1).Range(B1:B6) l Item 从集合中返回一个对象。 语法:表达式.Item(Index) 其中,参数Index表示对象的名称或索引号。 例如,对Chart1中的趋势线向前和向后延伸的单位数进行设置,即在包含单个带趋势线系列的二维柱形图上运行,其代码如下: With Charts(Chart1).SeriesCollection.Item(1).Trendlines.Item(1) .Forward = 5 .Backward = .5 End With l
12、NewSeries 创建新系列。返回代表该新系列的Series对象。 语法:表达式.NewSeries 其中,在该方法中,如果NewSeries为True,则将数据作为新系列粘贴。如果为False,则将数据作为现有系列的新数据点粘贴。 例如,向第一个图表中添加新系列,其代码如下: Set ns = Charts(1).SeriesCollection.NewSeries l Paste 将剪贴板中的数据粘贴到指定的系列集合中。 表达式.Paste(Rowcol, SeriesLabels, CategoryLabels, Replace, NewSeries) 例如,将剪贴板中的数据粘贴到Ch
13、art1图表的新数据系列中,其代码如下: Worksheets(Sheet1).Range(C1:C5).Copy Charts(Chart1).SeriesCollection.Paste 6SetElement方法 SetElement方法表示设置图表上的图表元素,其语法为:表达式.SetElement(Element)。 其中,参数Element为必选参数,表示指定图表元素类型。 例如,使用不同常量值向活动图表添加图表元素。 Sub 更改图表元素 ActiveChart.Axes(xlValue).MajorGridlines.Select ActiveChart.SetElement (msoElementChartTitleCenteredOverlay) ActiveChart.SetElement (msoElementPrimaryCategoryGridLinesMinor) ActiveChart.Walls.Select ActiveChart.SetElement (msoElementChartFloorShow) End Sub 例如,运行上述代码,则可以得到如图17-9所示的效果。 图表背景墙 图17-9 运行前后效果
链接地址:https://www.31ppt.com/p-3156724.html