Master.Open Method

Visio Automation Reference

Opens an existing master so that it can be edited.

Version Information
 Version Added:  Visio 4.1

Syntax

expression.Open

expression   A variable that represents a Master object.

Return Value
Master

Remarks

You can use the Open method for a Master object in conjunction with the Close method to reliably edit the shapes and cells of a master. In previous versions of Visio, you could edit a Master object's shapes and cells, but the changes were not pushed to instances of the master, and alignment box information displayed when instancing the edited master was not correct.

To edit the shapes and cells of a Master object from a program
  1. Open the Master object for editing by using masterObjCopy = masterObj.Open. This code fails if there is a drawing window open into masterObj or if other programs already have masterObj open. If the Open method succeeds, masterObjCopy is a copy of masterObj.
  2. Change any shapes and cells in masterObjCopy, not masterObj.
  3. Close the Master object by using masterObjCopy.Close. The Close method fails if masterObjCopy isn't a Master object that resulted from a prior masterObj.Open call. Otherwise, the Close method merges the changes made in step 2 from masterObjCopy back into masterObj. It also updates all instances of masterObj to reflect the changes and update information cached in masterObj. If masterObj.IconUpdate isn't visManual (0), the Close method updates the icon shown in the stencil window for masterObj to depict an image of masterObjCopy.

If you change the shapes and cells of a master directly, as opposed to opening and closing the master as described in the procedure above, the effects listed in step 3 don't occur.

A program that creates a copy of a masterObj for editing should both close and release the copy. Microsoft Visual Basic typically releases it automatically. However, when you are coding in C or C++, you must explicitly release the copy, just as you would for any other object.

ms427127.vs_note(en-us,office.12).gif  Note
Starting with Microsoft Office Visio 2003, only user-created stencils are editable. By default, Visio stencils are not editable.

Example

This Microsoft Visual Basic for Applications (VBA) macro shows how to open a Master object for editing. It opens a copy of a master from the document stencil and changes the fill foreground color of the master and all shapes in the drawing derived from the master.

Before running this macro, close all open Visio documents. Then, click New to open a new document based on no template. Click the Rectangle tool, and draw a rectangle on the drawing page. Open the document stencil (on the File menu, point to Shapes, and click Show Document Stencil), and then drag the rectangle shape onto the document stencil to create a master. Finally, drag several copies of the rectangle master onto the drawing page.

Visual Basic for Applications
  
Public Sub OpenMaster_Example()
Dim vsoMaster As Visio.Master
Dim vsoMasterCopy As Visio.Master
Dim vsoShape As Visio.Shape
Dim vsoCell As Visio.Cell

Set vsoMaster = Visio.Documents.Masters(1)
Set vsoMasterCopy = vsoMaster.Open

Set vsoShape = vsoMasterCopy.Shapes.Item(1)

Set vsoCell = vsoShape.CellsU("FillForegnd")
vsoCell.Formula = 9

vsoMasterCopy.Close

End Sub

See Also