Page.DropManyLinkedU 方法 (Visio)

在绘图页上创建多个链接到数据记录集中的多个数据行的新建形状。 返回创建的形状实例数以及由这些形状的 ID 组成的数组。

注意

此 Visio 对象或成员仅供 Visio Professional 2013 的授权用户使用。

语法

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

表达 返回 Page 对象的表达式。

参数

名称 必需/可选 数据类型 说明
ObjectsToInstance () 必需 Variant 要创建实例的 Variant 类型的对象数组。
XYs () 必需 Double Double 类型的数组
DataRecordsetID 必需 Long 包含要链接到的数据行的数据记录集的 ID。
DataRowIDs () 必需 Long 由数据行的 ID 组成的 Long 类型的数组,这些数据行包含要链接到的数据。
ApplyDataGraphicAfterLink 必需 Boolean 是否将当前的数据图形应用到链接的形状。 有关详细信息,请参阅“注解”。
ShapeIDs () 必需 Long out 参数。 类型为 Long 的数组,该数组包含创建并链接到的形状。

返回值

Long

备注

如果想要在绘图页上创建已链接到数据的形状,该绘图页上不包含任何形状或包含要链接的形状以外的形状,则可以使用 Page.DropLinkedPage.DropManyLinkedU 方法创建一个或多个已链接到数据的其他形状。 这些方法类似于现有的 Page.DropPage.DropManyU 方法,因为它们在页面上的指定位置创建其他形状;此外,它们还会在新形状和指定数据记录集中的指定数据行之间创建链接。

为 ObjectsToInstance() 参数传递由要实例化为链接到数据的形状的对象组成的数组。 虽然这些对象通常是 Visio 对象(如 MasterShapeSelection 对象),但它们可以是提供 IDataObject 接口的任何 OLE 对象。

为 XYs() 参数传递 Double 类型的数组。 每对连续的 array-index-position 值应对应于 x 页y 页 坐标,你希望对象实例位于 ObjectsToInstance () 数组中相应位置的位置。 例如,如果希望 ObjectToInstance () 中第一个数组索引位置中的对象的实例位于页面坐标 (2,4) ,请将值 2 放在 XYs () 的第一个数组索引位置,并将值 4 放在该数组中的第二个数组索引位置, 其余对象和坐标的依此类而行。

当在 ObjectsToInstance () 数组中传递的对象是一个形状时,形状的宽度-高度框的中心位于在 XYs () 中指定的坐标处。

当传入 ObjectsToInstance() 数组中的对象是主控形状时,该主控形状的旋转中心点将位于您在 XYs() 中指定的坐标处。 主控形状的旋转中心点通常(但不一定)位于它的旋转中心。

为 DataRowIDs() 参数传递 Long 值的数组,这些值表示数据记录集中要链接到形状实例(从 ObjectsToInstance() 数组中的相应数组索引位置的对象创建)的数据行的 ID。

为 ShapeIDs() 参数传递 Long 类型的无量纲空数组。 该方法将返回用新创建和链接的形状的 ID 填充的数组。

注意

从 Microsoft Visio 2000 开始,您可以使用本地名称和通用名称来引用 Visio 形状、主控形状、文档、页面、行、加载项、单元格、超链接、样式、字体、主控形状快捷方式、UI 对象和图层。 例如,当用户为形状命名时,该用户正在指定本地名称。从 Microsoft Office Visio 2003 开始,ShapeSheet 电子表格仅显示单元格公式和值中的通用名称。 (在 Visio 的早期版本中,通用名称在用户界面中不可见。) 作为开发人员,如果不希望每次本地化解决方案时都更改名称,则可以在程序中使用通用名称。 当使用通用名称标识形状时,使用 DropManyLinkedU 方法可放置多个链接到数据的形状。

示例

下面的 Microsoft Visual Basic for Applications (VBA) 宏演示如何使用 DropManyLinkedU 方法在活动绘图页上创建若干形状,这些形状的中心位于指定的坐标处,而且这些形状链接到最近添加到活动文档中的数据记录集中的数据行。 该方法还在“立即”窗口中输出创建的形状数以及这些形状的 ID 号。

传递给 DropManyLinkedU 方法的形状是 基本形状 (美国单位) 模具中的简单窗体。 运行此宏之前,请使用 DataRecordsets.Add 方法或其他方法将至少一个数据记录集添加到 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。