马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
- Sub ChartAdd()- z, C/ g' L Q! u
- Dim myRange As Range
# c, A5 M' D7 Z4 i; K9 J5 b7 X - Dim myChart As ChartObject
4 s. C$ |% d, U3 u/ n# z( ]8 D - Dim R As Integer2 a. \( V- E6 H# O. ~! D) p9 h
- With Sheet16 y7 s$ ^( q( f, _$ ~0 x
- .ChartObjects.Delete9 X- U b" J2 h0 ?/ t% I$ g
- R = .Range("A65536").End(xlUp).Row4 C( K% G! ]8 Y0 E* A
- Set myRange = .Range("A" & 1 & ":B" & R)- w4 M$ r: g5 K% S
- Set myChart = .ChartObjects.Add(120, 40, 400, 250)
3 P+ y- ~/ S+ k1 _5 Q - With myChart.Chart4 I) Z1 p# C4 S# U& l
- .ChartType = xlColumnClustered- ]$ G* l5 w, w) n
- .SetSourceData Source:=myRange, PlotBy:=xlColumns9 b. k4 g( U2 {$ C8 U0 n
- .ApplyDataLabels ShowValue:=True
0 u" }9 }# k a" }5 s8 } - .HasTitle = True
7 r0 c, g! c: n0 n: w - .ChartTitle.Text = "图表制作示例"1 }' Y7 D7 h* J7 I+ _9 u
- With .ChartTitle.Font
+ g: }' V5 |% @% P( \3 c - .Size = 20
2 h$ f# D& \. A$ f( ~ - .ColorIndex = 3, n4 n. N3 d/ f2 e# ~( G Y
- .Name = "华文新魏"6 D" o! s H4 A: p
- End With- j6 v4 u* p2 D; L% C
- With .ChartArea.Interior* j+ O, P& b4 r$ W
- .ColorIndex = 8
5 Y( Z1 v! o% G+ f - .PatternColorIndex = 1
7 r& _( i3 C' P! q: W - .Pattern = xlSolid8 g: ~( w( e1 X7 v" ]# {
- End With
+ u z4 y% b9 j* Y - With .PlotArea.Interior" m; L2 F: E0 P: x. H
- .ColorIndex = 35 x1 i: L; f# n1 X
- .PatternColorIndex = 1- m! s' B- U# E0 ]9 |+ m8 t' T
- .Pattern = xlSolid0 d9 G: L p7 i. U
- End With) B [& m1 ^2 l9 ^- N$ S# Y8 e4 ]) C2 b
- .SeriesCollection(1).DataLabels.Delete
: E: f. F7 q) @" Y- K% B8 n2 A - With .SeriesCollection(2).DataLabels.Font3 `6 q) _8 }4 w# Z% k0 @
- .Size = 10
; A0 S" ?1 m/ t/ v2 j( K# m! X - .ColorIndex = 5& M& a4 z* \1 s* ?: t9 F
- End With
; F2 F% @+ e' F, l3 m - End With# I8 C1 S4 @ b+ e/ g
- End With) D. u u* L& `% ^! {, e+ O/ k2 l
- Set myRange = Nothing% a3 o6 Q1 C l) m& M! y
- Set myChart = Nothing+ t- ^# B! u9 d! |5 N/ ?
- End Sub
复制代码 ) [) \- J0 _+ r
' A7 ^# Q l. }* [; [4 T
代码解析:
* B6 q, N8 V. n' o# h" {) \ChartAdd过程在工作表中自动生成图表,图表类型为簇状柱形图。. W, Z+ P& f1 j5 _& Z! C$ J+ ^
第6行代码使用Delete方法删除工作表中已经存在的图表,而ChartObjects方法返回代表工作表中单个嵌入图表(ChartObject对象)或所有嵌入图表的集合(ChartObjects对象)的对象,语法如下:( X c5 e9 t: C. U
expression.ChartObjects(Index)* z3 I7 M! G4 M A4 g( Y5 _" F
其中参数Index是可选的,指定图表的名称或号码。该参数可以是数组,用于指定多个图表,因为示例中只有一个图表,所以无需指定其Index参数。' d9 ?6 a. n$ N* E( f$ c6 S
第8行代码指定图表的数据源。* A( ^, m2 \2 h; }6 V$ M9 p
第9行代码使用Add方法创建一个新图表,应用于ChartObjects对象的Add方法创建新的嵌入图表,语法如下:
9 H p7 Z: W0 }5 T; mexpression.Add(Left, Top, Width, Height)
1 V d @; u% G参数Left、Top是必需的,以磅为单位给出新对象的初始坐标,该坐标是相对于工作表上单元格A1的左上角或图表的左上角的坐标。
$ S- R' N% R% L. ?4 p* E6 o0 C3 C. z参数Width、Height是必需,以磅为单位给出新对象的初始大小。
1 C% k& }. P3 ^+ d2 ^! {第10行代码使用Chart属性返回新创建的图表,应用于ChartObject对象的Chart属性返回一个Chart对象,该对象代表指定对象所包含的图表。
/ Z& M% {7 `' W9 k* M4 h第11行代码指定新创建图表的图表类型,应用于Chart对象的ChartType属性返回或设置图表的类型,可以为XlChartType常量之一,具体请参阅VBA帮助。本例中设置为xlColumnClustered即图表类型为簇状柱形图。4 }5 |! U8 W4 Z: x N
第12行代码指定图表的数据源和绘图方式,应用于Chart对象的SetSourceData方法为指定图表设置源数据区域,语法如下:4 g2 T3 H" t7 @( d# |' ~
expression.SetSourceData(Source, PlotBy)3 a# P1 d+ a/ v
参数expression是必需的,该表达式返回一个Chart对象。
3 A e) p0 c" _; }1 T参数Source是可选的,源数据的区域。* y8 s( q/ p% \: l
参数PlotBy是可选的,指定数据绘制方式,可为xlColumns(系列产生在列)或xlRows(系列产生在行)。
0 e7 c" m" F% W' ~第13行代码使用ApplyDataLabels方法使图表显示数据标签和数据点的值,应用于Chart对象的ApplyDataLabels方法将数据标签应用于图表中的某一数据点、某一数据系列或所有数据系列,语法如下:* ?$ t" n2 M$ F, a4 s
expression.ApplyDataLabels(Type, LegendKey, AutoText, HasLeaderLines, ShowSeriesName, ShowCategoryName, ShowValue, ShowPercentage, ShowBubbleSize, Separator)
: Z& L) D: ?7 y参数expression是必需的,该表达式返回一个Chart对象。) }' A5 l' p% B: H" t, y
参数Type是可选的,要应用的数据标签的类型,可为表格 60 1所列的XlDataLabelsType 常量之一9 I0 f7 ^7 q! t9 T6 g6 c* v
第14、15行代码设置新创建的图表有可见的标题并设置图表标题的文字。应用于Chart对象的HasTitle属性,如果坐标轴或图表有可见标题,则该值为True,而ChartTitle属性返回一个ChartTitle对象,代表指定图表的标题。 第16行到第20行代码设置图表标题文字的格式。 第21行到第25行代码设置图表区的颜色。 第26行到第30行代码设置绘图区的颜色。 第31行代码删除图表上第一个数据系列中的数据标签。SeriesCollection方法返回图表或图表组中单个数据系列(Series对象)或所有数据系列的集合(SeriesCollection集合)的对象,语法如下: expression.SeriesCollection(Index) 可选的Index参数指定数据系列的名称或编号。 而DataLabels方法则返回代表数据系列中的单个数据标签(DataLabel对象)或所有数据标签的集合(DataLabels集合)的对象,语法如下: expression.DataLabels(Index) 可选的Index参数指定数据系列中的数据标签的编号。 第32行到第36行代码设置图表上第二个数据系列中的数据标签的字体格式。 运行ChartAdd过程,在工作表中创建簇状柱形图,如图 60 - 1 所示/ q _: f# d7 r
|