Object Programming With Visual Basic 4
By Joel P. Dehlin and Matthew J. Curland
Table of Contents
Preface
Acknowledgments
Introduction
Part one A Taste of Visual Basic
1. Visual Basic Building Blocks 5
Graphical User Interface
Windows Communication
Why Go GUI?
Windows Does GUI
Objects
Events and Event Procedures
Properties
Working with Visual Basic Elements
The Object
The Event
The Property
Taking Control
The Visual Basic Toolbox
Adding Custom Controls to the Toolbox
Using Controls
2. QuickEdit, Your First Visual Basic Program 25
Creating Useful Programs
Functionality
Efficiency
Usability
Aesthetics
QuickEdit Design Considerations
QuickEdit Functionality
QuickEdit Efficiency
QuickEdit Usability
QuickEdit Aesthetics
QuickEdit Object Creation
The Project File
The Form Object
The TextBox Object
The Menu Object
Creating an Executable
Setting Properties at Run-Time
Numeric and Text Properties
Enumerated Properties
Boolean Properties
Color Properties
Font Properties
Picture Properties
3. Let's Write Some Code 41
Procedures
Subs and Functions
Arguments
Support Routines
Modules
QuickEdit Support Routines
The OpenFile Function
The SaveFile Function
The CheckFileDirty Function
The SetCaption Sub
Basic Form Functionality
The Form_Load() Event Procedure
The Form_Resize() Event Procedure
The Form_QueryUnload() Event Procedure
The mnuFileExit_Click() Event Procedure
Event Hookup
The txtFile_Change() Event Procedure
The mnuFileNew_Click() Event Procedure
The mnuFileOpen_Click() Event Procedure
The mnuFileSave_Click() Event Procedure
The mnuFileSaveAs_Click() Event Procedure
Playing the User
Debugging
F5 (Run, Continue)
F8 (Step)
Shift-F8 (Step Over)
Ctrl-F8 (Step to Cursor)
F9 (Toggle Breakpoint)
Ctrl-F9 (Set Next Statement)
Shift-F9 (Instant Watch)
End
Other Debugging Techniques
QuickEdit Enhancements
CommonDialog File Dialogs
Simplified File-Save
Full QuickEdit Code Listing
Part Two Objects and Visual Basic
4. Object Basics 77
OOP: The Wave of the Present
Visual Basic 4 and OOP
Objects in Programming
So What Is an Object?
Objects and Classes
Properties
Methods
Internal Information
Rolling Your Own Object
Picture This
MailBox Object: Step by Step
Private vs. Public
Public Variables
Property Procedures
Implementing Methods
Built-In Class Events
5. Creating Objects 93
Creating Instances from Classes
Life Cycle of an Instance
Declaration
Object Creation
Object Destruction
Multiple Object References
Property Set/Get Procedures
MailBox Object Sample Form Code
6. Driving Other Objects with Visual Basic 117
Adding Objects to Your VB Project
Visual Basic's OLE and OLE Automation Capabilities
OLE
OLE Automation
Using VBA Code to Manipulate Other Applications' Objects
Default Library References
Adding a Reference
Using the Object Browser
Generic Objects
The MailBox Client Applet
Creating Visual Basic Object Servers
Exposing Classes
Polite Object Servers: Staying Alive
Debugging an Object Server
Compatible Servers: The Server Identity Crisis
Object Browser Information
Object Servers in DLLs
Advantages and Limitations of In-Process Servers
Making an In-Process (DLL) Server
Debugging a DLL Server
Using an In-Process MailBox Server
Performance Comparison
7. Using Insertable Objects and Container Controls 149
Using Insertable Objects
Adding an Insertable Object at Design-Time
Manipulating an Insertable Object at Run-Time
Using OLE Container Controls
Creating a Container Control Object at Design-Time
Creating a Container Control Object at Run-Time
Letting the User Specify Container Control Objects at Run-Time
Verbs
OLE Container Control Properties
OLE Container Control Methods
Binding an OLE Container Control to a Database
Toolbars and Menus
MDI Applications
A Sample Application
Part THREE Microsoft Excel and Visual Basic Object Interactions
8. Microsoft Excel Object Basics 183
Excel-VBA Basics
Macros
Event Handling Macros
User-Defined Functions
Support Routines
Debugging
Top-Level Objects
Application Object
Workbook Object
Window Object
Sheet Objects
Range Object
Creating Microsoft Excel Objects from Visual Basic
GetObject and Application Objects
Creating Excel's Application Object
Creating Excel's Worksheet Object
9. Performance-Tuning Excel-VBA 221
Selection-Centric vs. Object-Centric Macros
Doing the Job Once
Forcing Early Binding in Excel
The “Count the Dots” Principle
Late-Bound Dots
Cross-Process Dots
Counting Hidden Dots
Dot Counting Examples
Conversing Between Visual Basic and Microsoft Excel
Calling Excel Macros from VB
Using Visual Basic Class Instances in Microsoft Excel Macros
Assigning Arrays to Multi-Cell Ranges
10. Finishing a Custom Workbook 239
Auto Macros
RunAutoMacros: Auto Macros from VBA
Customizing Menus
Using the Microsoft Excel Menu Editor to Modify Menu Bars
Creating Custom Menu Bars in Code
A Custom Menu Bar Example
Attaching Custom Toolbars to a Workbook
Setting Workbook Properties
Microsoft Excel Add-Ins
Creating an Add-In
Loading an Add-In
11. Using Visual Basic Objects in Microsoft Excel 263
The Parent Object Dilemma
Parent Objects: The Problem
Parent Objects: A Solution
The ExcelTimer Sample Application
ExcelTimer Architecture
The DataForm Sample Application
DataForm Architecture
DataForm Support Topics
Floating and Contained Windows
Resource Files
Drag and Drop
Persistent Program Settings
In-Process DataForm
XLCallBack Sample
Asynchronous Processing
XLCallBack Architecture
XLCallBack Support Topics
Activating a Previous Instance
An Integer Stack
Part FOUR The Kitchen Sink
12. Programming in Microsoft Word 339
WordBasic
Using the WordBasic Object
Creating the WordBasic Object
References
Using the WordBasic Object Library
WordBasic Methods
Named Arguments
Positional Arguments
Command Buttons
The CurValues Method
Quitting Word
Embedded Objects
WordBasic Examples
Sample: LetterMaker
13. The Point Is Power 373
Introduction to PowerPoint
Accessing PowerPoint Objects
Using the PowerPoint Object Library
Declaring PowerPoint Variables
Creating a Presentation Object
Opening a Presentation
Modifying a Presentation
Adding a Slide to a Presentation
Finding a Slide in a Presentation
Modifying a Slide
Saving Your Presentation
Showing Your Presentation
Presenting Your Slides
Sprucing Up
APPENDIXES
A. Visual Basic Language Concepts 401
Arrays in Variants
Boolean Comparison
Branching and Looping
Collections
DoEvents
Error Trapping
Library Constants
Option Base
Option Compare
Option Explicit
Qualified Identifiers: Square Brackets
Rich Error Information
Scoping
Server Registration
With Statement
B. The Object Navigator 445
Why Use the Navigator?
Navigator Setup
Navigator User Interface
Managing Libraries
The References Dialog
Activating Libraries
The Navigator as a Visual Basic Add-In
Enhanced Browsing
Object Groups
Locking Lists
Locking the Return Type
Link Files
Searching
Expression Building
Nodes
Creating Nodes
Linking Nodes
Setting Parameters
Copying Your Expression
Navigator Options
Color Options
Developer's Note: The Genesis of the Object Navigator
C. Microsoft Office for Windows 95 Object Models 473
Conventions Used in This Appendix
The Microsoft Access/DAO Object Model
The Microsoft Excel Object Model
The Microsoft Office Binder Object Model
The Microsoft PowerPoint Object Model
The Microsoft Word Object Model
D. Hungarian Prefixes in Visual Basic 481
Index