VBA_U2

advertisement
2
Working with the Object Model
Visual Basic for Applications
2
Objectives

In this unit, you will learn how to:

Refer to the objects contained in an application’s
object model

Use the Object Browser in the Visual Basic Editor

Enter instructions in the Immediate window in the
Visual Basic Editor

Refer to the most commonly used objects in
Excel, Word, and Access
Concept Lesson:
Understanding the Object Model
2

Although all VBA-enabled applications
share the same language, each contains
its own unique set of objects, referred to
as the application’s object model

A collection object, typically referred to
simply as a collection, is a group of one or
more individual objects treated as one unit
PowerPoint Object Models
PowerPoint 2000 Object Model
 PowerPoint XP Object Model
 PowerPoint 2003 Object Model
 PowerPoint 2007 Object Model
 ? PowerPoint 2010 Object Model
 PowerPoint 2013 Object Model

Referring to the Objects Contained
in an Application’s Object Model
2

You can refer to an individual object within a
collection using either its name or its position
number in the collection

The Application rectangle represents the
Application object

Immediately below the Application rectangle is
the Presentations (Presentation) rectangle, which
represents both the Presentations collection and
the individual Presentation objects within the
collection
2
The Most Commonly Used
PowerPoint Objects
Exhibit 2-1: The most commonly used PowerPoint objects
Application object




Represents the entire Microsoft PowerPoint application.
Contains application-wide settings and options
Contains properties that return top-level objects, such as
ActivePresentation.
You can use the following properties of the Application
object without the object qualifier:
– ActivePresentation
– ActiveWindow
– Presentations
2
Referring to the Objects Contained
in an Application’s Object Model

The Slides (Slide)
rectangle is one level
down from the
Presentations
(Presentation) rectangle
in the object model

The plural word Slides
denotes the name of
the collection, and the
singular word Slide
indicates the type of
object included in
the collection
Exhibit 2-2: The PowerPoint objects and collections
Referring to Objects
in VBA Code
2




You can use VBA to refer to any element in an
application’s object model, but to do so you must
specify the object’s exact location in the object
model’s hierarchy
You begin at the top of the hierarchy, with the
Application object, and then work your way down
each level until you reach the desired element
You can refer to a specific object within a collection
using either the object’s name, enclosed in quotation
marks, or its position number within the collection,
referred to as its index
In most collections, the index of the first object in the
collection is 1
Referring to an Object’s Properties
and Methods in VBA Code
2

A property is a characteristic of an object, and
a method is an action that an object can
perform on its own

The Application object has a Name property
that stores the Application object’s name, and it
has a Quit method that is used to end the
application

You use the expression.property syntax in a
VBA instruction to access an object’s property,
and you use the expression.method syntax to
invoke one of its methods
Referring to an Object’s Properties
and Methods in VBA Code
2

Before you can customize an application,
you need to become familiar with the
objects in its object model

One way to do so is to use the Object
Browser, which is available in the Visual
Basic Editor
2


The Object Browser
A class is the formal
definition of an object; it
defines the properties
that control the object’s
appearance, and the
methods and events that
control the object’s
behavior
All of the information
pertaining to an
application’s object
model is stored in an
object library, which is
simply a file
Exhibit 2-3: The Object Browser showing
only PowerPoint classes
Getting Help in the
Object Browser
2



You can view an object’s Help screen by
clicking the object’s class in the Classes list
box, and then clicking the Help button located
at the top of the Object Browser window
According to the Help screen, the Application
object represents the entire Microsoft
PowerPoint application
To view a listing of these lower-level objects,
you need simply to click the Multiple Objects
rectangle; doing so will open the Topics Found
dialog box
Getting Help in the
Object Browser
2

To view a Help screen for one of these objects,
you select the object’s name in the list, and
then click the Display button
2
Presentations Collection Object
Help Screen
Exhibit 2-4: The Presentation collection object’s Help screen
2
Using the Immediate Window

In addition to the Code window, the Visual Basic
Editor also provides an Immediate window into
which you can enter VBA instructions
Exhibit 2-5: The Immediate window showing the VBA instructions
2
Using the Immediate Window

In the ?Application.Presentations.Count
–
–

Application.Presentations specifies the location of the
Presentations collection in the object model
Count specifies the desired property
In the ?Application.Presentations(2).Name
–
–
Applications.Presentations(2) is the expression
Name is the property whose value you want to display
Printing Code from the
Immediate Window
2

