用于处理图表&图形的VBA代码大全2

2023-08-30 08:07:26 浏览数 (2)

基本的图表设置

下面的代码以cht开始,假设已经使用上面介绍的代码引用了图表。

改变图表类型:

代码语言:javascript复制
cht.ChartType = xlArea
cht.ChartType = xlLine
cht.ChartType = xlPie
cht.ChartType = xlColumnClustered
cht.ChartType = xlColumnStacked
cht.ChartType = xlColumnStacked100
cht.ChartType = xlArea
cht.ChartType = xlAreaStacked
cht.ChartType = xlBarClustered
cht.ChartType = xlBarStacked
cht.ChartType = xlBarStacked100

在工作表中创建空白ChartObject:

代码语言:javascript复制
'创建一个嵌入到工作表中的空图表
Set cht = Sheets("Sheet1").Shapes.AddChart2.Chart

为图表选择数据源:

代码语言:javascript复制
Dim rng As Range
Set rng = Sheets("Sheet1").Range("A1:B4")
cht.SetSourceData Source:=rng

删除图表对象或图表工作表:

代码语言:javascript复制
If TypeName(cht.Parent) = "ChartObject" Then
 cht.Parent.Delete
ElseIf TypeName(cht.Parent) = "Workbook" Then
 cht.Delete
End If

改变图表的大小或位置:

代码语言:javascript复制
'设置图表对象的大小/位置-方法1
cht.Parent.Height = 200
cht.Parent.Width = 300
cht.Parent.Left = 20
cht.Parent.Top = 20

'设置图表对象的大小/位置-方法2
chtObj.Height = 200
chtObj.Width = 300
chtObj.Left = 20
chtObj.Top = 20

改变可见单元格设置:

代码语言:javascript复制
'修改设置仅显示可见单元格
cht.PlotVisibleOnly = False

修改柱形/条形间的空间(间隙宽度):

代码语言:javascript复制
'改变两个条形之间的间隙空间
cht.ChartGroups(1).GapWidth = 50

更改柱形/条形的重叠:

代码语言:javascript复制
cht.ChartGroups(1).Overlap = 75

移除图表对象的外侧边框:

代码语言:javascript复制
cht.ChartArea.Format.Line.Visible = msoFalse

改变图表背景颜色:

代码语言:javascript复制
'设置图表区域填充颜色
cht.ChartArea.Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
'设置图表没有背景颜色
cht.ChartArea.Format.Fill.Visible = msoFalse

图表坐标轴

图表有四个坐标轴:

1. xlValue

2.xlValue, xlSecondary

3.xlCategory

4.xlCategory, xlSecondary

在下面的例子中,这些可以互换使用。为了使代码适应你的特定需求,需要更改括号中引用的图表坐标轴。

所有的代码以cht开始,假设已经使用上面介绍的代码引用了图表。

设置图表坐标轴的最小值和最大值:

代码语言:javascript复制
cht.Axes(xlValue).MaximumScale = 25
cht.Axes(xlValue).MinimumScale = 10
cht.Axes(xlValue).MaximumScaleIsAuto = True
cht.Axes(xlValue).MinimumScaleIsAuto = True

显示或隐藏图表坐标轴:

代码语言:javascript复制
'显示坐标轴
cht.HasAxis(xlCategory) = True
'隐藏坐标轴
cht.HasAxis(xlValue, xlSecondary) = False

显示或隐藏图表标题:

代码语言:javascript复制
'显示坐标轴标题
cht.Axes(xlCategory, xlSecondary).HasTitle = True
'隐藏坐标轴标题
cht.Axes(xlValue).HasTitle = False

修改图表坐标轴标题文本:

代码语言:javascript复制
cht.Axes(xlCategory).AxisTitle.Text = "我的坐标轴标题"

反转分类轴的顺序:

代码语言:javascript复制
'反转分类轴的顺序
cht.Axes(xlCategory).ReversePlotOrder = True
'设置分类轴为默认顺序
cht.Axes(xlCategory).ReversePlotOrder = False

0 人点赞