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

ID: Q207785


The information in this article applies to:


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, 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/refguide/
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)


  2. On the Tools menu, click Project Properties.


  3. 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:

Q226118 OFF2000: Programming Resources for Visual Basic for Applications

For 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

Additional query words: vb


Keywords          : kbdta kbdtacode OffVBA kbmacroexample kbwordvba wd2000 
Version           : WINDOWS:2000
Platform          : WINDOWS 
Issue type        : kbprb 

Last Reviewed: June 15, 1999