Page.CreateSelection 方法 (Visio)
创建各种类型的 Selection 对象。
语法
expression. CreateSelection
( _SelType_
, _IterationMode_
, _[Data]_
)
表达 一个代表 Page 对象的变量。
参数
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
SelType | 必需 | VisSelectionTypes | 选定内容的类型。 请参阅“说明”来了解可能的值。 |
IterationMode | 可选 | VisSelectMode | 使用的选定内容模式。 请参阅“说明”来了解可能的值。 |
Data | 可选 | Variant | 与 SelType 参数相对应的对象类型。 有关可能值,请参见备注。 |
返回值
选择
备注
通过 CreateSelection 方法,您能够以编程方式创建复杂的选定内容。 这样,就不必选择页面上的所有形状,例如,可以只选择给定图层上的形状或只选择基于特定主控形状的形状。
调用 SelType 等于visSelTypeByType 或 visSelTypeByLayer的 CreateSelection 方法等效于选择“按类型选择”对话框中的选项 (单击“开始”选项卡上的“编辑”组中的“选择”,然后单击“按类型选择) 。
SelType 参数应为以下值之一,这些值在 Visio 类型库中的 VisSelectionTypes 中声明。
常量 | 值 | 说明 |
---|---|---|
visSelTypeAll | 1 | 最初包含所有形状的选定内容。 |
visSelTypeByDataGraphic | 6 | 最初包含应用了给定类型的数据图形的所有形状的选定内容。 |
visSelTypeByLayer | 3 | 最初包含给定图层的所有形状的选定内容。 |
visSelTypeByMaster | 5 | 最初包含给定主控形状的所有实例化形状的选定内容。 |
visSelTypeByRole | 7 | 最初包含给定角色的所有形状的选定内容。 |
visSelTypeByType | 4 | 最初包含给定类型的所有形状的选定内容。 |
visSelTypeEmpty | 0 | 最初不包含任何形状的选定内容。 |
visSelTypeSingle | 2 | 最初包含一个形状的选定内容。 |
可选的 IterationMode 参数应为 Visio 类型库在 VisSelectMode 中声明的下列值之一。 默认值是 visSelModeSkipSuper。
常量 | 值 | 说明 |
---|---|---|
visSelModeOnlySub | &H0800 | 选定内容只报告部分选择的形状。 |
visSelModeOnlySuper | &H0200 | 选定内容只报告整体选择的形状。 |
visSelModeSkipSub | &H0400 | 选定内容不报告次选形状。 |
visSelModeSkipSuper | &H0100 | 选定内容不报告超选形状。 |
可选的 Data 参数应为与 SelType 指定的对象类型相对应的对象。 例如,如果您要选择特定类型的所有主控形状,则 Data 应为 Master 类型。 如果您要选择特定图层上的所有形状,则 Data 应为 Layer 类型。
当 SelType 为 visSelTypeByRole 时, Data 应是 VisRoleSelectionTypes 枚举的成员。
当 SelType 参数为 visSelTypeByType 时,可能的 Data 值应为 Visio 类型库在 VisTypeSelectionTypes 中声明的下列值之一。
常量 | 值 | 说明 |
---|---|---|
visTypeSelBitmap | 16 | 位图形状。 |
visTypeSelGroup | 1 | 包含其他形状的形状。 |
visTypeSelGuide | 4 | 参考线形状。 |
visTypeSelInk | 32 | 墨迹形状。 |
visTypeSelMetafile | 8 | 图元文件形状。 |
visTypeSelOLE | 64 | 链接形状、嵌入形状或控件形状。 |
visTypeSelShape | 2 | 本地 Visio 形状。 |
示例
以下 Microsoft Visual Basic for Applications (VBA) 宏显示如何使用 CreateSelection 方法选择特定图层上的所有形状。 运行此宏之前,请在绘图中创建两个层,一个名为“a”,一个名为“b”,并向这两个层添加形状。
Public Sub CreateSelection_Layer_Example()
Dim vsoLayer As Visio.Layer
Dim vsoSelection As Visio.Selection
Set vsoLayer = ActivePage.Layers.ItemU("a")
Set vsoSelection = ActivePage.CreateSelection(visSelTypeByLayer, visSelModeSkipSuper, vsoLayer)
Application.ActiveWindow.Selection = vsoSelection
End Sub
此 VBA 宏演示如何使用 CreateSelection 方法在绘图页上选择特定形状。 运行此宏之前,请打开“基本形状”模具。
Public Sub CreateSelection_Page_Example()
Dim vsoSelection As Visio.Selection
Dim vsoShape As Visio.Shape
Application.ActiveWindow.Page.Drop Application.Documents("BASIC_U.VSS").Masters.ItemU("Rectangle"), 2, 9
Application.ActiveWindow.Page.Drop Application.Documents("BASIC_U.VSS").Masters.ItemU("Rectangle"), 5, 9
Application.ActiveWindow.Page.Drop Application.Documents("BASIC_U.VSS").Masters.ItemU("Rectangle"), 2, 7
Set vsoShape = ActivePage.Shapes(2)
Set vsoSelection = ActivePage.CreateSelection(visSelTypeSingle, visSelModeSkipSuper, vsoShape)
Application.ActiveWindow.Selection = vsoSelection
Debug.Print vsoShape.Name
End Sub
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。