GraphicItem.SetExpression 方法 (Visio)
设置 作为 GraphicItem 对象规则一部分的表达式字符串的值,根据该参数计算形状数据 (自定义属性) 。
注意
此 Visio 对象或成员仅供 Visio Professional 2013 的授权用户使用。
语法
expression。 SetExpression
( _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 支持和反馈,获取有关如何接收支持和提供反馈的指南。