Excel VBA编程 典型实例——创建面积图表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Excel VBA编程典型实例——创建面积图表
面积图表通常可以使用显示所绘制的值的总和,来表示部分与整体的关系。本例主要介绍在【代码】编辑窗口中,输入相应的VBA代码来完成面积图的创建过程。
1.练习要点
●插入模块
●使用VBA代码创建图表
2.操作步骤:
(1)新建一个空白工作簿,在Sheet1工作表中,创建如图17-17所示的“实验报告”表格。
创建表格
图17-17 创建表格
(2)选择【开发工具】选项卡,单击【代码】组中的VISUAL Basic按钮,即可进入VBE窗口,如图17-18所示。
单击
图17-18 进入VBE窗口
(3)右击【工程管理器】窗口的空白处,执行【插入】|【模块】命令,即可插入模块1,如图17-19所示。
执行
添加模块
图17-19 插入模块
(4)在【代码】编辑窗口中,输入如图17-20所示的代码。
输入
图17-20 输入代码
其中,输入的创建图表的代码如下:
Sub creatChart()
'定义变量
Dim x As Long
Dim y As Long
Dim n As Long
Dim startRow As Long
Dim maxRow As Long
Dim shapeWidth As Double
Dim shapeHeight As Double
Dim rowIndex As Long
Dim colIndex As Long
'获得总页数
countpages = ExecuteExcel4Macro("Get.Document(50)")
For n = 1 To countpages
startRow = 45 * (n - 1) + 11
maxRow = startRow + 11
'创建图表
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlArea
'应用图表样式
ActiveChart.ChartStyle = 40
ActiveChart.ClearToMatchStyle
'修改图表属性
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("B" & startRow & ":C" & maxRow & ",H" & startRow & ":I" & maxRow), _
PlotBy:=xlColumns
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "体积流量曲线"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "注入孔隙体积倍数"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "渗透率比值"
End With
With ActiveChart.Axes(xlCategory)
.HasMajorGridlines = True
.HasMinorGridlines = False
End With
With ActiveChart.Axes(xlValue)
.HasMajorGridlines = True
.HasMinorGridlines = False
End With
ActiveChart.HasLegend = False
'修改图表位置
shapeWidth = 0
shapeHeight = 300
rowIndex = 3
For colIndex = 1 To 9
shapeWidth = shapeWidth + ActiveSheet.Cells(rowIndex, colIndex).Width Next colIndex
ActiveSheet.Shapes(n).Left = ActiveSheet.Cells(45 * (n - 1) + 24, 1).Left
ActiveSheet.Shapes(n).Top = ActiveSheet.Cells(45 * (n - 1) + 24, 1).Top
ActiveSheet.Shapes(n).Width = shapeWidth
ActiveSheet.Shapes(n).Height = 300
'设置字体
ActiveSheet.ChartObjects(n).Activate
ActiveChart.ChartArea.Select
Selection.AutoScaleFont = True
With Selection.Font
.Name = "宋体"
.Size = 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
.Background = xlAutomatic
End With
ActiveChart.ChartTitle.Select
Selection.Font.Size = 18
Next n
Range("A1").Select
End Sub
(5)返回工作表中,单击【代码】组中的【宏】按钮。然后,在弹出的对话框中,选择要运行的宏名,并单击【执行】按钮,如图17-21所示。
单击
单击