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

合集下载

VB中巧用Excel实现报表设计

VB中巧用Excel实现报表设计

VB中巧用Excel实现报表设计摘要:本文结合实例介绍了在VB中利用Excel实现复制报表的设计的方法,该方法把VB强大数据库管理与Excel灵活的报表设计有机结合起来,简化了编程,提高了程序的便利性。

关键词: Visual Basic Excel 报表引言在数据库应用中,数据报表是非常重要的部分,Visual Basic中的数据报表器可以很方便地创建数据报表,但由数据报表器设计的表格样式单一,功能较少。

微软公司的Excel软件想必大家都很熟悉,它那强大的报表设计功能和简单的操作界面,给大家留下了很深的印象。

若能把VB中的数据输出至Excel格式的报表中,使得VB的数据库管理功能与Excel的报表设计功能结合起来,将大大方便普通用户的使用。

本文借助一个实例详细介绍VB中如何利用Excel进行报表设计的方法。

1.Excel对象借助Excel对象,可以很方便地在VB数据库程序中生成Excel报表。

应用程序的最终用户在Excel环境中对报表做进一步的处理,如格式修改、打印预览、打印及保存等。

Excel对象封装了Microsoft Excel的全部对象,我们主要使用其中的五种对象,详细介绍如下。

Application对象:表示Excel应用对象,可以控制Excel应用程序的外观或功能[1],是访问Excel其他对象的切入点。

Workbook对象:表示Excel中的工作簿,即对应一个Excel文件,可以实现对Excel工作簿的各种控制[1]。

Worksheet对象:表示Excel中的工作表,可以实现对Excel工作表的各种控制[1]。

Range对象:表示Excel中的区间,例如可以代表Excel中的某一单元格、某一行、某一列、某一选定区域[1]。

Cells对象:表示Excel中的一个单元格[2],通过该对象读取Excel中的数据或将数据写入Excel中。

2.操作步骤在VB中借助Excel生成报表,需完成如下工作:(1)在Excel中制作报表模板,设计报表标题、表头的样式,包括字体字号、边框等等。

VBA实现Excel的图表自动生成

VBA实现Excel的图表自动生成

VBA实现Excel的图表自动生成Excel是微软公司推出的一款功能强大的办公软件,无论在日常工作还是个人生活中,都离不开它的应用。

其中,图表的使用在数据分析和呈现方面尤为重要。

然而,手动创建和调整图表可能是一项繁琐的任务,尤其是在处理大量数据时。

通过使用Visual Basic for Applications(简称VBA),我们可以自动化图表的生成过程,大大提高工作效率。

本文将带您深入理解VBA实现Excel的图表自动生成。

首先,我们需要了解VBA是什么以及它在Excel中的应用。

VBA是一种宏语言,它可以与Excel以及其他Office应用程序进行交互。

通过编写VBA代码,我们可以实现对Excel应用的自定义控制,包括创建、修改和删除工作表、单元格内容的读写、图表的生成和格式化等。

在VBA中,我们可以使用Worksheet对象和Chart对象来控制Excel中的工作表和图表。

首先,通过创建一个Worksheet对象,我们可以选择或创建一个工作表来存储我们的数据和图表。

接下来,通过使用ChartObjects.Add方法,我们可以在工作表中插入一个新图表。

通过设置Chart对象的属性,我们可以自定义图表的类型、样式、数据源等。

然后,通过向Chart对象的SeriesCollection集合中添加数据系列,我们可以定义图表的数据。

最后,通过设置Axis对象的属性,我们可以调整图表的坐标轴刻度、标签等。

通过这样一系列的操作,我们可以轻松生成一个符合我们需求的图表。

在VBA中自动生成图表的过程主要包括以下几个步骤:1. 选择或创建一个工作表来存储数据和图表。

在VBA中,可以使用Worksheets对象的Add方法来新建一个工作表,使用Activate方法来激活一个已有的工作表。

2. 插入一个新图表。

可以使用ChartObjects对象的Add方法,在当前工作表中插入一个新的图表对象。

3. 设置图表的基本属性。

ExcelVBA编程与图表制作如何利用VBA进行图表的自动生成和美化

ExcelVBA编程与图表制作如何利用VBA进行图表的自动生成和美化

ExcelVBA编程与图表制作如何利用VBA进行图表的自动生成和美化Excel VBA编程与图表制作如何利用VBA进行图表的自动生成和美化在Excel中,图表是一种直观展示数据的形式,它能够帮助用户更清晰地理解数据的含义和趋势。

而VBA(Visual Basic for Applications)作为Excel的编程语言,可以让我们更加灵活地操作和处理数据,进而实现图表的自动生成和美化。

本文将介绍如何利用VBA编程进行图表的自动生成和美化。

一、自动生成图表自动生成图表的主要目的是为了提高工作效率,将重复性的操作变得简单和便捷。

通过VBA编程,我们可以实现一键生成图表的功能。

首先,打开Excel,并按下ALT+F11快捷键,进入VBA编辑器。

在VBA编辑器中,选择插入→模块,即可新建一个VBA模块。

