Microsoft KB Archive/207785

= WD2000: Errors Trying to Edit or Create a Macro from Code =

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:

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



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:


 * 1) In the Project Explorer window, click to select the project name.

For example:

Project(YourTemplateName)
 * 1) On the Tools menu, click Project Properties.
 * 2) 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.

