如何瀏覽從 Visual Basic 的 Excel 物件

文章翻譯 文章翻譯
文章編號: 147650 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您,您可以用來瀏覽及存取 Microsoft Excel 應用程式物件的三種方法:

  • 使用 [longhand] 和 [預設屬性
  • 使用別名
  • 使用 Microsoft Excel 版本 5.0 物件的父代和應用程式的方法來存取任何 Microsoft Excel 物件

其他相關資訊

Microsoft Excel 版本 5.0 中的每個物件的物件的應用程式的階層架構中有某處。您藉由瀏覽該應用程式階層下選擇這些物件之間。此階層的頂端是應用程式物件。任何事件或您指定給應用程式物件的動作會影響整個應用程式。例如:
   ' Close the application
   [Object].Application.Quit
				
取代 [物件] 為指向任何有效 Microsoft Excel 物件,它可以從下列範例建立的任何變數:
   ' MyObject represents [Object] and OLE1 represents an OLE control
   ' that contains an Microsoft Excel Worksheet object.
   MyObject = OLE1.Object
   Set MyObject = CreateObject("Excel.Sheet")
   Set MyObject = GetObject("C:\EXCEL\EXAMPLES\SAMPLES.XLS")
				
[應用程式物件包含其他大型物件。比方說您可以使用下列程式碼來參照活頁簿在 Microsoft Excel 中目前載入的集合:
   [Object].Application.Workbooks
				
若想從集合中擷取單一活頁簿使用 Item 方法。為了讓範例參照第一個活頁簿:
    [Object].Application.Workbooks.Item(1)
				
若要關閉第一個活頁簿:
   [Object].Application.Workbooks.Item(1).Close
				

存取使用 Longhand 參考或預設屬性的物件

每個活頁簿包含工作表的集合,每個工作表包含儲存格,等等的集合。(請參閱 Microsoft Excel 文件和說明如需 Microsoft Excel 物件階層架構的特定詳細資料] 功能表)。在程式碼,參照特定的儲存格可能看起來像這樣:
   ' Following refers to cell A1 on Sheet1 in the first workbook.
   ' Enter the following two lines as one, single line:
   [Object].Application.Workbooks.Item(1).
      WorkSheets.Item("Sheet1").Cells.Item(1,1)
				
這個參考可以是冗長而複雜,不過,捷徑都會可用。了解導覽運算子 (.) 是成功的物件程式設計的基礎。

短剪下

所有物件都都有預設屬性和方法。對於集合,預設方法會是 Item 方法。大部分物件的 Name 屬性會是預設屬性。此慣例已實作成簡化程式設計。比方說到可以簡化先前的範例:
   [Object].Application.Workbooks(1).WorkSheets("Sheet1").Cells(1,1)
				

存取物件的別名的物件

您可以使用別名來簡化物件程式設計。如果是撰寫許多已操作 Sheet1 中的程式碼,例如語法可能變成冗長。若要避免發生這種情況,所建立指向最低的常見物件的物件。這就是所謂的別名。若要建立別名使用 Set 陳述式:
   Dim Sheet1 as Object
   ' Alias Sheet1 to represent [Object]...WorkSheets("Sheet1")
   Set Sheet1 = [Object].Application.Workbooks(1).WorkSheets("Sheet1")
   ' Now just use the variable Sheet1 to refer to Sheet1.
   Sheet1.Cells(1,1).Value = "Title"
   Sheet1.Cells(1,2).Value = "ID"
   Sheet1.Cells(1,3).Value = "Cost"
   Sheet1.Cells(2,1).Value = "Phone"
   Sheet1.Cells(2,2).Value = 123413423
   Sheet1.Cells(2,3).Value = 89.95
				

使用父代和應用程式的方法來存取物件

父代和應用程式的方法可讓您巡覽回物件階層架構中向上。巡覽回到應用程式] 物件的應用程式方法,並父代方法巡覽向上一個層級的物件階層架構。本文中的所有範例都開始使用 [物件]。只要 [物件] 是有效的 Microsoft Excel 物件,所有這些陳述式都也有效。 不論 [物件] 內容。

當程式設計從 Visual Basic 4.0 版 Microsoft Excel 物件時,這會很有幫助。Microsoft Excel 會公開只有三個物件可以用來作為至 Microsoft Excel 的進入點。這些是:

  • Excel.Application
  • Excel.Sheet
  • Excel.Chart
不要將由 Excel.Application.5 混淆。Excel.Application 永遠會指向最新版本的 Microsoft Excel]。Microsoft Excel 版本 5.0 只會指向 Excel.Application.5。

未公開的活頁簿物件,因此還有沒有直接存取活頁簿物件的方法。不過,這並非問題,因為工作表] 或 [圖表物件的父代方法會傳回活頁簿物件。下列範例程式碼將說明這一點。

注意: oleExcel 為 OLE 控制項包含 Excel.Sheet 物件。
   ' Declare object references:
   Dim Xlapp As object
   Dim XLWkb As object
   Dim XLWks As object
   Dim XLWksNew As object

   oleExcel.Action = 7   ' Activate OLE Object

   Set XLWks = oleExcel.Object   ' Alias Worksheet object
   Set XLWkb = XLWks.Parent      ' Alias WorkBook object
   Set Xlapp = XLWks.Application ' Alias Application object

   ' Add a new worksheet to the Workbook and name it:
   Set XLWksNew = XLWkb.Worksheets.add  ' Assign alias to new Worksheet
   XLWksNew.Name = "VB4 OLE Automation" & XLWkb.Worksheets.count

   ' Make the 3rd Worksheet of the Workbook active:
   XLWkb.Worksheets(3).Activate

   ' Display the dialog for InsertPicture:
   Xlapp.dialogs(342).[Show]  ' xlDialogInsertPicture = 342
				

?考

辦公室開發套件程式設計整合式的解決方案

屬性

文章編號: 147650 - 上次校閱: 2006年10月11日 - 版次: 2.3
這篇文章中的資訊適用於:
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 16-bit Enterprise Edition
  • Microsoft Excel 5.0 Standard Edition
關鍵字:?
kbmt kb16bitonly kbhowto kbprogramming KB147650 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:147650
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com