Visio) (Page.CreateSelection 方法

建立各種類型的 [選取範圍] 物件。

語法

expression。 CreateSelection( _SelType_ , _IterationMode_ , _[Data]_ )

運算式 代表 Page 物件的變數。

參數

名稱 必要/選用 資料類型 描述
SelType 必要 VisSelectionTypes 選取範圍的類型。 如需可能的值,請參閱<備註>。
IterationMode 選用 VisSelectMode 所使用的選取模式。 如需可能的值,請參閱<備註>。
資料 選用 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 所指定物件類型的物件。 例如,如果您想要選取特定類型的所有主版, [資料 ] 類型應該為 「主版」。 如果您想選擇某個圖層上的所有形狀, 數據 類型應該是 圖層。

當 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 支援與意見反應。