當一個工作表中有多種Shape類型的時候,可以通過Shape.Type屬性值返回一個代表形狀類型的MsoShapeType數值。通過該數值可知該圖形的類型。
列表如下:
名稱 |
值 |
說明 |
msoAutoShape |
1 |
自選圖形 |
msoCallout |
2 |
標注 |
msoCanvas |
20 |
畫布 |
msoChart |
3 |
圖 |
msoComment |
4 |
批注 |
msoDiagram |
21 |
圖表 |
msoEmbeddedOLEObject |
7 |
嵌入的 OLE 對象 |
msoFormControl |
8 |
窗體控件 |
msoFreeform |
5 |
任意多邊形 |
msoGroup |
6 |
組合 |
msoIgxGraphic |
24 |
SmartArt 圖形 |
msoInk |
22 |
墨跡 |
msoInkComment |
23 |
墨跡批注 |
msoLine |
9 |
線條 |
msoLinkedOLEObject |
10 |
鏈接 OLE 對象 |
msoLinkedPicture |
11 |
鏈接圖片 |
msoMedia |
16 |
媒體 |
msoOLEControlObject |
12 |
OLE 控件對象 |
msoPicture |
13 |
圖片 |
msoPlaceholder |
14 |
占位符 |
msoScriptAnchor |
18 |
腳本定位標記 |
msoShapeTypeMixed |
-2 |
混和形狀類型 |
msoTable |
19 |
表 |
msoTextBox |
17 |
文本框 |
msoTextEffect |
15 |
文本效果 |
舉例如下:
1 Sub 返回SmartArt總數() 2 For Each shp In ActiveSheet.Shapes 3 If shp.Type = 24 Then i = i + 1 4 Next 5 MsgBox "共有 " & i & " 個SmartArt 圖形" 6 End Sub