在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)用GetOect函數打開已存在的對象引用:  

  SetAppExcel=GetObject("SAMP.XLS")

  上面語句打開文件SAMP.XLS

  3Application對象常用的屬性、方法 

  屬性、方法方法

  Visible屬性取TrueFalse,表明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:如果爲TrueExcel打印指定對象之前進行打印預覽。如果爲False,或省略則立即打印該對象。
   Printer:設置活動打印機的名稱。
   ToFile:如果爲True則打印輸出到文件。
   Collate:如果爲True則逐份打印每份副本。
  下面語句將活動工作簿的25頁打印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)其中argA1--樣式符號,表示單個單元格或單元格區域。
  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,x13DBarx13DColumn,x13DLine,x13DPiex13DSurfacexlDoughnutxlDefaultAutoFormat
  Format:內置自動套用格式的編號。如省略,將選擇默認值。
  P1otBy:指定系列中的數據是來自行(xlRows)還是列(xlColumns)
  CategoryLabels:表示包含分類標誌的源區域內行數或列數的整數。
  SeriesLabels:表示包含系列標誌的源區域內行數或列數的整數。
  HasLegend:若指定True,則圖表將具有圖例。
  Title:圖表標題文字。
  CategoryTitle:分類軸標題文字。
  ValueTitle:數值軸標題文字。
  ExtraTitle:三維圖表的系列軸標題,或二維圖表的第二數值軸標題。
  可組合使用Add方法和ChartWizard方法,以創建包含工作表中數據的圖表工作表。下例基於工作表“Sheetl”中單元格區域“A1A20”中的數據生成新的折線圖並打印。  
  WithCharts.Add
   .ChartWizardsource=Worksheets("sheet1").Range("a1a20"),gallery=xlLine,title=“折線圖表
   .Printout
  EndWith  
  5、使用Excel工作表函數
  在VB語句中可使用大部分的Excel工作表函數,可通過WorksheetFunction對象調用Excel工作表函數。下面的Sub過程用Min工作表函數求出指定區域中單元格的最小值,並通過消息框顯示結果值。 
  SubUseFunction()
  DimmyRangeAsRange
  SetmyRange=Worksheets("Sheet1").Range("B2F10")
  answer=Application.WorksheetFunction.Min(myRange)
  MsgBoxanswer
  EndSub
  如果使用以區域引用爲參數的工作表函數,必須指定一個Range對象。如可用Match工作表函數對A1A10區域的所有單元格進行搜索。  
  SubFindFirst()
  myVar=Application.WorksheetFunction.Match(9,Worksheets(1).Range("A1A10")0)
  MsgBoxmyVar
  EndSub
  要在單元格中插人工作表函數,可將該函數指定爲對應於Range對象的Formula屬性值。在以下示例中,將當前工作簿SheetlA1B3區域的Formula屬性指定爲RAND工作表函數(此函數產生二個隨機數)。  
  SubInsertFormula()
  Worksheets("Sheet1").Range("A1B3").Formula="RAND()"
  EndSub
  以上簡要介紹了Excel對象模型中部分對象及其屬性和方法,更詳細的信息可參閱Excel2000幫助中的“MicrosoftExcelVisualBasic參考一節的內容。實際上,MicrosoftOffice家族的Word,PowerPoint,AccessProject等應用程序都可以在VB應用程序中調用,其原理和步驟完全相同,只是其對象模型有所不同而已。
->


參考示例 : http://www.5h6.com/article/9907.html
 
發佈了8 篇原創文章 · 獲贊 3 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章