ExcelVBA处理图形图表大全剖析.docx

上传人:b****0 文档编号:12869671 上传时间:2023-04-22 格式:DOCX 页数:45 大小:534.84KB
下载 相关 举报
ExcelVBA处理图形图表大全剖析.docx_第1页
第1页 / 共45页
ExcelVBA处理图形图表大全剖析.docx_第2页
第2页 / 共45页
ExcelVBA处理图形图表大全剖析.docx_第3页
第3页 / 共45页
ExcelVBA处理图形图表大全剖析.docx_第4页
第4页 / 共45页
ExcelVBA处理图形图表大全剖析.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

ExcelVBA处理图形图表大全剖析.docx

《ExcelVBA处理图形图表大全剖析.docx》由会员分享,可在线阅读,更多相关《ExcelVBA处理图形图表大全剖析.docx(45页珍藏版)》请在冰豆网上搜索。

ExcelVBA处理图形图表大全剖析.docx

ExcelVBA处理图形图表大全剖析

VBA图表剖析

一、图表各元素在VBA中的表达方式

1、图表区

VBA名称:

ChartArea

2、绘图区

VBA名称:

PlotArea

调整绘图区的大小以及在图表中的位置,指定绘图区的Top、Left、Height和Width属性。

3、数据系列

VBA名称:

Series

指定给定系列语法:

ChatObject.SeriesCollection(Index),其中Index是数字范围,从1开始,最大值是图表中系列的数量或系列名称的数量。

4、图表轴

VBA名称:

Axis

指定给定轴的简单语法:

ChatObject.Axes(Type),其中Type指定轴的ExcelVBA常量。

辅助轴

语法:

ChatObject.Axes(Type,AxisGroup)。

5、网格线

VBA名称:

HasMajorGridlines和HasMinorGridlines

根据需要可以选择显示或者不显示主要网格线或次要网格线。

若显示网格线,可以设置线条的图案(颜色、线宽、线条样式等等)。

6、数据标签

VBA名称:

DataLabels和DataLabel

(1)图表中所有系列的所有点显示特定类型的数据标签或不显示数据标签:

ActiveChart.ApplyDataLabelsType:

=xlDataLabelsShowNone

(2)特定系列显示数值(Y)作为数据标签:

WithActiveChart.SeriesCollection(“Xdata”)

.HasDataLabels=True

.ApplyDataLabelsType:

=xlDataLabelsShowValue

EndWith

(3)特定的点在它的数据标签中显示文字

WithActiveChart.SeriesCollection(“Xdata”).Points

(1)

.HasDataLabels=True

.DataLabel.Text=”MyLabel”

EndWith

(4)将公式放置在某个系列上的某特定点的数据标签中(在公式中需使用RC样式)

WithActiveChart.SeriesCollection(“Xdata”).point

(1)

.HasDataLabels=True

.DataLabel.Text=”Sheet1.R1C1”

EndWith

7、图表标题、图例和数据表

VBA名称:

ChartTitle、HasLegend和HasDataTable

可以用VBA指定图表标题和图例的位置、文字和文字格式。

8、趋势线和误差线

VBA名称:

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)

引单元格C5

Application.WorksheetFunction.IsNumber("A1")

使用工作表函数检查A1单元格中的数据是否为数字

Range("A:

A").Find(Application.WorksheetFunction.Max(Range("A:

A"))).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

ActiveSheet.ChartObjects("Chart1").Activate

选中当前图表区域

ActiveChart.ChartArea.Select

选中当前图表区域

WorkSheets("Sheet1").ChartObjects("Chart2").Chart.ChartArea.Interior.ColorIndex=2

更改工作表中图表的图表区的背景颜色

Sheets("Chart2").ChartArea.Interior.ColorIndex=2

更改图表工作表中图表区的颜色

Charts.Add

添加新的图表工作表

ActiveChart.SetSourceDataSource:

=Sheets("Sheet1").Range("A1:

D5"),PlotBy:

=xlColumns

指定图表数据源并按列排列

ActiveChart.LocationWhere:

=xlLocationAsNewSheet

新图表作为新图表工作表

ActiveChart.PlotArea.Interior.ColorIndex=xlNone

将绘图区颜色变为白色

WorkSheets("Sheet1").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图表的程序。

代码如下:

PrivateSubcmdCompareSales_Click()

DimiRows,iChartType,iChartTypeRowsAsInteger

DimiTempAsInteger

DimsChartTitle,sCategoryTitle,sValueTitleAsString

DimsChartNameAsString

DimlArrayChartType(73)AsLong,sArrayChartConst(73)AsString,sArrayChartExplain(73)AsString

ForiTemp=0To72

  lArrayChartType(iTemp)=Sheets("Sheet2").Cells(iTemp+1,1).Value

  sArrayChartConst(iTemp)=Sheets("Sheet2").Cells(iTemp+1,3).Value

  sArrayChartExplain(iTemp)=Sheets("Sheet2").Cells(iTemp+1,2).Value

NextiTemp

Sheets("Sheet1").Activate

sChartTitle="销售量比较图"

sCategoryTitle="Category标题"

sValueTitle="Value标题"

iRows=Sheets("sheet1").UsedRange.Rows.Count

OnErrorResumeNext

Sheets("sheet1").ChartObjects.Delete

ForiChartType=0To72Step1

  Charts.Add

  ActiveChart.ChartType=lArrayChartType(iChartType)

  ActiveChart.SetSourceDataSource:

=Sheets("Sheet1").Range("A2:

M"&CStr(iRows)),PlotBy:

=xlRows

  ActiveChart.Locationwhere:

=xlLocationAutomatic,Name:

="Sheet1"

  WithActiveChart

      .HasTitle=True

      .ChartTitle.Characters.Text=sChartTitle&sArrayChartConst(iChartType)&sArrayChartExplain(iChartType)

'      .ChartTitle.Characters.Text=sChartTitle&"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("B"&Str(18*(iChartType+1))).Top

  ActiveChart.ExportThisWorkbook.Path&"\"&Format(Now(),"yymmddhhmm")&sArrayChartConst(iChartType)&".gif","gif"

  Sheets("sheet1").ChartObjects(sChartName).Delete

  

NextiChartType

EndSub

注意楼上的参数存于Sheet2的1至3列中。

VBA-批量调整excel图表格式-线条粗细

Excel画图时默认的线条和标记比较大,写论文时使用起来经常要把线条和标记调小才好看。

如果图表比较多,图里的系列也比较多的话,一条一条的设置起来会很麻烦,这里给出了一个宏,使用方法是选中图表后运行宏即可。

Subzoom()

'

'zoom宏

'

'ActiveSheet.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 教学研究 > 教学计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1