SYMPTOMS
When you use a macro to open a template, you may receive one of the
following errors:
- Run-time error '-2147467259(80004005):
Method 'Visible' of object 'CommandBar failed
- Run-time error '7':
Out of memory
CAUSE
This problem occurs if an AutoNew or AutoOpen macro is attempting to make a
toolbar visible that has the same name of a toolbar that is currently
displayed.
For example,
If you have a template named Template1 that contains a toolbar named
"Custom 1" and an AutoOpen macro that makes this toolbar visible when a
document that is based on this template is opened.
-and-
You also have a template named Template2 which contains a toolbar also
named "Custom 1," and an AutoOpen macro that displays this toolbar.
When you open "Template1" or a document based on "Template1", the AutoOpen
macro runs and displays the "Custom 1" toolbar. If you then open
"Template2" or a document based on "Template2", you receive one of the
error messages listed in the "Symptoms" section of this article.
WORKAROUND
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.
To prevent these errors from occurring, use one of the following methods.
Method 1: Remove or Disable the Command That Displays the Toolbar
Edit the auto macro in one or both of the templates to remove or disable
the command that displays the toolbar.
For example, the command line that may be causing the error may be either
of the following.
Macro converted from WordBasic:
WordBasic.ViewToolBars Toolbar:="Custom 1", Show:=1
Visual Basic for Applications macro:
CommandBars("Custom 1").Visible = True
Adding an apostrophe at the beginning of either line will disable the
command.
Method 2: Rename One ToolBar to a Unique Name
Rename one of the toolbars to a unique name and edit the macro of the same
template to reference the changed toolbar name.
Method 3: Add an Error Trap for the Error
Adding an error trap will prevent the error if Word attempts to display
both toolbars at the same time.
NOTE: Using an error trap will skip the command to display the second
toolbar. As a workaround, you can choose Toolbars on the View menu to
display the toolbar without receiving an error.
The following is an example of an error trap that can be used in this case:
On Error Resume Next
CommandBars("Custom 1").Visible = True
For more information about error trapping, click the Office Assistant while
in the Visual Basic Editor, type
error trap, click Search, and then click
to view "On Error Statement."
NOTE: If the Assistant is hidden, click the Office Assistant button on the
Standard toolbar. If the Assistant is not able to answer your query, please
see the following article in the Microsoft Knowledge Base:
176476 OFF: Office Assistant Not Answering Visual Basic Questions
Method 4: Check the Visible state of the toolbar
Create code similar to the following to check the Visible state of the
toolbar.
' If the Custom toolbar is not visible then...
If CommandBars("Custom 1").Visible = False Then
' ...make the Custom toolbar visible.
CommandBars("Custom 1").Visible = True
End If