然后,我们可以编写VBA代码来实现图表的自动生成。

以下是一个简单的示例代码:```Sub CreateChart()Dim chartSheet As WorksheetDim sheet As WorksheetDim chartObj As ChartObjectDim rng As Range'创建一个新的图表工作表Set chartSheet =ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sh eets.Count)) = "Chart Sheet"'选择需要生成图表的原始数据所在的工作表Set sheet = ThisWorkbook.Sheets("Data Sheet")'选择需要生成图表的原始数据范围Set rng = sheet.Range("A1:B10")'在图表工作表上插入一个图表对象Set chartObj = chartSheet.ChartObjects.Add(Left:=10, Width:=375, Top:=30, Height:=225)'将原始数据范围设置为图表的源数据chartObj.Chart.SetSourceData rng'设置图表的类型为柱形图chartObj.Chart.ChartType = xlColumnClusteredEnd Sub```以上代码中,我们首先创建一个新的图表工作表,然后选择需要生成图表的原始数据所在的工作表和对应的数据范围。

(完整word版)VB操作EXCEL表的常用方法

(完整word版)VB操作EXCEL表的常用方法

VB操作EXCEL表的常用方法(设计值,颜色,大小)2009-05—18 15:37VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。

因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报表功能.但由于VB与EXCEL由于分别属于不同的应用系统,如何把它们有机地结合在一起,是一个值得我们研究的课题。

一、 VB读写EXCEL表:VB本身提自动化功能可以读写EXCEL表,其方法如下:1、在工程中引用Microsoft Excel类型库:从"工程"菜单中选择"引用”栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然后选择”确定”。

表示在工程中要引用EXCEL类型库。

2、在通用对象的声明过程中定义EXCEL对象:Dim xlApp As Excel.ApplicationDim xlBook As Excel。

