ExcelVBA处理图形图表大全剖析Word格式文档下载.docx
《ExcelVBA处理图形图表大全剖析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《ExcelVBA处理图形图表大全剖析Word格式文档下载.docx(43页珍藏版)》请在冰豆网上搜索。
Trendlines和ErrorBar
二、图表类型
Excel标准图表类型
图表类型
描述
ExcelVBA常量
柱形图
簇状柱形图
3D簇状柱形图
堆积柱形图
3D堆积柱形图
百分比堆积柱形图
3D百分比堆积柱形图
3D柱形图
xlColumnClustered
xl3DColumnClustered
xlColumnStacked
xl3DColumnStacked
xlColumnStacked100
xl3DColumnStacked100
xl3DColumn
条形图
簇状条形图
3D簇状条形图
堆积条形图
3D堆积条形图
百分比堆积条形图
3D百分比堆积条形图
xlBarClustered
xl3DBarClustered
xlBarStacked
xl3DBarStacked
xlBarStacked100
xl3DBarStacked100
折线图
数据点折线图
堆积折线图
堆积数据点折线图
百分比堆积折线图
百分比堆积数据点折线图
3D折线图
xlLine
xlLineMarkers
xlLineStacked
xlLineMarkersStacked
xlLineStacked100
xlLineMarkersstacked100
xl3DLine
饼图
别离型饼图
3D饼图
别离型3D饼图
复合饼图
复合条饼图
xlPie
xlPieExploded
xl3DPie
xl3DPieExploded
xlPieOfPie
xlBarOfPie
XY(散点)图
散点图
平滑线散点图
无数据点平滑线散点图
折线散点图
无数据点折线散点图
xlXYScatter
xlXYScatterSmooth
xlXYScatterSmoothNoMarkers
xlXYScatterLines
xlXYScatterLinesNoMarkers
气泡图
3D气泡图
xlBubble
xlBubble3DEffect
面积图
3D面积图
堆积面积图
3D堆积面积图
百分比堆积面积图
3D百分比堆积面积图
xlArea
xl3DArea
xlAreaStacked
xl3DAreaStacked
xlAreaStacked100
xl3DAreaStacked100
圆环图
别离型圆环图
xlDoughnut
xlDoughnutExploded
雷达图
数据点雷达图
填充雷达图
xlRadar
xlRadarMarkers
xlRadarFilled
曲面图
3D曲面图
曲面图(俯视)
3D曲面图(框架图)
曲面图(俯视框架图)
xlSurface
xlSurfaceTopView
xlSurfaceWireframe
xlSurfaceWireframeTopView
股价图
盘高-盘低-收盘图
成交量-盘高-盘低-收盘图
开盘-盘高-盘低-收盘图
成交量-开盘-盘高-盘低-收盘图
xlStockHLC
xlStockVHLC
xlStockOHLC
xlStockVOHLC
圆柱图
柱形圆柱图
条形圆柱图
堆积柱形圆柱图
堆积条形圆柱图
百分比堆积柱形圆柱图
百分比堆积条形圆柱图
3D柱形圆柱图
xlCylinderColClustered
xlCylinderBarColClustered
xlCylinderColStacked
xlCylinderBarStacked
xlCylinderColStacked100
xlCylinderBarStacked100
xlCylinderCol
圆锥图
柱形圆锥图
条形圆锥图
堆积柱形圆锥图
堆积条形圆锥图
百分比堆积柱形圆锥图
百分比堆积条形圆锥图
3D柱形圆锥图
xlConeColClustered
xlConeBarClustered
xlConeColStacked
xlConeBarStacked
xlConeColStacked100
xlConeBarStacked100
xlConeCol
棱锥图
柱形棱锥图
条形棱锥图
堆积柱形棱锥图
堆积条形棱锥图
百分比堆积柱形棱锥图
百分比堆积条形棱锥图
3D柱形棱锥图
xlPyramidColClustered
xlPyramidBarClustered
xlPyramidColStacked
xlPyramidBarStacked
xlPyramidColStacked100
xlPyramidBarStacked100
xlPyramidCol
vba图表常用命令
ActiveSheet.UsedRange.Rows.Count
获取工作表的行数(注:
考虑向前兼容性)
Cells.Item(5,"
C"
)
引单元格C5
Cells.Item(5,3)
Application.WorksheetFunction.IsNumber("
A1"
使用工作表函数检查A1单元格中的数据是否为数字
Range("
A:
A"
).Find(Application.WorksheetFunction.Max(Range("
))).Activate
激活单元格区域A列中最大值的单元格
Cells(8,8).FormulaArray="
=SUM(R2C[-1]:
R[-1]C[-1]*R2C:
R[-1]C)"
在单元格中输入数组公式。
注意必须使用R1C1样式的表达式
ActiveSheet.ChartObjects.Count
获取当前工作表中图表的个数
ActiveSheet.ChartObjects("
Chart1"
).Select
选中当前工作表中图表Chart1
).Activate
选中当前图表区域
ActiveChart.ChartArea.Select
WorkSheets("
Sheet1"
).ChartObjects("
Chart2"
).Chart.ChartArea.Interior.ColorIndex=2
更改工作表中图表的图表区的背景颜色
Sheets("
).ChartArea.Interior.ColorIndex=2
更改图表工作表中图表区的颜色
Charts.Add
添加新的图表工作表
ActiveChart.SetSourceDataSource:
=Sheets("
).Range("
A1:
D5"
),PlotBy:
=xlColumns
指定图表数据源并按列排列
ActiveChart.LocationWhere:
=xlLocationAsNewSheet
新图表作为新图表工作表
ActiveChart.PlotArea.Interior.ColorIndex=xlNone
将绘图区颜色变为白色
).ChartObjects
(1).Chart.ExportFileName:
="
C:
MyChart.gif"
FilterName:
GIF"
将图表1导出到C盘上并命名为MyChart.gif
ActiveSheet.ChartObjects.Delete
删除工作表上所有的ChartObject对象
ActiveWorkbook.Charts.Delete
删除当前工作簿中所有的图表工作表
∙
Excel中的VBA常量和编码值所代表的标准图表类型图表类型——描述——ExcelVBA常量——编码值(注:
下面按此顺序排列)——————————————————————————柱形图—簇状柱形图—xlColumnClustered—51
3D簇状柱形图—xl3DColumnClustered—54
堆积柱形图—xlColumnStacked—52
3D堆积柱形图—xl3DColumnStacked—55
百分比堆积柱形图—xlColumnStacked100—53
3D百分比堆积柱形图—xl3DColumnStacked100—56
3D柱形图—xl3DColumn—
-4100——————————————————————————条形图—簇状条形图—xlBarClustered—57
3D簇状条形图—xl3DBarClustered—60
堆积条形图—
xlBarStacked—
58
3D堆积条形图—xl3DBarStacked—61
百分比堆积条形图—xlBarStacked100—59
3D百分比堆积条形图—xl3DBarStacked100—62——————————————————————————折线图—折线图—xlLine—4
数据点折线图—xlLineMarkers—65
堆积折线图—xlLineStacked—63
堆积数据点折线图—xlLineMarkersStacked—66
百分比堆积折线图—xlLineStacked100—64
百分比堆积数据点折线图—xlLineMarkersstacked100—67
3D折线图—xl3DLine—
-4101——————————————————————————饼图—饼图—xlPie—
5
别离型饼图—xlPieExploded—
69
3D饼图—xl3DPie—
-4102
别离型3D饼图—xl3DPieExploded—70
复合饼图—xlPieOfPie—68
复合条饼图—xlBarOfPie—71——————————————————————————XY(散点)图—散点图—xlXYScatter—
-4169
平滑线散点图—xlXYScatterSmooth—72
无数据点平滑线散点图—xlXYScatterSmoothNoMarkers—73
折线散点图—xlXYScatterLines—74
无数据点折线散点图—xlXYScatterLinesNoMarkers—75——————————————————————————气泡图—气泡图—xlBubble—15
3D气泡图—xlBubble3DEffect—87——————————————————————————面积图—面积图—xlArea—1
3D面积图—xl3DArea—
-4098
堆积面积图—xlAreaStacked—76
3D堆积面积图—
xl3DAreaStacked—78
百分比堆积面积图—
xlAreaStacked100—
77
3D百分比堆积面积图—xl3DAreaStacked100
—79——————————————————————————圆环图—圆环图—
xlDoughnut—
-4120
别离型圆环图—
xlDoughnutExploded
—
80——————————————————————————雷达图—雷达图—xlRadar—
-4151
数据点雷达图—xlRadarMarkers—81
填充雷达图—xlRadarFilled—
82——————————————————————————曲面图—
3D曲面图—xlSurface—83
曲面图(俯视)—
xlSurfaceTopView
—85
3D曲面图(框架图)—xlSurfaceWireframe—84
曲面图(俯视框架图)
—xlSurfaceWireframeTopView—86——————————————————————————股价图—盘高-盘低-收盘图—xlStockHLC—
88
成交量-盘高-盘低-收盘图—xlStockVHLC—90
开盘-盘高-盘低-收盘图—xlStockOHLC—89
成交量-开盘-盘高-盘低-收盘图—xlStockVOHLC—91——————————————————————————圆柱图—
柱形圆柱图—xlCylinderColClustered—92
条形圆柱图—xlCylinderBarClustered—95
堆积柱形圆柱图—xlCylinderColStacked—93
堆积条形圆柱图—xlCylinderBarStacked—96
百分比堆积柱形圆柱图—xlCylinderColStacked100—94
百分比堆积条形圆柱图—xlCylinderBarStacked100—97
3D柱形圆柱图—xlCylinderCol—98——————————————————————————圆锥图—柱形圆锥图—xlConeColClustered—99
条形圆锥图—xlConeBarClustered—102
堆积柱形圆锥图—xlConeColStacked—100
堆积条形圆锥图—xlConeBarStacked—103
百分比堆积柱形圆锥图—xlConeColStacked100—101
百分比堆积条形圆锥图—xlConeBarStacked100—104
3D柱形圆锥图—xlConeCol—105——————————————————————————棱锥图—柱形棱锥图—xlPyramidColClustered—106
条形棱锥图—xlPyramidBarClustered—109
堆积柱形棱锥图
xlPyramidColStacked
—107
堆积条形棱锥图
xlPyramidBarStacked
—110
百分比堆积柱形棱锥图—xlPyramidColStacked100—108
百分比堆积条形棱锥图
—xlPyramidBarStacked100—111
3D柱形棱锥图
—xlPyramidCol
—112
利用以上参数,可用VBA写出批量产生Excel图表的程序。
代码如下:
PrivateSubcmdpareSales_Click()DimiRows,iChartType,iChartTypeRowsAsIntegerDimiTempAsIntegerDimsChartTitle,sCategoryTitle,sValueTitleAsStringDimsChartNameAsStringDimlArrayChartType(73)AsLong,sArrayChartConst(73)AsString,sArrayChartExplain(73)AsStringForiTemp=0To72
lArrayChartType(iTemp)=Sheets("
Sheet2"
).Cells(iTemp+1,1).Value
sArrayChartConst(iTemp)=Sheets("
).Cells(iTemp+1,3).Value
sArrayChartExplain(iTemp)=Sheets("
).Cells(iTemp+1,2).ValueNextiTempSheets("
).ActivatesChartTitle="
销售量比拟图"
sCategoryTitle="
Category标题"
sValueTitle="
Value标题"
iRows=Sheets("
sheet1"
).UsedRange.Rows.CountOnErrorResumeNextSheets("
).ChartObjects.DeleteForiChartType=0To72Step1
Charts.Add
ActiveChart.ChartType=lArrayChartType(iChartType)
ActiveChart.SetSourceDataSource:
A2:
M"
&
CStr(iRows)),PlotBy:
=xlRows
ActiveChart.Locationwhere:
=xlLocationAutomatic,Name:
WithActiveChart
.HasTitle=True
.ChartTitle.Characters.Text=sChartTitle&
sArrayChartConst(iChartType)&
sArrayChartExplain(iChartType)'
"
xl3DArea"
.Axes(xlCategory,xlPrimary).HasTitle=False
'
.Axes(xlCategory,xlPrimary).AxisTitle.Text=sCategoryTitle
.Axes(xlValue,xlPrimary).HasTitle=False
.Axes(xlValue,xlPrimary).AxisTitle.Text=sValueTitle
EndWith
sChartName=Mid(ActiveChart.Name,8,6)
ActiveSheet.Shapes(sChartName).Left=Range("
B"
Str(18*(iChartType+1))).Left
ActiveSheet.Shapes(sChartName).Top=Range("
Str(18*(iChartType+1))).Top
ActiveChart.ExportThisWorkbook.Path&
\"
Format(Now(),"
yymmddhhmm"
)&
.gif"
"
gif"
Sheets("
).ChartObjects(sChartName).Delete
NextiChartTypeEndSub注意楼上的参数存于Sheet2的1至3列中。
VBA-批量调整excel图表格式-线条粗细
Excel画图时默认的线条和标记比拟大,写论文时使用起来经常要把线条和标记调小才好看。
如果图表比拟多,图里的系列也比拟多的话,一条一条的设置起来会很麻烦,这里给出了一个宏,使用方法是选中图表后运行宏即可。
Subzoom()
'
zoom宏
ActiveSheet.ChartObjects("
图表1"
).Activate'
1可以改为循环整数
DimiAsInteger
ActiveChart.SeriesCollection(i).Select
Selection.MarkerSize=3'
设置标记大小为3
.Visible=msoTrue
EndWith
Next
EndSub
可以根据自己的需求更改标记的大小和线条的粗细。
当然如果需要对所有图表做这种更改,可以找出图表个数,对ActiveSheet.ChartObjects("
图表i"
).Activate进展