The information in this article applies to:
SUMMARYThis article contains a brief description and a sample macro detailing how to automate Microsoft Word from another program. For more detailed information, see the "References" section at the end of this article. MORE INFORMATIONMicrosoft 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 Solution Provider
or the Microsoft fee-based consulting line at (800) 936-5200. For more information about
Microsoft Certified Solution Providers, please see the following page on the World Wide Web:
http://www.microsoft.com/mcsp/For more information about the support options available from Microsoft, please see the following page on the World Wide Web: http://www.microsoft.com/support/supportnet/overview/overview.asp 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 for Applications 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 Access 2000, Microsoft Excel 2000, Microsoft PowerPoint 2000, Microsoft Visual Basic for Applications, or any other client that supports Automation to control Word. Getting StartedThere are four main steps to automate Word for Windows.
Step 1: Adding a Reference to the Word 9.0 Object LibraryTo add a reference to the Microsoft Word 9.0 Object Library using Microsoft Access 2000, Microsoft PowerPoint 2000, or Microsoft Excel 2000, follow these steps:
Adding the Microsoft Word 9.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 Microsoft Word 9.0 Object Library reference is required to automate the Word object types directly. Adding a reference to the Microsoft Word 9.0 Object Library is called early binding. For more information about Object Binding, please see the following article in the Microsoft Knowledge Base: Q138138 INFO: Late, ID, Early Binding Types Possible in VB for Apps Step 2: Declaring the Object VariableTo 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:
Step 3: Setting the VariableThere 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:
The following sample command lines bind the objWdDoc variable to a specific
Word document: NOTE: It is recommended to use only the CreateObject function to automate Word for Windows. The GetObject function can cause unpredictable behavior if WordMail is running or if a Word document is embedded inside another program.For more information about getting help with Visual Basic for Applications, please see the following article in the Microsoft Knowledge Base: Q237338 WD2000: How to Check for WordMail Using Automation Step 4: Use Properties and Methods to Automate WordWhen 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. NOTE: The following sample macro duplicates the process described in the AutomateWord macro and runs directly in Word:
REFERENCES
For more information specific to automating Word using Visual Basic for
Applications, please see the following resources. Microsoft Office Developer Web Sitehttp://msdn.microsoft.com/officedev/NewsGroupsThe following peer-to-peer newsgroups are available to help you interact with other users of Visual Basic for Applications:microsoft.public.vb.ole.automation Knowledge BaseFor more information about getting help with Visual Basic for Applications, please see the following articles in the Microsoft Knowledge Base:Q226118 OFF2000: Programming Resources for Visual Basic for ApplicationsFor more information about using the sample code in this article, please see the following article in the Microsoft Knowledge Base: Q212536 OFF2000: How to Run Sample Code from Knowledge Base Articles Office AssistantFor more information about Automation, in the Visual Basic Editor, click Microsoft Visual Basic Help on the Help menu, type "Communicating with other applications" in the Office Assistant or the Answer Wizard, and then click Search to view the topic.Additional query words: vba
Keywords : kbdta kbwordvba wd2000 |
Last Reviewed: July 16, 1999 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |