データ レコードセットの複数のデータ行にリンクされている複数の新しい図形を図面ページに作成します。 作成された図形インスタンスの数および図形の ID の配列を返します。
注:
この Visio オブジェクトまたはメンバーは Visio Professional 2013 のライセンス ユーザーのみが使用できます。
構文
expression。
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 型の配列。 |
戻り値
Long
注釈
図形がまったく含まれていない図面ページ上や、リンクする図形以外の図形が含まれている図面ページ上のデータに既にリンクされている図形を作成する場合は、 Page.DropLinked メソッドと Page.DropManyLinkedU メソッドを使用して、データに既にリンクされている 1 つ以上の図形を作成できます。 これらのメソッドは、ページ上の指定された位置に追加の図形を作成するという点で、既存の Page.Drop メソッドと Page.DropManyU メソッドに似ています。さらに、新しい図形と、指定したデータ レコードセット内の指定したデータ行との間にリンクを作成します。
ObjectsToInstance() パラメーターとして、データにリンクされている図形のインスタンスを作成するオブジェクトの配列を渡します。 通常、これらのオブジェクトは Master、 Shape、 Selection などの Visio オブジェクトですが、 IDataObject インターフェイスを提供する任意の OLE オブジェクトにすることができます。
XYs() パラメーターの場合、 Double 型の配列を渡します。 array-index-position 値の連続する各ペアは、ObjectsToInstance() 配列内の対応する位置にあるオブジェクトのインスタンスを配置する x ページ座標と y ページ座標に対応する必要があります。 たとえば、ObjectsToInstance() の最初の配列インデックス位置にあるオブジェクトのインスタンスをページ座標 (2,4) に配置する場合は、値 2 を XYs() の最初の配列インデックス位置に配置し、値 4 をその配列の 2 番目の配列インデックス位置に配置します。
ObjectsToInstance() 配列に渡すオブジェクトが図形の場合、図形の幅と高さのボックスの中心は、XYs() で指定した座標に配置されます。
ObjectsToInstance() 配列に渡すオブジェクトがマスター シェイプの場合、マスター シェイプの Pin が XYs() で指定する座標に配置されます。 マスター シェイプの Pin は、多くの場合回転の中心になりますが、中心にならない場合もあります。
DataRowIDs() パラメーターとして、ObjectsToInstance() 配列の対応するインデックス位置のオブジェクトから作成された図形のインスタンスにリンクするデータ レコードセットのデータ行の ID を表す Long 値の配列を渡します。
ShapeIDs() パラメーターとして、Long 型の、次元を指定しない空の配列を渡します。 このメソッドは、新規作成されてリンクされた図形の ID を含む配列を返します。
注:
Microsoft Visio 2000 以降では、Visio の図形、マスター、ドキュメント、ページ、行、アドオン、セル、ハイパーリンク、スタイル、フォント、マスター ショートカット、UI オブジェクト、レイヤーを参照するために、ローカル名とユニバーサル名の両方を使用できます。 たとえば、ユーザーが図形に名前を付ける場合、ユーザーはローカル名を指定しています。Microsoft Office Visio 2003 以降では、シェイプシート スプレッドシートには、セルの数式と値に汎用名のみが表示されます。 (以前のバージョンの Visio では、ユニバーサル名はユーザー インターフェイスに表示されませんでした。)デベロッパーは、ソリューションがローカライズされるたびに名前を変更したくない場合、プログラムでユニバーサル名を使用できます。 ドロップManyLinkedU メソッドを使用すると、図形をユニバーサル名で識別している場合に、データにリンクされた複数の図形を削除できます。
例
次の Microsoft Visual Basic for Applications (VBA) マクロは、DropManyLinkedU メソッドを使用して、作業中の図面ページ上に複数の図形を作成して、指定した座標を中心として作業中のドキュメントに最後に追加されたデータ レコードセット内のデータ行にリンクする方法を示しています。 作成された図形の数とその ID 番号が即時ウィンドウに出力されます。
DropManyLinkedU メソッドに渡される図形は、基本図形 (米国単位) ステンシルからの単純なフォームです。 このマクロを実行する前に、 DataRecordsets.Add メソッドまたはその他の方法を使用して少なくとも 1 つのデータ レコードセットを DataRecordsets コレクションに追加し、Visio の図面ウィンドウで 基本図形 (米国単位) ステンシルが開いていることを確認します。
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 のサポートおよびフィードバックを参照してください。