[Excel VBA] Shape.Type属性名称及对应值列表
当一个工作表中有多种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