You can use either a text editor or a word
processor—for example, WordPad or
Word—to print the instructions entered in
the Immediate window

Like the Object Browser and the Help
screens, the Immediate window is an
invaluable tool for learning an
application’s object model
2
Summary
To refer to an object in an application’s
object model:
 Specify the object’s exact location in the
object model
 If the object is a member of a collection, include
either the object’s name or its index in a set of
parentheses following the collection’s name
To access the property of an object:
 Use the expression.property syntax
To invoke one of an object’s methods:
 Use the expression.method syntax
2
Summary
To view information about the various objects
available to your application:

Open the Object Browser window by clicking
the Object Browser button on the Visual Basic
Editor’s Standard toolbar

Select the appropriate object library from the
Project/Library list box

Click the appropriate keyword in the Classes
list box, and then click the Help button
2
Summary
To use the Immediate window in the Visual
Basic Editor:
 Open the Immediate window in the Visual
Basic Editor by clicking View on the Visual
Basic Editor menu bar, and then clicking
Immediate window
 Enter the instruction in the Immediate
window
 You can copy and paste instructions from
one part of the Immediate window to
another
Excel Lesson:
Understanding the Excel
Object Model
2

Exhibit 2-6
shows the
portion of the
Microsoft Excel
object model
that includes
the most
commonly used
Excel objects
Exhibit 2-6: The Excel Object model
2

Understanding the Excel
Object Model
A Range object
in Excel is
defined as
a cell, a row,
a column, or
a selection
of cells
containing one
or more
contiguous or
noncontiguous
blocks of cells
Exhibit 2-7: The Excel objects and collections
Using the Object
Browser in Excel
2



The Object Browser is a useful tool for
understanding the structure of an object
model and for studying the various objects
included in the model, as well as the
properties and methods of the objects
To access the Object Browser in Excel, click
the Object Browser button in Visual Basic
Editor
A Multiple Objects rectangle represents
the next level of objects in the object
model hierarchy
Using the Immediate
Window in Excel
2

Unlike the Code window, the
Immediate window allows you to test
a line of code without having to
create and run an
entire procedure
2

Referring to Range Objects
A Range object in Excel is defined as a cell, a
row, a column, or a group of contiguous or
noncontiguous cells
Exhibit 2-8: Referring to a Range object in Excel
Word Lesson:
Understanding the Word
Object Model
2

Exhibit 1-9 shows the portion of the Microsoft Word
object model that includes the most commonly used
Word objects
Exhibit 2-9: The Word Object model
2
Word objects and collections
Exhibit 2-10: The Word objects and collections
Understanding the Word
Object Model
2

A Range object in Word is defined as a
contiguous area in a document; it can be as
small as the insertion point or as large as the
entire document

Although a paragraph is a contiguous area in a
document, it is considered a Paragraph object
rather than a Range object

The Application object, which refers to Microsoft
Word, contains one Document object in its
Documents collection

The Document object’s name is Word Lesson.doc
Understanding the Word
Object Model
2

The Word Lesson document also contains
five sentences in its Sentences collection;
each sentence is a Range object

Like the Sentences collection, the Words
collection also consists of Range objects

The Characters collection also consists
of Range objects, but each Range object
in this collection is composed of exactly
one character
2
Using the Immediate Window

You will enter several VBA instructions
into the Immediate window in the Visual
Basic Editor

Recall that, unlike the Code window, the
Immediate window allows you to test a
line
of code without having to create and run
an entire procedure
Using the Range Object’s
Select Method
2

You can use the Range object’s
Select method to select a word,
sentence, paragraph, or character in
a document
Access Lesson:
Understanding the Access
Object Model
2

Exhibit 2-11 shows the portion of the Microsoft
Access object model that includes several of the
most commonly used Access objects
Exhibit 2-11: The Access Object model
2


Understanding the Access
Object Model
In Access, forms and reports are considered
AccessObject objects
You will use the Object Browser in the Visual
Basic Editor, to display a Help screen for the
Application object in Access
2

Using the Object Browser
in Access
When you enter the Quit method in either the
Immediate or Code windows, the Auto List Members
list shows that the names of the constants are
acQuitPrompt, acQuitSaveAll, and acQuitSaveNone
2

Using the Object Browser
in Access
Notice that a Multiple Objects
rectangle, which represents the objects
located on the next level in the object
model hierarchy, appears below the
CurrentProject rectangle in the Help
screen
2

Using the Immediate
Window in Access
You will enter several VBA instructions into
the Immediate window in the Visual Basic
Editor
Download