次の方法で共有


Master.Open メソッド (Visio)

既存のマスター シェイプを開いて編集できるようにします。

構文

開く

Master オブジェクトを表す変数。

戻り値

Master

注釈

マスター オブジェクトの Open メソッドを Close メソッドと組み合わせて使用して、マスター シェイプの図形とセルを確実に編集します。 一部の以前のバージョンの Visio では、Master オブジェクトの図形とセルを編集できましたが、変更はマスター シェイプのインスタンスに反映されず、編集したマスター シェイプのインスタンスが正しく作成されなかった場合に、図形枠の情報が表示されました。

Master オブジェクトの図形とセルをプログラムから編集するには

  1. masterObjCopy = masterObj を使用して編集するMaster オブジェクトを開きます。 開きますmasterObj に開いている図面ウィンドウがある場合、または別のプログラムによって既に masterObj が開かれている場合、このコードは失敗します。 Open メソッドが成功すると、masterObjCopymasterObj のコピーになります。

  2. masterObj ではなく masterObjCopy 内の図形とセルを変更します

  3. masterObjCopy を使用して Master オブジェクトを閉じます。 閉じますmasterObjCopy が、以前の masterObj から生成された Master オブジェクトでない場合、Close メソッドは失敗します。 通話を開きます 。 それ以外の場合、 Close メソッドは、手順 2 で行った変更を masterObjCopy から masterObj にマージします。 また、 masterObj のすべてのインスタンスを更新して、 masterObj にキャッシュされた変更と更新情報を反映します。 masterObj の場合。 IconUpdatevisManual (0) ではありません。Close メソッドは、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 のサポートおよびフィードバックを参照してください。