如前所述,在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方法刪除指定單元范圍。
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應用程序中調用,其原理和步驟完全相同,只是其對象模型有所不同而已。
->新聞熱點
疑難解答