MORE INFORMATION
Microsoft provides programming examples for illustration only, without warranty either
expressed or implied, including, but not limited to, the implied warranties of
merchantability and/or fitness for a particular purpose. This article assumes
that you are familiar with the programming language being demonstrated and the
tools used to create and debug procedures. Microsoft support professionals can
help explain the functionality of a particular procedure, but they will not
modify these examples to provide added functionality or construct procedures to
meet your specific needs. If you have limited programming experience, you may
want to contact a Microsoft Certified Partner or the Microsoft fee-based
consulting line at (800) 936-5200. For more information about Microsoft Certified
Partners, please visit the following Microsoft Web site:
For more information about the support options that are available and about how to contact Microsoft, visit the following Microsoft Web site:
Automation (formerly OLE Automation) is a feature that programs use to
expose their objects to development tools, macro languages, and other
programs that support Automation. For example, a spreadsheet program may
expose a worksheet, chart, cell, or range of cells, each as a different
type of object. A word processor might expose objects such as an
application, a document, a paragraph, a sentence, a bookmark, or a
selection.
When a program supports Automation, you can use Visual Basic for Applications to access the
objects it exposes. You manipulate these objects in Visual Basic by
invoking methods on the object or by getting and setting the object's
properties.
You can use the code samples in this article to control Microsoft Word from
Microsoft Excel 98 Macintosh Edition, Microsoft PowerPoint 98 Macintosh
Edition, or any other client that supports Automation to control Word.
Getting Started
There are four main steps to automate Word 98 Macintosh Edition:
- Add a reference to the Microsoft Word 8.0 Object library.
- Declare a variable as a Word object type.
- Assign the object returned by the CreateObject function to the object
variable you declared in step 2.
- Use the properties and methods of the object variable to automate Word.
Step 1: Adding a Reference to the Word 8.0 Object Library
To add a reference to the Microsoft Word 8.0 Object Library using Microsoft
PowerPoint 98 Macintosh Edition or Microsoft Excel 98 Macintosh Edition,
follow these steps:
- In Microsoft PowerPoint or Excel, on the Tools menu, point to Macros, and
then click Visual Basic Editor.
- In the Visual Basic Editor, on the Tools menu, click References.
- In the list of Available References, click to select (check) the
Microsoft Word 8.0 Object Library check box.
Adding the Microsoft Word 8.0 Object Library reference allows your program
to access Microsoft Word Online Help and the Microsoft Word Visual Basic
for Applications constants, properties, and methods. Note that the
Word 8.0 Object Library reference is required to automate the Word object
types directly.
Adding a reference to the Word 8.0 Object Library is called early binding.
For more information about early binding, please see the following article
in the Microsoft Knowledge Base:
138138 INFO: Late, ID, Early Binding Types Possible in VB for Apps
Step 2: Declaring the Object Variable
To declare an object variable, you dimension the variable just as you
dimension any variable, except that you specify the type when
declaring the object. For example, Word.Application, Document, and
Paragraph are separate Word Objects.
The following sample command line declares the variable objWD as an object
of type "Word.Application":
Dim objWD as Word.Application
Step 3: Setting the Variable
There are two Visual Basic functions you can use to "bind" the already
declared object variable to Word:
CreateObject and
GetObject. The primary
differences are that the
CreateObject function creates a new instance of
Word, and the
GetObject function uses an existing, or already running,
instance of Word. You can also use
GetObject to bind your object variable
to a specific Word document.
The following sample command lines bind the objWD variable to Word using
the
CreateObject function:
Dim objWD as Word.Application
Set objWD = CreateObject("Word.Application")
The following sample command lines bind the objWdDoc variable to a specific
Word document:
Dim objWdDoc As Word.Document
Set objWdDoc = GetObject("c:\my documents\doc1.doc")
Step 4: Use Properties and Methods to Automate Word
When you complete steps 1-3, you can use the object variable to automate
Word.
The following sample macro uses automation to create a Word object,
create a new document, add some text, and save the document.
Sub AutomateWord()
' Declare the variable.
Dim objWD As Word.Application
' Set the variable (runs new instance of Word.)
Set objWD = CreateObject("Word.Application")
' Add a new document.
objWD.Documents.Add
' Add some text.
objWD.Selection.TypeText "This is some text."
' Save the document.
objWD.ActiveDocument.SaveAs filename:="mydoc.doc"
' Quit Word.
objWD.Quit
' Clear the variable from memory.
Set objWD = Nothing
End Sub
NOTE: The following sample macro duplicates the process described in the
AutomateWord macro and runs directly in Word:
Sub WordMacro()
Documents.Add
Selection.TypeText "This is some text"
ActiveDocument.SaveAs filename:="mydoc.doc"
Quit
End Sub
References
For more information specific to automating Word, using Visual Basic for
Applications, please see the following resources.
Microsoft Office Developer Web Site
Microsoft Office 97/Visual Basic Programmer's Guide
Using Automation in the Microsoft Word Objects chapter of the Microsoft
Office 97/Visual Basic Programmer's Guide (ISBN: 1-57231-340-4).
-or-
View the guide online at:
Newsgroups
The following peer-to-peer newsgroups are available to help you interact
with other users of Visual Basic for Applications:
microsoft.public.vb.ole.automation
microsoft.public.word.vba
microsoft.public.word.wordbasic
Knowledge Base
For more information about getting help with Visual Basic for Applications,
please see the following articles in the Microsoft Knowledge Base:
163435 VBA: Programming Resources for Visual Basic for Applications
181058 OFF98: How to Run Sample Code from Knowledge Base Articles
163425 WD97: Macro Programming Resources
Office Assistant
For more information about Automation, in the Visual Basic Editor,
click the Office Assistant, type "
Automation", click
Search, and then click
to view "Communicating with other applications."
NOTE: If the Assistant is hidden, click the Office Assistant button on the
Standard toolbar. If the Assistant is not able to answer your query, please
see the following article in the Microsoft Knowledge Base:
176476 OFF: Office Assistant Not Answering Visual Basic Questions