VB中调用Excel生成图表(精品文档)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VB中调用Excel生成图表

添加时间:2004-9-3 查看:298次

编写数据库程序的最后步骤一般都是通过查询检索生成各种报表、图形等,在VB中通过调用Exc el的图表制作功能可以生成各种复杂的图表,使编程过程得以简化。举例如下:新建工程,在Form1窗口添加Command1按钮,编写程序在Excel中添加数据并生成饼图。

Private Sub Command1_Click()

Dim x1 As Excel.Application '声明数据类型

Set x1 = CreateObject(""Excel.Application"")

'创建实例

x1.Workbooks.Add

'添加工作簿

x1.Visible = True

x1.Range(""A1"").Value = 1 'A1格赋值

x1.Range(""B1"").Value = 2 'B1格赋值

x1.Range(""C1"").Value = 3 'C1格赋值

x1.Range(""D1"").Value = 4 'D1格赋值

x1.Range(""A1"", ""D1"").Borders.LineStyle = xlContinuous '单元格边框

x1.ActiveSheet.Rows.HorizontalAlignment = xlVAlignCenter

x1.ActiveSheet.Rows.VerticalAlignment = xlVAlignCenter '上下、左右居中

Set ct = x1.Worksheets(""sheet1"").ChartObjects.Add(10, 40, 220, 120) '插入图形

ct.Chart.ChartType = xl3DPie '图形类型为饼图

ct.Chart.SetSourceData Source:=Sheets(""Sheet1"").Range(""A1:D1""), PlotBy:=xl Rows '图形数据来源

With ct.Chart

.HasTitle = True

.ChartTitle.Characters.Text = ""饼图"" '图表标题为饼图

End With

ct.Chart.ApplyDataLabels 2, True '标志旁附图例项标志

Set x1 = Nothing

End Sub

有人可能会觉得程序里对象、属性太多,自己记不住。有一个可以偷懒的方法。打开Excel,点击工具→宏→录制宏,按照步骤添加数据,设置格式,生成饼图,然后停止录制。这时点击工具→宏,再点击编辑,就会出现刚才所做事情的代码,将代码复制到VB中稍做改动就可以了。

ActiveCell.FormulaR1C1 = ""1""

Range(""B1"").Select

ActiveCell.FormulaR1C1 = ""2""

Range(""C1"").Select

ActiveCell.FormulaR1C1 = ""3""

Range(""D1"").Select

ActiveCell.FormulaR1C1 = ""4""

Range(""A1:D1"").Select

With Selection

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlCenter

.WrapText = False

.Orientation = 0

.AddIndent = False

.ShrinkToFit = False

.MergeCells = False

End With

Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone

With Selection.Borders(xlEdgeLeft)

.LineStyle = xlContinuous

.Weight = xlThin

.ColorIndex = xlAutomatic

End With

With Selection.Borders(xlEdgeTop)

.LineStyle = xlContinuous

.Weight = xlThin

.ColorIndex = xlAutomatic

End With

With Selection.Borders(xlEdgeBottom)

.LineStyle = xlContinuous

.Weight = xlThin

.ColorIndex = xlAutomatic

End With

With Selection.Borders(xlEdgeRight)

.LineStyle = xlContinuous

.Weight = xlThin

.ColorIndex = xlAutomatic

End With

With Selection.Borders(xlInsideVertical)

.LineStyle = xlContinuous

.Weight = xlThin

.ColorIndex = xlAutomatic

End With

Range(""A3"").Select

Charts.Add

ActiveChart.ChartType = xl3DPie

ActiveChart.SetSourceData Source:=Sheets(""Sheet1"").Range(""A1:D1""), PlotBy: = _

xlRows

ActiveChart.Location Where:=xlLocationAsObject, Name:=""Sheet1""

With ActiveChart

.HasTitle = True

.ChartTitle.Characters.Text = ""饼图""

End With

ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowValue, LegendKey:=True, _

HasLeaderLines:=True

可以看出,Excel自动生成的代码很不简洁,自己还需要手工对它进行修改。用同样的方法还可以生成折线图、柱形图等的代码。

相关文档
最新文档