WorkBookDim xlSheet As Excel.Worksheet3、在程序中操作EXCEL表常用命令:Set xlApp = CreateObject(”Excel。

Application") ’创建EXCEL对象Set xlBook = xlApp。

Workbooks。

Open(”文件名") '打开已经存在的EXCEL工件簿文件xlApp.Visible = True ’设置EXCEL对象可见(或不可见)Set xlSheet = xlBook。

Worksheets(”表名”) '设置活动工作表xlApp.Cells(row, col) =值 '给单元格(row,col)赋值XLApp。

Cells(i, 1).Interior。

ColorIndex = i'设计单元格颜色i=1——56xlSheet.PrintOut '打印工作表xlBook。

用VB控制EXCEL生成报表

用VB控制EXCEL生成报表

用VB控制EXCEL生成报表做为一种简捷、系统的 Windows应用程序开发工具,Visual Basic 5 具有强大的数据处理功能,提供了多种数据访问方法,可以方便地存取Microsoft SQL Server、Oracle、XBase等多种数据库,被广泛应用于建立各种信息管理系统。

但是,VB缺乏足够的、符合中文习惯的数据表格输出功能,虽然使用Crystal Report控件及 Crystal Reports程序可以输出报表,但操作起来很麻烦,中文处理能力也不理想。

Excel作为Micorsoft公司的表格处理软件在表格方面有着强大的功能,我们可用VB5编写直接控制Excel操作的程序,方法是用VB的OLE 自动化技术获取Excel 97 的控制句柄,从而直接控制Excel 97的一系列操作。

下面给出一个实例:首先建立一个窗体(FORM1)在窗体中加入一个DATA控件和一按钮,引用Microsoft Excel类型库:从"工程"菜单中选择"引用"栏;选择Microsoft Excel 8.0 Object Library;选择"确定"。

在FORM的LOAD事件中加入:Data1.DatabaseName = 数据库名称Data1.RecordSource = 表名Data1.Refresh在按钮的CLICK事件中加入Dim Irow, Icol As IntegerDim Irowcount, Icolcount As IntegerDim Fieldlen() "存字段长度值Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.WorksheetSet xlApp = CreateObject("Excel.Application")Set xlBook = xlApp.Workbooks.AddSet xlSheet = xlBook.Worksheets(1)With Data1.Recordset.MoveLastIf .RecordCount < 1 ThenMsgBox ("Error 没有记录!")Exit SubEnd IfIrowcount = .RecordCount "记录总数Icolcount = .Fields.Count "字段总数ReDim Fieldlen(Icolcount).MoveFirst8For Irow = 1 To Irowcount + 1For Icol = 1 To IcolcountSelect Case IrowCase 1 "在Excel中的第一行加标题xlSheet.Cells(Irow, Icol).Value = .Fields(Icol - 1).NameCase 2 "将数组FIELDLEN()存为第一条记录的字段长If IsNull(.Fields(Icol - 1)) = True ThenFieldlen(Icol) = LenB(.Fields(Icol - 1).Name)"如果字段值为NULL,则将数组Filelen(Icol)的值设为标题名的宽度ElseFieldlen(Icol) = LenB(.Fields(Icol - 1))End IfxlSheet.Columns(Icol).ColumnWidth = Fieldlen(Icol) "Excel列宽等于字段长xlSheet.Cells(Irow, Icol).Value = .Fields(Icol - 1) "向Excel的CellS中写入字段值Case ElseFieldlen1 = LenB(.Fields(Icol - 1))If Fieldlen(Icol) < Fieldlen1 ThenxlSheet.Columns(Icol).ColumnWidth = Fieldlen1"表格列宽等于较长字段长Fieldlen(Icol) = Fieldlen1"数组Fieldlen(Icol)中存放最大字段长度值ElsexlSheet.Columns(Icol).ColumnWidth = Fieldlen(Icol) End IfxlSheet.Cells(Irow, Icol).Value = .Fields(Icol - 1) End SelectNextIf Irow <> 1 ThenIf Not .EOF Then .MoveNextEnd IfNextWith xlSheet.Range(.Cells(1, 1), .Cells(1, Icol - 1)) = "黑体""设标题为黑体字.Range(.Cells(1, 1), .Cells(1, Icol - 1)).Font.Bold = True"标题字体加粗.Range(.Cells(1, 1), .Cells(Irow, Icol - 1)).Borders.LineStyle = xlContinuous"设表格边框样式End WithxlApp.Visible = True "显示表格xlBook.Save "保存Set xlApp = Nothing "交还控制给ExcelEnd With本程序在中文Windows98、中文VB5下通过。

VBA中的Excel图表操作技巧

VBA中的Excel图表操作技巧

VBA中的Excel图表操作技巧在Excel中,图表是一种非常有用的数据可视化工具,能够帮助我们更好地展示和分析数据。

而在VBA中,我们可以通过编程来操作和控制Excel 中的图表,从而实现更多的定制化需求。

本文将介绍一些常用的VBA中的Excel图表操作技巧,包括创建图表,设置图表属性,以及对图表进行格式化等。

一、创建图表在VBA中,创建图表的方法有很多种,可以根据数据的类型和需求选择合适的图表类型。

下面是一个创建柱状图的示例代码:```VBASub CreateColumnChart()Dim ws As WorksheetDim cht As ChartSet ws = ThisWorkbook.Worksheets("Sheet1")Set cht = ws.Shapes.AddChart.ChartWith cht.ChartType = xlColumnClustered.SetSourceData Source:=ws.Range("A1:B5").Location Where:=xlLocationAsObject, Name:="Sheet1".HasTitle = True.ChartTitle.Text = "Sales by Month"End WithEnd Sub```上述代码中,首先我们通过引用工作表对象和图表对象,然后使用`AddChart.Chart`方法来创建图表。

接着,我们通过设置`ChartType`属性来指定图表的类型,这里是柱状图。

然后使用`SetSourceData`方法来设置图表的数据源范围,并使用`Location`方法来指定图表的位置。

最后,我们通过`HasTitle`和`ChartTitle.Text`属性来设置图表的标题。

二、设置图表属性在VBA中,我们可以通过操作图表对象的属性来实现对图表的定制化设置。

利用VB和Excel制作统计报表

利用VB和Excel制作统计报表

D tG i1 tb o . ou s 2 . at n= aa r (a n }C l d mn ( )C pi 治疗次数 o
的特点在于其功能强大 、编程 简单 的数 据库操作能力。可视化 的开发环境以及丰富 的数据 库访问控件 的支持 使得 V B成为数 据库应用程序重要 的开发 工具 。而对于任何一个数据库应用程
序 而 言 ,制 作 报 表 始 终 是 应 用 程 序 所 必 需 的 功 能 。 V B尽 管 提
一 i 囊
| _
t _
| j
t誊 8 。 稳
黼 辕
| 麓 l ≥ | |
畏 | | _
l 誊霉 i
。 一
_。 ≈ 嚣 警 。 毒
武洪萍鬻 孙穗永


本 文 介 绍 了在 V 中利 用 E cl实现 统 计 报 表 的制 作 与 输 出。借 助 于 O B ,使 B xe D C
供了数 据报 表设计器 ,但对 于复杂而数 据统计量庞大的报表来
说 ,它 的功 能还 是显 得 捉 襟 见 肘 。 特别 是 动 态 报 表 的 处 理 更 是 力 不从 心 。 程 序 员 在 V 中设 计 报 表 时 总 显 得 困难 重 重 ,不 是 B
那 么得 心 应 手 。
四 、相 关Βιβλιοθήκη 界 面 在图 2的窗体 中 ,利用 Ta tb组件 和 D tGi aa r d控件实 现 了
每 位 医 生 某 一 天进 行 的各 种 眼 科 检 查 的 次数 ,操 作 方 便 ,修 改 简 单 。 实 现代 码 如 下 :
P iaeSu O 1 t ae( r t bF m i t ) v Ac v
合 二 为 一 。在 V B中 访 问 E cl 件 可 以通 过 两 种 方 法 ,一 种 xe 文 是 通 过 O B 与 E cl 作 簿 连 接 ,另 一 种 方 法 是 通 过 E cl DC xe 工 xe 引用 ,对 Ecl 的对 象 进 行 操 作 。 本 文 利 用 V 6 0设 计 实现 xe 中 B. 了某 眼 科 医 院医 生 工 作 量 统 计 系 统 ,其 中报 表 数 据 的处 理 就是 通过第二种方法实现的。

VB借助EXCEL实现表格设计

VB借助EXCEL实现表格设计

1、定义EXCE寸象变量dim x as excel.application2、VB中,启动EXCELset x=createobject("excel.application")3、新建一个EXCE T L 作簿x.workbooks.add4、选定工作表1set xsheet=xbook.worksheets(1)5、指定单元格,并赋值xsheet.cell(1,1)=ret.fields(0)6 指定EXCE S L 宽xsheet.column(1).columnwidth=107、RANGE函数,选定单元格区域range(cells(1,1),cells(10,20))& 设置EXCEL字体xsheet.range(cells(1,1),cells(10,20))=" 黑体"9、设置EXCE S L 粗体xsheet.range(cells(1,1),cells(10,20)).fontbold=true10、设置EXCEI表格边框xsheet.range(cells(1,1),cells(10,20)).borders.linestyle=xlcontinuous11 、运行时,显示EXCE S L 隐藏EXCELx.visible=true12、保存工作簿xbook save13、退出EXCELx.quit14、交还控制权给EXCELset x=nothing15、打印EXCEL表x.active.window.selectedsheets.printout copies=numcopies16、退出EXCEL寸,不出现保存提示。

x.displayalerts=false17、怎样运用EXCEI公式?x.range("A3").formula= "=max(A1,A2)"18、E XCEL弋码获取技巧打开EXCEL中的工具----宏----录制新宏,然后进行手工操作,结束后把所的宏代码贴进你的VB程序就行。

Excel VBA编程 使用VBA创建图表

Excel VBA编程  使用VBA创建图表

Excel VBA编程使用VBA创建图表VBA也是一种宏语言,它可以使用手动方法将较为复杂的宏编写成VBA代码,从而完成某种功能的实现。

本节介绍如何使用VBA代码来创建图表。

在VBE窗口中,新建一个模块。

然后,打开该模块代码窗口,输入如图17-3所示的创建图表的代码。

输入图17-3 输入创建图表的代码其中,输入的创建图表的代码如下:Sub 图表()' 选择A2至B7单元格区域Range("A2:B7").Select' 激活工作区选择添加图表选项ActiveSheet.Shapes.AddChart.Select' 激活图表选择工作表1中的A2至B7单元格区域ActiveChart.SetSourceData Source:=Range("Sheet1!$A$2:$B$7")选择图表类型为饼图ActiveChart.ChartType = xlPieEnd Sub在上面的代码中,主要包含以下几点内容:●Shapes.Range 属性该属性返回一个ShapeRange对象,它代表Shapes集合中形状的子集,其语法为:表达式.Range(Index)其中,表达式为一个代表Shapes对象的变量。

参数Index为必选参数,包含该区域中的各单个形状,可以是指定形状索引号的整数、指定形状名称的字符串,也可以是包含整数或字符串的数组。

●Chart.SetSourceData 方法该方法为指定图表设置源数据区域,其语法为:表达式.SetSourceData(Source, PlotBy)其中,表达式为一个代表Chart对象的变量。

参数Source为必选参数,为包含源数据的区域。

参数PlotBy 为可选参数,为指定数据绘制方式。

●Chart.ChartType 属性该属性返回或设置图表类型,其语法为:表达式.ChartType。

其中,参数ChartType表示图表类型。

VBexcel读写创建图表

VBexcel读写创建图表

VBexcel读写创建图表最近用到VB调用EXCEL创建图表,编写程序的过程中遇到一些问题,通过不断的总结终于解决问题。

尤其是利用VB打开EXCEL后不能正常关闭有了一定的认识,现在和各位有需求的朋友分享一下自己小小的经验。

不能正常关闭EXCEL大致有两点,一是打开EXCEL文件后没有释放EXCEL所占用的资源;二是程序中调用EXCEL或读写EXCEL时程序有错;以上两点比较常见,其他的原因目前还没有遇见,也就不多发表意见了。

正常释放EXCEL资源的语句顺序见示例最后一段程序,我调试过可以正常退出EXCEL。

通常不能退出EXCEL的问题中,提示的错误信息大多为实时错误 "1004 " 对象'Sheets'的方法 '_global'失败。

通常情况下,我们可以通过录制EXCEL宏来实现代码的翻译,但此时要相当小心,在将宏程序移植到自己的程序时一定要注意,那就是在录制的程序的语句前加上EXCEL的类声明,如ActiveChart.ChartType = xlColumnClustered为生成的语句,在调用时一定更新为xlApp.ActiveChart.ChartType = xlColumnClustered,这样可以保证每次成功退出EXCEL。

还有就是RANGE功能,使用不当也经常引起不能正常退出EXCEL,在利用其选取多个单元格时,其写法应足够小心。

如 xlApp.ActiveChart.SetSourceData Source:=xlApp.Sheets("Sheet1").Range("A1:G1"), PlotBy:= _ xlRows,若不加xlApp,会导致第一次可以正常退出,第二次出现异常不能正常退出EXCEL。

另外一种写法,如xlApp.Sheets("Sheet1").Range(cells(1,1),cells(20,20)),在这条语句运行后第一次正常,第二次就会引起异常,正确的写法应为xlApp.Sheets("Sheet1").Range(Sheets.cells(1,1),Sheets.cells(20,20)), 按照以上的说明基本上可以正常调用EXCEL文件。

VB操作Excel报表(实例、图例、源码、注释)

VB操作Excel报表(实例、图例、源码、注释)

VB操作Excel报表(实例、图例、源码、注释)VB操作Excel报表(实例、图例、源码、注释)用Excel报表非常方便,而用VB操作Excel更能延长VB的功能范围。

对于重复生成的表格更是非常方便。

字体,行高,列宽,合并单元格,排版等功能都有。

供大家学习研究。

VB中使用Excel控件要先引用哦。

要不你错都不知道哪错了。

郁闷吧!一、报表预览如下1、无内容报表如下:2、填表后预览如下:测试内容,随便填的。

二、界面预览如下:打印记录按钮为Command3三、源码如下:Private Sub Command3_Click()声明一个新的Excel对象Set winkexcel = New Excel.Application该对象可见winkexcel.Visible = True选择第一张表为操作表winkexcel.SheetsInNewWorkbook = 1表添加内容Set winkworkbook = winkexcel.Workbooks.Add设置指定单元格行高列宽Set xlsheet = winkworkbook.Worksheets(1)xlsheet.Rows(1).RowHeight = 45xlsheet.Rows(2).RowHeight = 33xlsheet.Rows(3).RowHeight = 33xlsheet.Rows(4).RowHeight = 33xlsheet.Rows(5).RowHeight = 33xlsheet.Rows(6).RowHeight = 300xlsheet.Rows(7).RowHeight = 100xlsheet.Rows(8).RowHeight = 45xlsheet.Rows(9).RowHeight = 45xlsheet.Rows(10).RowHeight = 26xlsheet.Columns(1).ColumnWidth = 14xlsheet.Columns(2).ColumnWidth = 24xlsheet.Columns(3).ColumnWidth = 14xlsheet.Columns(4).ColumnWidth = 24设置表格内容的对齐方式winkexcel.ActiveSheet.Rows.HorizontalAlignment = xlVAlignCenter'水平居中winkexcel.ActiveSheet.Rows.V erticalAlignment = xlV AlignCenter'垂直居中With winkexcel.ActiveSheet.Range("A1:D1")'合并单元格.MergeEnd WithWith winkexcel.ActiveSheet.Range("B6:D6")'合并单元格.MergeEnd WithWith winkexcel.ActiveSheet.Range("B7:D7")'合并单元格.MergeEnd With画边框线,细线,黑。

VBA如何操作Excel中的图表

VBA如何操作Excel中的图表

VBA如何操作Excel中的图表在 Excel 中,图表可以帮助我们更直观地展示和分析数据。

而使用 VBA 宏语言,可以进一步自动化和灵活地操作 Excel 中的图表,提高工作效率。

本文将介绍如何使用 VBA 操作 Excel 中的图表。

一、创建图表要使用 VBA 创建一个图表,首先需要确定图表的数据源和类型。

1.1 数据源在 VBA 中,可以通过指定数据范围或使用已存在的命名区域作为图表的数据源。

指定数据范围的方法如下:```vbaDim dataRange As RangeSet dataRange = ThisWorkbook.Worksheets("Sheet1").Range("A1:B10")```将以上代码中的 "Sheet1" 替换成实际数据所在的工作表名称,"A1:B10" 替换成实际的数据范围。

使用命名区域的方法如下:```vbaDim dataRange As RangeSet dataRange = s("DataRange").RefersToRange```将 "DataRange" 替换成实际的命名区域名称。

1.2 图表类型VBA 中的 `ChartObjects` 对象可以帮助我们创建不同类型的图表。

以下是常见的几种图表类型示例:柱状图:```vbaDim chartObj As ChartObjectSet chartObj =ThisWorkbook.Worksheets("Sheet1").ChartObjects.Add(Left:=100, Top:=100, Width:=400, Height:=300)chartObj.Chart.SetSourceData dataRangechartObj.Chart.ChartType = xlColumnClustered```折线图:```vbaDim chartObj As ChartObjectSet chartObj =ThisWorkbook.Worksheets("Sheet1").ChartObjects.Add(Left:=100, Top:=100, Width:=400, Height:=300)chartObj.Chart.SetSourceData dataRangechartObj.Chart.ChartType = xlLine```饼图:```vbaDim chartObj As ChartObjectSet chartObj =ThisWorkbook.Worksheets("Sheet1").ChartObjects.Add(Left:=100, Top:=100, Width:=400, Height:=300)chartObj.Chart.SetSourceData dataRangechartObj.Chart.ChartType = xlPie```以上示例中,分别创建了柱状图、折线图和饼图,并将指定的数据范围设置为图表的数据源。

vb操作excel作图

vb操作excel作图

Private Sub Command1_Click()Dim xlapp As Object 'New Excel.ApplicationDim xlBook As Object 'New Excel.WorkbookDim xlSheet As Object 'New Excel.WorksheetSet xlapp = CreateObject("Excel.Application")xlapp.Workbooks.Addxlapp.Visible = flasexlapp.Cells(1, 1) = "shiduan"xlapp.Cells(1, 2) = "datetime"xlapp.Cells(1, 3) = "x"xlapp.Cells(1, 4) = "y"xlapp.Cells(1, 5) = "x_t"xlapp.Cells(1, 6) = "y_t"xlapp.ActiveWorkbook.SaveAs App.Path + "\data.xls"xlapp.Workbooks.Closexlapp.QuitSet xlapp = NothingEnd SubPrivate Sub Command2_Click()Dim count As IntegerDim count_b As IntegerSet xlapp = CreateObject("Excel.Application")xlapp.Visible = TrueOn Error Resume NextSet xlBook = xlapp.Workbooks.Open(App.Path + "\data.xls") Set xlSheet = xlBook.Worksheets(1)xlSheet.Application.WindowState = xlMaximizedxlSheet.Activatecount = 11xlSheet.Range("C2").SelectxlSheet.Cells(2, 3).FormulaR1C1 = "=V ALUE(RC[+2])"xlSheet.Range("C2").AutoFill Destination:=xlSheet.Range("C2:C" & 11), Type:=xlFillDefaultxlSheet.Range("D2").SelectxlSheet.Cells(2, 4).FormulaR1C1 = "=V ALUE(RC[+2])"xlSheet.Range("D2").AutoFill Destination:=xlSheet.Range("D2:D" & 11), Type:=xlFillDefaultcount_b = 2xlSheet.Range("C2 :D11").Select '选取区域xlapp.Charts.Addxlapp.ActiveChart.SeriesCollection(2).Deletexlapp.ActiveChart.SeriesCollection(1).XValues = "=Sheet1!R" & count_b & "C3:R" & count & "C3" 'X区域xlapp.ActiveChart.SeriesCollection(1).Values = "=Sheet1!R" & count_b & "C4:R" & count & "C4" 'Y区域xlapp.ActiveChart.ChartType = xlXYScatter '设置散点xlapp.ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("C" & count_b & ":D" & count) '选取区域xlapp.ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"With xlapp.ActiveChart.Axes(xlCategory) 'X轴.MinimumScale = 0 '设置最小坐标End WithWith xlapp.ActiveChart.Axes(xlValue) 'Y轴.MinimumScale = 0 'Int(min_f(a) / 100) * 1000 + 50 '设置最小坐标.CrossesAt = 0 'Int(min_f(a) / 100) * 1000 + 50End Withxlapp.ActiveChart.SeriesCollection(1).SelectWith Selection.MarkerStyle = xlMarkerStyleDiamondEnd Withxlapp.ActiveChart.SeriesCollection(1).Trendlines.Add(Type:=xlPolynomial, Order:=3, Forward:=0, Backward:=0, DisplayEquation:=True, DisplayRSquared:=False).Select'' xlapp.ActiveChart.ChartArea.SelectWith xlapp.ActiveChart '设置标题和坐标名称.HasTitle = True.ChartTitle.Characters.Text = "负荷气象分布图" '标题.Axes(xlCategory, xlPrimary).HasTitle = True.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "实感指数" 'X 轴.Axes(xlValue, xlPrimary).HasTitle = True.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "最大负荷(MW)" 'Y轴End With' xlapp.ActiveChart.HasLegend = True '图表图例' xlapp.ActiveChart.Legend.Selectxlapp.ActiveChart.Legend.Position = xlTop '图例位置' xlapp.ActiveChart.ChartArea.Select' xlapp.ActiveChart.PlotArea.Selectxlapp.ActiveChart.PlotArea.ClearFormats' xlapp.ActiveChart.Axes(xlValue).MajorGridlines.SelectWith xlapp.ActiveChart.Axes(xlValue).MajorGridlines.Border '虚线.ColorIndex = 57.Weight = xlHairline.LineStyle = xlDotEnd With'' xlapp.ActiveChart.ChartArea.Select' xlapp.ActiveChart.SeriesCollection(1).Trendlines(1).Select '趋势线大小,颜色With xlapp.ActiveChart.SeriesCollection(1).Trendlines(1).Border' .ColorIndex = curv_color '3.Weight = xlThick 'xlThick.LineStyle = xlGray75With xlapp.ActiveChart.SeriesCollection(1).Trendlines(1).Name = "回归负荷" '曲线名称End With' xlapp.ActiveChart.ChartArea.Selectxlapp.ActiveChart.SeriesCollection(1).Name = "=""实际负荷""" '散点名称xlapp.ActiveChart.PlotArea.Select '调整区域大小,先选中区域xlapp.Selection.Left = 15xlapp.Selection.Top = 55xlapp.Selection.Height = 170xlapp.Selection.Width = 343xlapp.ActiveChart.SeriesCollection(1).Trendlines(1).DataLabel.Select '回归函数位置xlapp.Selection.Left = 50xlapp.Selection.Top = 35' xlapp.Selection.AutoScaleFont = Truexlapp.ActiveChart.Legend.Select '标示调整xlapp.Selection.Left = 99xlapp.Selection.Top = 18xlapp.ActiveChart.ChartTitle.Select '标题xlapp.Selection.Top = 0xlapp.ActiveSheet.Shapes("图表1").ScaleHeight 0.8, msofalse, msoScaleFromTopLeft' xlapp.ActiveChart.ChartArea.Select' xlapp.Selection.AutoScaleFont = Falsexlapp.ActiveChart.Export App.Path + "\" + "SHIL" + ".jpg", "jpg" '导出图片''''' xlapp.ActiveChart.Export App.Path + "\R\" + "SHILI" + ".jpg", "jpg"xlBook.SavexlBook.Closexlapp.QuitSet xlapp = NothingSet xlBook = NothingSet xlSheet = NothingEnd Sub。

VBA中的图表操作命令与实例展示

VBA中的图表操作命令与实例展示

VBA中的图表操作命令与实例展示VBA(Visual Basic for Applications)是一种用于微软Office套件中编写宏的编程语言。

在Excel等应用程序中使用VBA可以自动化许多任务,包括图表操作。

本文将介绍一些常用的VBA图表操作命令,并提供实例展示。

1. 创建图表要在Excel中创建图表,可以使用ChartObjects集合的Add方法。

下面是一个创建柱状图的示例代码:```vbaSub CreateChart()Dim ws As WorksheetDim chtObj As ChartObjectDim cht As ChartSet ws = ThisWorkbook.Worksheets("Sheet1") '图表所在的工作表Set chtObj = ws.ChartObjects.Add(Left:=50, Top:=50, Width:=300, Height:=200) '图表的位置和尺寸Set cht = chtObj.Chart'设置图表的数据源范围cht.SetSourceData ws.Range("A1:B5")'设置图表类型为柱状图cht.ChartType = xlColumnClustered'给图表设置标题cht.HasTitle = Truecht.ChartTitle.Text = "Sales Report"End Sub```2. 修改图表属性可以使用Chart对象的属性来修改图表的样式和外观。

下面的示例代码演示了如何更改柱状图的标题、轴标签和图例:```vbaSub ModifyChartProperties()Dim ws As WorksheetDim cht As ChartSet ws = ThisWorkbook.Worksheets("Sheet1") '图表所在的工作表Set cht = ws.ChartObjects(1).Chart '假设图表是第一个ChartObject'修改图表标题cht.HasTitle = Truecht.ChartTitle.Text = "Sales Report 2021"'修改X轴和Y轴的标签cht.Axes(xlCategory, xlPrimary).HasTitle = Truecht.Axes(xlCategory, xlPrimary).AxisTitle.Text = "Month"cht.Axes(xlValue, xlPrimary).HasTitle = Truecht.Axes(xlValue, xlPrimary).AxisTitle.Text = "Sales Amount"'修改图例位置cht.HasLegend = Truecht.Legend.Position = xlLegendPositionRightEnd Sub```3. 添加数据系列可以使用SeriesCollection集合的Add方法来添加数据系列。

VB6.0调用Excel制作任意表格

VB6.0调用Excel制作任意表格

VB6.0调⽤Excel制作任意表格在VB中制作报表⼀般来讲有三种⽅法:1、直接使⽤VB6.0中⾃带的Data Report 来做,这种⽅法有很⼤的局限性,对于⽐较规则的报表,但对于⽐较复杂的报表,⽐如说⼀张报表,上部分是⼈员的⼯资,下部分是⼈员的各⽇的考勤,使⽤这种⽅法就⽆能为⼒。

2、使⽤直接的打印⽅法,即Printer.print ,这种⽅法直接向打印机打印,就象过去使⽤Foxpro 似的,需要进⾏打印机定位,并且在Windows下,不同的字符数字所占的宽度也不相同,所以这种⽅法使⽤起来⾮常⿇烦。

3、使⽤微软的Excel。

本⽂重点讨论⽤Excel来制作报表所涉及的问题。

我们⽤Excel做报表时,不仅是将所要的内容填到Excel的⼯作表中,⽽且还需要填写公式、定义合适的格式(格线、字体、对齐)等。

Excel的每张⼯作表是由若⼲⾏、若⼲列构成的,⾏列的交叉形成的⼩格称作单元格。

我们正好可以⽤这些现成的单元格来做我们的报表的相应的格。

为了程序简单,可以将报表的模板做好,如表头,相应的⾏⾼、列宽、字体、对齐调整好(事实上,这些也可以通过程序来实现,只是⿇烦点。

),然后利⽤VB程序来操纵 Excel。

这⾥我们以SQL SERVER 7.0为后台数据。

⾸先定义好需要的变量,在VB6.0的菜单“⼯程\引⽤”中确保 Microsoft Excel 8.0 Object Library(在Excel2000中,此处为Excel 9.0)复选框选中。

再向Excel⼯作表中填⼊数据:Dim VBExcel As Excel.ApplicationDim xlbook As Excel.Workbook 定义Excel⼯作簿对象Dim xlsheet As Excel.Worksheet 定义Excel⼯作表对象Dim rssalary As New ADODB.Recordset 定义记录集rssalary.Open SQLStrsalary, CNstring, adOpenStatic, adLockReadOnlyrssalary 为已计算好的⼯资数据记录集。

excelvba实例教程#060:使用vba自动生成图表

excelvba实例教程#060:使用vba自动生成图表

在实际工作中我们常用图表来表现数据间的某种相对关系,一般采用手工插入的方式,而使用VBA代码可以在工作表中自动生成图表,如下面的示例代码。

1.Sub ChartAdd()2. Dim myRange As Range3. Dim myChart As ChartObject4. Dim R As Integer5. With Sheet16..7.R = .Range("A65536").End(xlUp).Row8.Set myRange = .Range("A" & 1 & ":B" & R)9.Set myChart = .(120, 40, 400, 250)10.With11..ChartType = xlColumnClustered12..SetSourceData Source:=myRange, PlotBy:=xlColumns13..ApplyDataLabels ShowValue:=True14..HasTitle = True15.. = "图表制作示例"16.With .17. .Size = 2018. .ColorIndex = 319. .Name = "华文新魏"20.End With21.With .22. .ColorIndex = 823. .PatternColorIndex = 124. .Pattern = xlSolid25.End With26.With .27. .ColorIndex = 3528. .PatternColorIndex = 129. .Pattern = xlSolid30.End With31..SeriesCollection(1).32.With .SeriesCollection(2).33. .Size = 1034. .ColorIndex = 535.End With36.End With37. End With38. Set myRange = Nothing39. Set myChart = Nothing40.End Sub代码解析:ChartAdd过程在工作表中自动生成图表,图表类型为簇状柱形图。

excel中用VBA批量生成图表

excel中用VBA批量生成图表

excel中用VBA批量生成图表Sub 图表批量生成()For r = 1 To 100Charts.AddActiveChart.ChartType = xlLineMarkersActiveChart.SetSourceDataSource:=Sheets("Sheet1").Range("A" & r & ":E" & r)'ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1" '删除本句前的'可将各个图表作为对象插入sheet1中,否则各图表将单独作为chart表插入工作簿。

NextEnd Sub===================Sub 图表批量生成()xx = 0yy = 0For r = 4 To 57 '以每位学生生成一个图表,循环产生全班每位学生的曲线图Charts.AddActiveChart.ChartType = xlLineMarkersActiveChart.SetSourceData Source:=Sheets("一班全图").Range("A" & r & ":U" & r), PlotBy _:=xlRows '源数据系列产生于行ActiveChart.Location Where:=xlLocationAsObject,Name:="一班全图" '所有图表插入同一工作表中With ActiveChart.Axes(xlValue) '设置图表属性如:刻度和线型.MinimumScaleIsAuto = True.MaximumScale = 60.MinorUnit = 1.MajorUnit = 5.Crosses = xlAutomatic.ReversePlotOrder = True.ScaleType = xlLinear.DisplayUnit = xlNoneEnd WithActiveChart.Legend.SelectSelection.DeleteActiveChart.SeriesCollection(1).SelectWith Selection.Border.ColorIndex = 3.Weight = xlMedium.LineStyle = xlContinuousEnd WithWith Selection.MarkerBackgroundColorIndex = xlAutomatic.MarkerForegroundColorIndex = 5.MarkerStyle = xlCircle.Smooth = False.MarkerSize = 3.Shadow = FalseEnd With '图表属性设置结束Set myDocument = ActiveSheetFor Each S In myDocument.ChartObjects'MsgBox ()S.ActivateActiveChart.ChartArea.Select '设置图表(即外框)大小及在工作表中的位置S.Top = yy * 136S.Left = xx * 274S.Height = 132S.Width = 270ActiveChart.PlotArea.Select '设置绘图区大小及相对于外框的位置Selection.T op = 9Selection.Height = 132Selection.Left = 0Selection.Width = 270xx = xx + 1 '设置计数器,让图表每三个排一行If xx >= 3 Thenxx = 0yy = yy + 1End IfNext SNext rEnd Sub==================================ActiveChart.ChartArea.SelectSub 改变图表尺寸()Set myDocument = ActiveSheetFor Each S In myDocument.ChartObjects'MsgBox ()S.ActivateActiveChart.ChartArea.Select '这部分是图表区的尺寸代码S.Width = 200S.Height = 200ActiveChart.PlotArea.Select '这部分是绘图区的尺寸代码Selection.Width = 191Selection.T op = 9Selection.Height = 185Next SEnd Sub=================清除图表可以用这个:Sub test()For Each r In Sheets("一班全图").ChartObjects r.DeleteNextEnd Sub=========================。

  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自动生成的代码很不简洁,自己还需要手工对它进行修改。

用同样的方法还可以生成折线图、柱形图等的代码。

相关文档
最新文档