次の方法で共有


Page.DropManyLinkedU メソッド (Visio)

データ レコードセットの複数のデータ行にリンクされている複数の新しい図形を図面ページに作成します。 作成された図形インスタンスの数および図形の ID の配列を返します。

注:

この Visio オブジェクトまたはメンバーは Visio Professional 2013 のライセンス ユーザーのみが使用できます。

構文

DropManyLinkedU( _ObjectsToInstance()_ , _XYs()_ , _DataRecordsetID_ , _DataRowIDs()_ , _ApplyDataGraphicAfterLink_ , _ShapeIDs()_ )

Page オブジェクトを返す式。

パラメーター

名前 必須 / オプション データ型 説明
ObjectsToInstance() 必須 バリアント型 インスタンスを作成するオブジェクトのバリアント型 (Variant) の配列です。
XYs() 必須 Double 倍精度浮動小数点数型 (Double) の配列です。
DataRecordsetID 必須 Long リンクするデータ行を含むデータ レコードセットの ID です。
DataRowIDs() 必須 Long リンクするデータを含むデータ行の ID の長整数型 (Long) の配列です。
ApplyDataGraphicAfterLink 必須 ブール型 (Boolean) リンクされた図形に現在のデータ グラフィックを適用するかどうかを指定します。 詳細については「備考」を参照してください。
ShapeIDs() 必須 Long 出力パラメーターです。 作成およびリンク先の図形の 長整数 型の配列。

戻り値

Long

注釈

図形が含まれていないか、リンクする図形以外の図形を含む図形が図面ページ上のデータに既にリンクされている図形を作成する場合は、 Page.DropLinked メソッドと Page.DropManyLinkedU メソッドを使用して、既にデータにリンクされている 1 つ以上の追加の図形を作成できます。 これらのメソッドは、ページ上の指定した場所に追加の図形を作成するという点で、既存の Page.Drop メソッドと Page.DropManyU メソッドに似ています。ただし、新しい図形と指定したデータ レコードセット内の指定されたデータ行の間にリンクが作成されます。

ObjectsToInstance() パラメーターとして、データにリンクされている図形のインスタンスを作成するオブジェクトの配列を渡します。 これらのオブジェクトは通常、 MasterShapeSelection オブジェクトなどの Visio オブジェクトですが、 IDataObject インターフェイスを提供する任意の OLE オブジェクトを指定できます。

XYs() パラメーターの場合は、 Double 型の配列を渡します。 配列インデックス位置値の連続する各ペアは、ObjectToInstance() 配列内の対応する位置にあるオブジェクトのインスタンスを配置する x および y ページ座標に対応する必要があります。 たとえば、ObjectsToInstance() の最初の配列インデックス位置にあるオブジェクトのインスタンスをページ座標 (2,4) に配置する場合は、XYs() の最初の配列インデックス位置に値 2 を配置し、その配列の 2 番目の配列インデックス位置に値 4 を配置し、残りのオブジェクトと座標に値 4 を配置します。

ObjectsToInstance() 配列で渡すオブジェクトが図形の場合、図形の幅と高さのボックスの中心は XYs() で指定した座標に配置されます。

ObjectsToInstance() 配列に渡すオブジェクトがマスター シェイプの場合、マスター シェイプの Pin が XYs() で指定する座標に配置されます。 マスター シェイプの Pin は、多くの場合回転の中心になりますが、中心にならない場合もあります。

DataRowIDs() パラメーターとして、ObjectsToInstance() 配列の対応するインデックス位置のオブジェクトから作成された図形のインスタンスにリンクするデータ レコードセットのデータ行の ID を表す Long 値の配列を渡します。

ShapeIDs() パラメーターとして、Long 型の、次元を指定しない空の配列を渡します。 このメソッドは、新規作成されてリンクされた図形の ID を含む配列を返します。

注:

Microsoft Visio 2000 以降では、ローカル名とユニバーサル名の両方を使用して、Visio の図形、マスター、ドキュメント、ページ、行、アドオン、セル、ハイパーリンク、スタイル、フォント、マスター ショートカット、UI オブジェクト、レイヤーを参照できます。 たとえば、ユーザーが図形に名前を付けると、ユーザーはローカル名を指定します。Microsoft Office Visio 2003 以降、シェイプシート スプレッドシートには、セルの数式と値にユニバーサル名のみが表示されます。 (以前のバージョンの Visio では、ユニバーサル名はユーザー インターフェイスに表示されませんでした)。開発者は、ソリューションがローカライズされるたびに名前を変更したくない場合に、プログラムでユニバーサル名を使用できます。 ユニバーサル名を使用して図形を識別する場合 は、DropManyLinkedU メソッドを使用して、データにリンクされた複数の図形を削除します。

次の Microsoft Visual Basic for Applications (VBA) マクロは、DropManyLinkedU メソッドを使用して、指定した座標を中心にして作業中の図面ページ上に複数の図形を作成し、作業中のドキュメントに最後に追加したデータ レコードセット内のデータ行にリンクする方法を示しています。 作成された図形の数とその ID 番号がイミディエイト ウィンドウに出力されます。

DropManyLinkedU メソッドに渡される図形は、基本図形 (米国単位) ステンシルの単純なフォームです。 このマクロを実行する前に、 DataRecordsets.Add メソッドまたは別の方法を使用して 、DataRecordsets コレクションに少なくとも 1 つのデータ レコードセットを追加し、Visio 図面ウィンドウで [基本図形 (US 単位)] ステンシルが開いていることを確認します。

Sub DropManyLinkedU_Example() 
 
    Dim avarObjects(0 To 2) As Variant 
    Dim adblXYs(0 To 5) As Double   
    Dim alngDataRowIDs(0 To 2) As Long 
    Dim alngShapeIDs() As Long 
    Dim vsoDataRecordset As Visio.DataRecordset 
    Dim intRecordsetCount As Integer 
    Dim lngReturned As Long 
    Dim intCounter As Integer 
     
    intRecordsetCount = Visio.ActiveDocument.DataRecordsets.Count 
    Set vsoDataRecordset = Visio.ActiveDocument.DataRecordsets(intRecordsetCount) 
     
    Set avarObjects(0) = Visio.Documents("Basic_U.VSS").Masters("Rectangle") 
    Set avarObjects(1) = Visio.Documents("Basic_U.VSS").Masters("Triangle") 
    Set avarObjects(2) = Visio.Documents("Basic_U.VSS").Masters("Circle") 
     
    adblXYs(0) = 2 
    adblXYs(1) = 2 
    adblXYs(2) = 4 
    adblXYs(3) = 4 
    adblXYs(4) = 6 
    adblXYs(5) = 6 
         
    alngDataRowIDs(0) = 1 
    alngDataRowIDs(1) = 2 
    alngDataRowIDs(2) = 3 
         
    lngReturned = ActivePage.DropManyLinkedU(avarObjects, adblXYs, vsoDataRecordset.ID, alngDataRowIDs, True, alngShapeIDs) 
    Debug.Print lngReturned 
     
    For intCounter = 0 To lngReturned - 1 
        Debug.Print alngShapeIDs(intCounter) 
    Next 
     
End Sub

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。