共用方式為


Visio) (Page.CreateSelection 方法

建立各種類型的 Selection 物件。

語法

expressionCreateSelection( _SelType_ , _IterationMode_ , _[Data]_ )

表達 代表 Page 對象的變數。

參數

名稱 必要/選用 資料類型 描述
SelType 必要項目 VisSelectionTypes 選取範圍的類型。 如需可能的值,請參閱<備註>。
IterationMode 選用 VisSelectMode 所使用的選取模式。 如需可能的值,請參閱<備註>。
資料 選用 Variant 對應到 SelType 引數的物件類型。 請參閱 「 備註 」 可能的值。

傳回值

選取範圍

註解

CreateSelection 方法可讓您以程序設計方式建立複雜的選取專案。 因此,您不必選取頁面上的所有圖形,例如,您可以只選取指定圖層上的圖形,或只選取以特定主圖形為基礎的圖形。

呼叫 CreateSelection 方法時,SelType 等於 visSelTypeByTypevisSelTypeByLayer,相當於選取 [選取 byType] 對話框中的選項 (按兩下 [首頁] 索引標籤上 [編輯] 群組中的 [取],然後按兩下 [依類型選取) ] 。

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 所指定之物件類型的物件。 例如,如果您想要選取特定類型的所有主圖形, 則數據 應為 Master 類型。 而且,如果您想要選取特定圖層上的所有圖形, 數據 應該屬於 Layer 類型。

SelTypevisSelTypeByRole 時, 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 支援與意見反應