Article ID: 207785
Article Last Modified on 6/17/2005
APPLIES TO
- Microsoft Word 2000 Standard Edition
This article was previously published under Q207785
SYMPTOMS
When you attempt to create or edit a macro that uses the Visual Basic Editor Show property of the wdDialogToolsMacro dialog object, the following error message may appear:
Furthermore, if you try to use the WordBasic object with WordBasic commands to create or edit a macro, the following error message may appear:
CAUSE
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers 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 requirements. By design, you cannot create or edit a macro using the methods described in the "Symptoms" section of this article.
The following sample Visual Basic for Applications code uses the Edit or Show property of the wdDialogToolsMacro dialog object and results in the error message described in the "Symptoms" section of this article:
CustomizationContext = NormalTemplate With Dialogs(wdDialogToolsMacro) .Name = "MyMacro" .Edit = True .Execute End With
If you use the WordBasic object with the following WordBasic command line, the error message described in the "Symptoms" section of this article appears:
WordBasic.ToolsMacro Name:="test", Edit:=1, Show:=3
RESOLUTION
The following sample code shows you how to create a macro using Visual Basic for Applications commands. The macro creates a new macro called "MyMacro" and inserts it into the NewMacros module of the default Word template project "Normal."
Sub CreateMacro() Dim strVBProj As String Dim strVBMod As String ' Specify the project name for your template or document ' and module in the project to store the macro. strVBProj = "Normal" strVBMod = "NewMacros" On Error GoTo cmErrHandler With VBE.VBProjects(strVBProj).VBComponents(strVBMod).CodeModule .InsertLines Line:=1, String:="Sub MyMacro" .InsertLines Line:=2, String:=" ' Created by code." .InsertLines Line:=3, String:="End Sub" End With cmErrHandler: If Err.Number <> 0 Then MsgBox "Error: Specified Project and/or Module does not exist." End If End Sub
The previous example creates the following macro:
Sub MyMacro() ' Created by code. End Sub
NOTE: Unless you have specifically renamed it to match the document name, the project name is not the same as the template or document name. For example, in the Project Explorer window for "Project(YourTemplateName)", "Project" is the name of your project, not "YourTemplateName".
To rename your project, follow these steps:
- In the Project Explorer window, click to select the project name.
For example:
Project(YourTemplateName)
- On the Tools menu, click Project Properties.
- In the Project Name box, type a unique name for your project.
For more information about naming a project, in the Visual Basic Editor, click Microsoft Visual Basic Help on the Help menu, type set project properties in the Office Assistant or the Answer Wizard, and then click Search to view the topic.
REFERENCES
For more information about getting help with Visual Basic for Applications, please see the following article in the Microsoft Knowledge Base:
226118 OFF2000: Programming Resources for Visual Basic for Applications
For more information about how to use the sample code in this article, click the article number below to view the article in the Microsoft Knowledge Base:
212536 OFF2000: How to Run Sample Code from Knowledge Base Articles
Additional query words: vb Run time error 4649 Method Execute of Object Dialog Failed 548 Unable to create or edit macros using the WordBasic
Keywords: kbmacroexample kbprb kbdtacode KB207785