WORKING WITH OBJECT VARIABLES Visual Basic for Applications
Jan 09, 2016
WORKING WITH OBJECT VARIABLES
Visual Basic for Applications
Objectives
• Explain how properties and variables are stored in memory
• Create an object variable using the Dim statement
• Select the appropriate name and data type for an object variable
• Use the Set statement to assign an object’s address to an object variable
Objectives
• Excel:• Insert a row, value, and formula into a worksheet• Format an Excel worksheet
• Word:• Assign a theme to a Word document • Create a hyperlink in a Word document
• Access: • Open an Access report• Order the records in an Access report
Concept Lesson:Using object variables
• Every object has a set of properties
• Values of those properties control the object’s appearance and behavior
• VBA stores each property, along with its corresponding value in the internal memory
• VBA automatically reserves memory cells for the properties of every object it creates
• Memory cells have value, name and data type
Variables
• A programmer also can reserve memory cells for
storing information
• The memory cells reserved by the programmer
are called variables
• Variables created by the programmer must have
• Name
• data type
Variables
• Numeric variables• Store only numbers
• String variables• Store numbers, letters, and special characters
• Object variables• Store memory address of the object
• Make procedures easier to write and understand
• Help to improve the performance of a procedure
• Faster access to the property of an object: Application.Presentations(1).Slides(1).Name
An Object Variable and the Object to Which It Refers
Instructions to Display the First Slide Object’s Name and Layout
Properties
Exhibit 3-2: The instructions to display the first Slide object’s Name and Layout properties
Instructions to Display the First Slide Object’s Name and Layout
Properties• Without an object variable
• Application.Presentations(1).Slides(1). Name• Application.Presentations(1).Slides(1). Layout
• With object variable named sldFirst• sldFirst.Name• sldFirst.Layout
Object Variables
• Without an object variable: • VBA needs to locate the appropriate Application, Presentation, and Slide objects
in memory for each property
• With an object variable:
• VBA uses to the memory address of the object for each property
• The sldFirst object variable contains an address that points directly to the location of the Slide object in memory
Scope of Variables
• A variable’s scope refers to which procedures in the project can use the variable
• There are three scoping levels: • procedure-level
• private module-level (available only to procedures in that module)
• public module-level (available to all procedures in all modules)
• Module-level variables and constants are defined in the Declarations section of a module
• Module-level constants are private by default.
Reserving a procedure-level variable
• A procedure-level variable is declared, within a procedure, and it can be used only by the procedure in which it is declared
• Use Dim statement to reserve a procedure-level variable• The syntax of the Dim statement is
Dim variablename As datatype
where variablename represents the name of the variable
and datatype represents its data type
• Using Dim statement in a procedure VBA reserves a memory cell called variablename whose data type is datatype
Selecting the Appropriate Data Type and Name for an Object Variable
• Need to assign a data type to each variable• If an object variable will point to a
• Document object, then the object variable’s data type willbe Document
• Worksheet object, then the object variable’s data type will be Worksheet
• You also must assign a name to the variable• The variable name should help you remember
• data type • purpose of the variable
Data Types Corresponding to Some of the Objects Available
in the Microsoft Office Applications
Exhibit 3-3: The data types corresponding to some of the objects available in Microsoft Office applications
Naming Conventions• Following a naming convention is a valuable practice. • RVBA Naming Conventions
• http://www.xoc.net/standards/rvbanc.asp
• Leszynski Naming Conventions• http://en.wikipedia.org/wiki/Leszynski_naming_convention
• Microsoft Consulting Services Naming Conventions for Visual Basic• http://support.microsoft.com/?kbid=110264
• Object Hungarian Notation Naming Conventions for VB• http://support.microsoft.com/kb/q173738
• Our Notation: Define your variable beginning with three-character ID that identifies it’s data type
Data Types and Their Three-Character IDs
Exhibit 3-4: The data types and their three-character IDs
Rules and Examples for Variable Names
Exhibit 3-5: The rules and examples for variable names
Selecting the Appropriate Data Type and Name
for an Object Variable• VBA automatically initializes the object variable to the
keyword Nothing
Exhibit 3-6: Some examples of the Dim statement used to declare object variables
Using the Set Statement
• You use the Set statement to assign the address of an object to an object variable
• The syntax of the Set statement is • Set objectVariableName=object
• objectVariableName is the name of an object variable
• object is the object whose address you want to store in the variable
• The Set statement locates the object in memory and then stores the object’s address in the memory cell whose name is objectVariableName
Examples of the Set Statement
• Set sldFirst = Application.Presentations(1).Slides(1)
• Set docSales = Application.Documents(1)
• Set shtPay = Application.Workbooks(1).Workshees(1)
• Set rptBonus = Application.Reports(“bonus”)
• Set rngVBA = Application.Documents(“vba.doc”).Sentences(4)
Summary
To create a procedure-level object variable, and then assign an address to it:
• Use the Dim statement to create the variable
• Use the Set statement to assign the address of an object to an object variable
Excel: Creating the FormatWorksheet Macro Procedure
Exhibit 3-8: The sales workbook showing First Quarter worksheet
Worksheet Format Desired by the District Sales Manager
Exhibit 3-9: The worksheet format desired by the district manager
Worksheet Format Desired by the Regional Sales Manager
Exhibit 3-10: The worksheet format required by regional sales manager
Creating the FormatWorksheet Macro Procedure
Exhibit 3-11: The pseudocode for the FormatWorksheet procedure
Inserting Rows Into a Worksheet
• You insert a row into a worksheet using the syntax:• worksheetObject.Rows(rowNumber).Insert
• worksheetObject is the name of a Worksheet object• rowNumber is the row above which the new row will be inserted
Entering a Value and Formula Into aRange Object
• Recall that a row, a column, or a group of contiguous
or noncontiguous cells in a worksheet also are Excel
Range objects
Entering a Formula Into a Range Object
• You need to enter the following formulas in cells B13 through D13 in the worksheet:B13 formula = SUM (B4:B12)
C13 formula = SUM (C4:C12)
D13 formula = SUM (D4:D12)
Exhibit 3-13: The two ways of entering the SUM formulas into cells B13 through D13
Formatting and previewing Worksheet Objects
• A collection of predesigned worksheet formats is availablein Excel
Exhibit 3-14: The names of some of the Excel predesigned formats
Word Lesson:Creating the FormatPromo Macro Procedure
• A theme in Microsoft Word is a set of unified design elements and color schemes for
• Background images
• Bullets
• Fonts
• Horizontal lines
• Other document elements
Promo Document
Example of a Formatted Document
Exhibit 3-16: The formatted document
Pseudocode for theFormatPromo Procedure
Exhibit 3-17: The pseudocode for the FormatPromo procedure
Partial Listing of Themes Availablein Microsoft Word
• The default location for theme data folders is C:\Program Files\Common Files\Microsoft Shared\Themes
• You must use the folder name for the theme
Applying a Theme to a Document
• You use the ApplyTheme method to apply a theme to a document
• The syntax of the ApplyTheme method is:
• documentObject.ApplyTheme Name:=themeName
• documentObject is the name of a Document object
• themeName is the name of a theme
• Example:
• docVBA.applytheme name:=“Breeze"
ApplyTheme in Word 2007
Changing the Document’s Font Size
• You use the following syntax to change the size of the font used in the document: documentObject.Content.Font.Size=font Size
• Example:
docVBA.content.font.size = l2
Adding a Hyperlink to a Document
• You use the Add method of the Document object’s Hyperlinks collection to add a hyperlink to a document
• The syntax of the Add method is documentObject.Hyperlinks.Add Anchor:=rangeObject, Address:=linkAddress
• Example:docVBA.Hyperlinks.Add _Anchor:=docVBA.Sentences(1),Address:="http://www.Oakton.edu"
Hyperlinks.Add in Word 2010
Access Lesson:Creating and using object variables in
Access• Open Professor Martinez’s database, which is located in the
• Student Data\Tut03\Access folder
• View the StudentReport
Creating the DisplayByGrade Procedure
Exhibit 3-19: The pseudocode for the DisplayByGrade procedure
Opening an Access Report
• You use the OpenReport method of the DoCmd object to open an Access report
• The syntax of the OpenReport method is:• DoCmd.OpenReport Reportname:=reportName, View:=viewName
• where reportName is the name of a report
• viewName is the name of a view
• Example
• DoCmd.OpenReport Reportname:=“Students”
DoCmd.OpenReport in Access 2010
Valid View Names for the OpenReport Method’s
View Argument
Exhibit 3-20: The valid view names for the OpenReport method’s View argument
Ordering the Records in a Report
• To change the order of the records that appear in a report, you need first to set the Report object’s OrderByOn property to the Boolean value True