大家好,今日继续上一讲的内容,也是VBA代码方案的第三十五讲,继续讲使用VBA代码自动生成图表的下半部分。在上一讲中我们讲了基本的方法,今日就利用这些方法来完成我们的任务,为此,我写了下面的35行代码: Sub MyChartAdd() 2 Dim myRange As Range 3 Dim myChart As ChartObject 4 Dim MR As Integer 5 Sheets('Sheet1').Select 6 MR = Range('A1048576').End(xlUp).Row 7 Set myRange = Sheets('Sheet1').Range('A' & 1 & ':F' & MR) 8 Set myChart = Sheets('Sheet1').ChartObjects.Add(120, 40, 400, 250) 9 myChart.Chart.ChartType = xlColumnClustered 10 myChart.Chart.SetSourceData Source:=myRange, PlotBy:=xlColumns 11 myChart.Chart.ApplyDataLabels ShowValue:=True 12 myChart.Chart.HasTitle = True 13 myChart.Chart.ChartTitle.Text = '我的图表' 14 With myChart.Chart.ChartTitle.Font 15 .Size = 20 16 .ColorIndex = 3 17 .Name = '华文新魏' 18 End With 19 With myChart.Chart.ChartArea.Interior 20 .ColorIndex = 8 21 .PatternColorIndex = 1 22 .Pattern = xlSolid 23 End With 24 With myChart.Chart.PlotArea.Interior 25 .ColorIndex = 35 26 .PatternColorIndex = 1 27 .Pattern = xlSolid 28 End With 29 With myChart.Chart.SeriesCollection(2).DataLabels.Font 30 .Size = 10 31 .ColorIndex = 5 32 End With 33 Set myRange = Nothing 34 Set myChart = Nothing 35 End Sub 代码解析: MyChartAdd过程在工作表中自动生成图表,图表类型为簇状柱形图。 a) 第6行代码取得数据范围的最关键的数据. b) 第7行代码指定图表的数据源。 c) 第8行代码使用Add方法创建一个新图表, d) 第9行代码指定新创建图表的图表类型,应用于Chart对象的ChartType属性返回或设置图表的类型,可以为XlChartType常量之一,本例中设置为xlColumnClustered即图表类型为簇状柱形图。 e) 第10行代码指定图表的数据源和绘图方式, f) 第11行代码使用ApplyDataLabels方法使图表显示数据标签和数据点的值, g) 第12到13行代码设置新创建的图表有可见的标题并设置图表标题的文字。应用于Chart对象的HasTitle属性,如果坐标轴或图表有可见标题,则该值为True,而ChartTitle属性返回一个ChartTitle对象,代表指定图表的标题。 h) 第14行到第18行代码设置图表标题文字的格式。 i) 第19行到第23行代码设置图表区的颜色。 j) 第24行到第28行代码设置绘图区的颜色。 k) 第31行代码删除图表上第一个数据系列中的数据标签。 l) 第29行到第32行代码设置图表上第二个数据系列中的数据标签的字体格式。 代码窗口: 数据窗口: 运行ChartAdd过程,在工作表中创建簇状柱形图,如图所示: 今日内容回向: 1 对上面的35行代码是否理解呢? |
|