在VB应用程序中调用Excel2000

 
一、 Excel 对象模型

  为了在 VB 应用程序中调用 Excel ,必须要了解 Excel 对象模型。 Excel 对象模型描述了 Excel 的理论结构,所提供的对象很多,其中最重要的对象,即涉及 VB 调用 Excel 最可能用到的对象有:



  二、调用 Excel

  在 VB 应用程序中调用 Excel ,实质是将 Excel 作为一个外部对象来引用,由 Excel 对象模型提供能从 VB 应用程序内部来程序化操纵的对象以及相关的属性、方法和事件。

   1 、在 VB 工程中添加对 Excel 类型库的引用

  为了能从 VB 应用程序中访问 Excel 丰富的内部资源,使 Excel 应用程序运行得更快,需要在 VB 工程中添加对 Excel 类型库的引用。具体步骤如下:

   a )从 VB5“ 工程 菜单中选择 引用

   b )在 引用 对话框中选择 Excel 类型库: "MicrosoftExcel9.0ObjectLibrary"

   c )单击左边小方框,使之出现 “√” 符号;

   d )按 确定 退出。

  注:要想在 VB 应用程序中调用 Excel ,你的计算机系统中必须安装 Excel

   2 、引用 Application 对象

   Application 对象是 Excel 对象模型的顶层,表示整个 Excel 应用程序。在 VB 应用程序中调用 Excel ,就是使用 Application 对象的属性、方法和事件。为此,首先要声明对象变量:  

   DimVBExcelAsObject

  或直接声明为 Excel 对象:  

   DimVBExcelAsExcel.Application

  在声明对象变量之后,可用 CreateObject 函数或 GetObject 函数给变量赋值新的或已存在的 Application 对象引用。

   a )用 CreateObject 函数生成新的对象引用:  

   SetVBExcel=CreateObject("Excel.Application")

  字符串 “Excel.Application” 是提供 Excel 应用程序的编程 ID ,这个变量引用 Excel 应用程序本身。

   b )用 GetO ect 函数打开已存在的对象引用:  

   SetAppExcel=GetObject("SAMP.XLS")

  上面语句打开文件 SAMP.XLS

   3 Application 对象常用的属性、方法 

  属性、方法方法

   Visible 属性取 True False ,表明 Excel 应用程序是否可见。

   Left,Top 属性 Excel 窗口的位置;

   Height,Width 属性 Excel 窗口的大小;

   WindowState 属性指定窗口的状态,取: XIMaximized( 最大化 )X1Minimized( 最小化 )x1Normal( 缺省 )

   Quit 方法退出 MicrosoftExcel

   Calculate 方法重新计算所有打开的工作簿、工作表或单元格。

   Evaluate 方法求值数学表达式并返回结果。

  示例 1 :求值数学表达式:  

   DimVBExcelAsObject

   SetVBExcel=CreateObject("Excel.Application")

   X=VBExcel.Evaluate("3 5*(cos(1/log(99.9)))")
  三、使用 Excel 应用程序
  如前所述,在 VB 应用程序中调用 Excel 应用程序,就是使用 Application 对象的属性、方法和事件。下面分类给出其中常用的属性和方法。
   1 、使用工作薄
   Workbook 对象代表 Excel 应用程序中当前打开的一个工作簿,包含在 Workbooks 集合中。可以通过 Workbooks 集合或表示当前活动工作簿的 ActiveWorkbook 对象访问 Workbook 对象。
  常用的方法有:  
  属性、方法意义
   Add 方法创建新的空白工作簿,并将其添加到集合中。
   Open 方法打开工作簿。
   Activate 方法激活工作簿,使指定工作簿变为活动工作簿,以便作为 ActiveWorkbook 对象使用。
   Save 方法按当前路径和名称保存现有工作簿 ( 如是首次保存,则将其保存到缺省名称中,如 BOOK1.XLS)
   SaveAs 方法首次保存工作簿或用另一名称保存工作簿。
   Close 方法关闭工作簿。
   PrintOut 方法打印工作簿,语法为:  
   PrintOut(from,To,Copies,Preview,Printer,ToFile,Collate)
  可选参数:  
    From :打印的起始页号。如省略将从起始位置开始打印。
    To :打印的终止页号。如省略将打印至最后一页。
    Copies :要打印的份数。如省略将只打印一份。
    Preview :如果为 True Excel 打印指定对象之前进行打印预览。如果为 False ,或省略则立即打印该对象。
    Printer :设置活动打印机的名称。
    ToFile :如果为 True 则打印输出到文件。
    Collate :如果为 True 则逐份打印每份副本。
  下面语句将活动工作簿的 2 5 页打印 3 份:  
   ActiveWorkbook.PrintOutFrom =2To5Copies =3
  示例 2 :生成、保存、关闭工作簿  
   DimVBExcelAsExcel.Application
   SetVBExcel==CreateObject("Excel.Application")
   WithVBExcel
   .Workbooks.Add
   WithActiveWorkbook
   .SaveAs"C /Temp/OUTPUT.XLS"
   .Close
   EndWith
   .Quit
   EndWith
   2 、使用工作表
   Sheets 集合表示工作簿中所有的工作表。可以通过 Sheets 集合来访问、激活、增加、更名和删除工作表。一个 Worksheet 对象代表一个工作表。
  常用的属性、方法有:  
  属性、方法意义
   Worksheets 属性返回 Sheets 集合。
   Name 属性工作表更名。
   Add 方法创建新工作表并将其添加到工作簿中。
   Select 方法选择工作表。
   Copy 方法复制工作表。
   Move 方法将指定工作表移到工作簿的另一位置。
   Delete 方法删除指定工作表。
   PrintOut 方法打印工作表。
  示例 3 :将 C 盘工作簿中的工作表复制到 A 盘工作簿中:  
   DimVBExcelAsExcel.Application
   SetVBExcel=CreateObject("Excel.Application")
   WithVBExcel
    .Workbooks.Open"C /Temp/OUTPUT.XLS"
    .Workbooks.Open"A /OUTPUT1.XLS"
    .Workbooks("OUTPUT.XLS").Sheets("Sales").Copy
    .Workbooks("OUTPUT1.XLS)
    .Workbooks("OUTPUT1.XLS").Save
    .Workbooks("OUTPUT.XLS").Close
    .Workbooks("OUTPUTI.XLS").Close
    .Quit
   EndWith
   3 、使用单元范围
   Range 对象代表工作表的某一单元格、某一行、某一列、某一选定区域或者某一三维区域。
  常用的属性、方法有:  
  属性、方法意义
   Range 属性 Range(arg) 其中 arg A1-- 样式符号,表示单个单元格或单元格区域。
   Cells 属性 Cells(row,col)( 其中 row 为行号, col 为列号 ) 表示单个单元格。
   ColumnWidth 属性指定区域中所有列的列宽。
   Rowl3eight 属性指定区域中所有行的行宽。
   Value 属性指定区域中所有单元格的值 ( 缺省属性 )
   Formula 属性指定单元格的公式,由 A1-- 样式引用。
   Select 方法选择范围。
   Copy 方法将范围的内容复制到剪贴板。
   C1earContents 方法清除范围的内容。
   Delete 方法删除指定单元范围。

   4 、使用图表
   Chart 对象代表工作簿中的图表。该图表既可为嵌人式图表 ( 包含于 ChartObject 对象中 ) 也可为分立的图表工作表。
  常用方法有:  
  方法意义  
   Add 方法新建图表工作表。返回 Chart 对象。
   PrineOut 方法打印图表。
   ChartWizard 方法修改给定图表的属性,其语法为:   
   ChartWizard(Source,Gallery,Format,P1otBy,CategoryLabels,
   SeriesLabels,HasLegend,Title,CategoryTitle,ValueTitle,ExtraTitle)
  其中:
   Source :包含新图表的源数据的区域。如省略,将修改活动图表工作表或活动工作表中处于选定状态的嵌人式图表。
   Gallery :图表类型。其值可为下列常量之一: xlArea,x1Bar,xlColumn,xlLine,x1Pie,xlRadar,x1XYScatter,xlCombination,x13DArea,x13DBar x13DColumn,x13DLine,x13DPie x13DSurface xlDoughnut xlDefaultAutoFormat
   Format :内置自动套用格式的编号。如省略,将选择默认值。
   P1otBy :指定系列中的数据是来自行 (xlRows) 还是列 (xlColumns)
   CategoryLabels :表示包含分类标志的源区域内行数或列数的整数。
   SeriesLabels :表示包含系列标志的源区域内行数或列数的整数。
   HasLegend :若指定 True ,则图表将具有图例。
   Title :图表标题文字。
   CategoryTitle :分类轴标题文字。
   ValueTitle :数值轴标题文字。
   ExtraTitle :三维图表的系列轴标题,或二维图表的第二数值轴标题。
  可组合使用 Add 方法和 ChartWizard 方法,以创建包含工作表中数据的图表工作表。下例基于工作表 “Sheetl” 中单元格区域 “A1 A20” 中的数据生成新的折线图并打印。  
   WithCharts.Add
    .ChartWizardsource =Worksheets("sheet1").Range("a1 a20"),gallery =xlLine,title =“ 折线图表
    .Printout
   EndWith   
   5 、使用 Excel 工作表函数
  在 VB 语句中可使用大部分的 Excel 工作表函数,可通过 WorksheetFunction 对象调用 Excel 工作表函数。下面的 Sub 过程用 Min 工作表函数求出指定区域中单元格的最小值,并通过消息框显示结果值。 
   SubUseFunction()
   DimmyRangeAsRange
   SetmyRange=Worksheets("Sheet1").Range("B2 F10")
   answer=Application.WorksheetFunction.Min(myRange)
   MsgBoxanswer
   EndSub
  如果使用以区域引用为参数的工作表函数,必须指定一个 Range 对象。如可用 Match 工作表函数对 A1 A10 区域的所有单元格进行搜索。  
   SubFindFirst()
   myVar=Application.WorksheetFunction.Match(9,Worksheets(1).Range("A1 A10") 0)
   MsgBoxmyVar
   EndSub
  要在单元格中插人工作表函数,可将该函数指定为对应于 Range 对象的 Formula 属性值。在以下示例中,将当前工作簿 Sheetl A1 B3 区域的 Formula 属性指定为 RAND 工作表函数 ( 此函数产生二个随机数 ) 。  
   SubInsertFormula()
   Worksheets("Sheet1").Range("A1 B3").Formula="RAND()"
   EndSub
  以上简要介绍了 Excel 对象模型中部分对象及其属性和方法,更详细的信息可参阅 Excel2000 帮助中的 “MicrosoftExcelVisualBasic 参考 一节的内容。实际上, MicrosoftOffice 家族的 Word,PowerPoint,Access Project 等应用程序都可以在 VB 应用程序中调用,其原理和步骤完全相同,只是其对象模型有所不同而已。
->


参考示例 : http://www.5h6.com/article/9907.html
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值