GraphicItem.SetExpression 方法 (Visio)

设置 作为 GraphicItem 对象规则一部分的表达式字符串的值,根据该参数计算形状数据 (自定义属性) 。

注意

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

语法

expressionSetExpression( _Field_ , _Expression_ )

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

参数

名称 必需/可选 数据类型 说明
Field 必需 VisGraphicField 分配给 GraphicItem 的主数据域(列)的标签或公式。 有关可能值,请参见备注。
Expression 必需 字符串 与 Field 参数相关联的 ShapeSheet 表达式。

返回值

Nothing

注解

Field 参数应是 VisGraphicField 枚举的下列值之一,该枚举在 Microsoft Visio 类型库中声明。

常量 Description
visGraphicPropertyLabel 1 形状数据项目的标签。
visGraphicExpression 2 形状数据项的 ShapeSheet 公式。

向 SetExpression 方法传递 shape-data-item 标签 (即传递 field 参数) 的 visGraphicPropertyLabel 时,必须将标签括在大括号内, ({}) 。 例如,如果要传递“Cost”形状数据项的名称,必须以这样的方式来书写:{Cost}。

通过传递形状的名称后跟感叹号 (!) ,然后传递字段名称,引用数据图形所应用的形状数据以外的形状数据。 例如,在以下示例中,若要引用名为 Ellipse.34 的形状的宽度,可以使用以下语法:

vsoGraphicItem.SetExpression visGraphicExpression, "Ellipse.34!Width"

在编辑图形项(包括设置其表达式字符串)之前,必须使用 Master.Open 方法打开以编辑图形项所属 的 GraphicItems 集合的数据图形主控形状的副本。 设置了该图形项的表达式并进行了所需的任何其他编辑之后,请使用 Master.Close 方法提交所做的更改。

示例

以下 Microsoft Visual Basic for Applications (VBA) 宏说明如何使用 SetExpression 方法设置一个数据图形项的字符串表达式的值。 它将打开 visTypeDataGraphic (通常称为“数据图形”的数据图形) 的 Master 对象的副本,然后设置数据图形的 GraphicItems 集合中第一个图形项的表达式,以显示数据图形所应用到的任何形状的宽度。

注意

在 Visio 用户界面中的“数据图形”任务窗格中,将鼠标移动到主控形状上方,便可确定现有数据图形主控形状的名称。

然后关闭该主控形状,并使用 GetExpression 方法获取最近应用的图形项的表达式。 最后,在“即时”窗口中打印该表达式的域类型和值。

宏假定当前文档中存在名为“数据图形”的数据图形。 有关将数据图形母版添加到当前文档的 Masters 集合的详细信息,请参阅 Masters.AddEx

Public Sub SetExpression_Example() 
 
    Dim vsoMaster As Visio.Master 
    Dim vsoMasterCopy As Visio.Master 
    Dim vsoGraphicItem As Visio.GraphicItem 
    Dim strExpression As String 
    Dim fieldType As VisGraphicField 
 
    Set vsoMaster = Visio.ActiveDocument.Masters("Data Graphic") 
    Set vsoMasterCopy = vsoMaster.Open 
    Set vsoGraphicItem = vsoMasterCopy.GraphicItems(1) 
       
    vsoGraphicItem.SetExpression visGraphicExpression, "Width" 
    vsoMasterCopy.Close 
     
    vsoMaster.GraphicItems(1).GetExpression fieldType, strExpression 
     
    Debug.Print "Field type is "; fieldType 
    Debug.Print "Expression is "; strExpression 
     
End Sub

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。