设置表达式字符串的值,该表达式字符串是 GraphicItem 对象规则的一部分,将根据该规则计算形状数据 (自定义属性) 。
注意
此 Visio 对象或成员仅供 Visio Professional 2013 的授权用户使用。
语法
expression。
SetExpression( _Field_ , _Expression_ )
表达式 返回 GraphicItem 对象的表达式。
参数
| 名称 | 必需/可选 | 数据类型 | 说明 |
|---|---|---|---|
| Field | 必需 | VisGraphicField | 分配给 GraphicItem 的主数据域(列)的标签或公式。 有关可能值,请参见备注。 |
| Expression | 必需 | String | 与 Field 参数相关联的 ShapeSheet 表达式。 |
返回值
Nothing
注解
Field 参数应是 VisGraphicField 枚举的下列值之一,该枚举在 Microsoft Visio 类型库中声明。
| 常量 | 值 | 说明 |
|---|---|---|
| visGraphicPropertyLabel | 1 | 形状数据项目的标签。 |
| visGraphicExpression | 2 | 形状数据项的 ShapeSheet 公式。 |
传递 SetExpression 方法时 (形状数据项标签;也就是说,为 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 类型的主对象的副本 (通常称为名为“Data Graphic”的数据图形) ,然后设置数据图形的 GraphicItems 集合中第一个图形项的表达式,以显示应用数据图形的任何形状的宽度。
注意
在 Visio 用户界面中的“数据图形”任务窗格中,将鼠标移动到主控形状上方,便可确定现有数据图形主控形状的名称。
然后关闭该主控形状,并使用 GetExpression 方法获取最近应用的图形项的表达式。 最后,在“即时”窗口中打印该表达式的域类型和值。
该宏假定当前文档中存在名为 “Data Graphic” 的数据图形。 有关将数据图形母版添加到当前文档的 母版 集合的详细信息,请参阅 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。