當一個工作表中有多種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
