HOWTO: Navigate Excel Objects from Visual BasicID: Q147650
|
This article explains three methods you can use to navigate and access
Microsoft Excel Application objects:
Each object in Microsoft Excel version 5.0 exists somewhere in the application's hierarchy of objects. You choose among these objects by navigating down that application's hierarchy. At the top of this hierarchy is the Application object. Whatever events or actions you assign to the Application object affect the entire application. For example:
' Close the application
[Object].Application.Quit
Replace [Object] with any variable that points to any valid Microsoft Excel
Application Object, which can be created from the following example:
' 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")
The Application object contains other large objects. For example, you can
use the following code to refer to the collection of Workbooks currently
loaded in Microsoft Excel:
[Object].Application.Workbooks
If you want to retrieve a single workbook from the collection, use the Item
method. For example, to refer to the first workbook:
[Object].Application.Workbooks.Item(1)
To close the first workbook:
[Object].Application.Workbooks.Item(1).Close
' 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)
This reference can be lengthy and complex; however, shortcuts are
available. Understanding the navigation operator (.) is fundamental to
successful object programming.
[Object].Application.Workbooks(1).WorkSheets("Sheet1").Cells(1,1)
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
' 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
Office Development Kit, Programming Integrated Solutions
Additional query words: officeinterop w_VBApp W_Excel WM_OLE OA OLE Automation
Keywords : kbprg kb16bitonly kbVBp400 IAPOLE VB4WIN vbwin
Version : WINDOWS:4.00
Platform : WINDOWS
Issue type : kbhowto
Last Reviewed: June 30, 1999