WD2000: Errors Trying to Edit or Create a Macro from Code (207785)
The information in this article applies to:
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:
Run-time error '4649':
Method 'Execute' of Object 'Dialog' Failed.
Furthermore, if you try to use the WordBasic object with WordBasic commands
to create or edit a macro, the following error message may appear:
Run-time error '548':
Unable to create or edit macros using the WordBasic object
CAUSEMicrosoft 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
Modification Type: | Major | Last Reviewed: | 6/17/2005 |
---|
Keywords: | kbdtacode kbmacroexample kbprb KB207785 |
---|
|