既存のマスター シェイプを開いて編集できるようにします。
構文
式。開く
式マスター オブジェクトを表す変数。
戻り値
Master
注釈
マスター オブジェクトの Open メソッドを Close メソッドと組み合わせて使用すると、マスターの図形とセルを確実に編集できます。 一部の以前のバージョンの Visio では、Master オブジェクトの図形とセルを編集できましたが、変更はマスター シェイプのインスタンスに反映されず、編集したマスター シェイプのインスタンスが正しく作成されなかった場合に、図形枠の情報が表示されました。
Master オブジェクトの図形とセルをプログラムから編集するには
masterObjCopy = masterObj を使用して、編集するマスター オブジェクトを開きます。 開く。 masterObj に開いている図面ウィンドウがある場合、または別のプログラムによって既に masterObj が開かれている場合、このコードは失敗します。 Open メソッドが成功すると、masterObjCopy は masterObj のコピーになります。
masterObjではなくmasterObjCopyの図形とセルを変更します。
masterObjCopy を使用して Master オブジェクトを閉じます。 閉じる。 MasterObjCopy が前の masterObj から生成されたマスター オブジェクトではない場合、Close メソッドは失敗します。 オープン コール 。 それ以外の場合、 Close メソッドは、手順 2 で行った変更を masterObjCopy から masterObj にマージします。 また、 masterObj のすべてのインスタンスを更新して、 masterObj にキャッシュされている変更と更新情報を反映します。 MasterObj. IconUpdate が visManual (0) ではない場合、 Close メソッドは、 masterObj のステンシル ウィンドウに表示されるアイコンを更新して、 masterObjCopy の画像を示します。
マスター シェイプの図形とセルを直接変更した場合、上の手順で示したマスター シェイプを開いて閉じる方法とは異なり、手順 3. のような情報の更新は行われません。
編集用に masterObj のコピーを作成するプログラムでは、コピーを閉じて解放する必要があります。 通常 Microsoft Visual Basic では、このようなコピーは自動的に解放されます。 ただし C または C++ でコーディングしている場合は、その他のオブジェクトと同様に、コピーを明示的に解放する必要があります。
注:
Microsoft Office Visio 2003 以降では、ユーザーが作成したステンシルのみを編集できます。 既定では、Visio ステンシルは編集できません。
例
この VBA (Microsoft Visual Basic for Applications) マクロは、Master オブジェクトを開いて編集する方法を示します。 このマクロは、図面ステンシルからマスター シェイプのコピーを開き、マスター シェイプおよびそこから派生するすべての図形の前景の塗りつぶし色を変更します。
このマクロを実行する前に、開いているすべての Visio 図面を閉じます。 次に、[ ファイル ] タブ、[ 新規作成]、[ 作成 ] の順にクリックして、テンプレートを使用しない新しいドキュメントを開きます。 [四角形] ツールをクリックし、図面ページに四角形を描画します。 [図形] ウィンドウで [その他の図形]、[図面ステンシルを表示] の順にクリックして、図面ステンシルを開き、図面ステンシルに四角形をドラッグしてマスター シェイプを作成します。 最後に、四角形のマスター シェイプのコピーをいくつか図面ページにドラッグします。
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
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。