'Shapes 对象
'指定的工作表上的所有 Shape 对象的集合。
'说明
'每个 Shape 对象都代表绘图层中的一个对象,如自选图形、任意多边形、图片、图表等。
Sub abc()
Dim ob As Shape
n = Sheet1.Shapes.Count
For Each ob In Sheet1.Shapes
k = k + 1
ob.Select
Cells(k + 1, "f") = ob.Name '图形名称
Cells(k + 1, "g") = ob.Type '图形类型
Cells(k + 1, "h") = ob.Top '顶端坐标
Cells(k + 1, "i") = ob.Left '左端坐标
Cells(k + 1, "j") = ob.Width '宽度
Cells(k + 1, "k") = ob.Height '高度
Next ob
End Sub
Sub 图形插入()
Sheet3.Shapes.AddPicture ThisWorkbook.Path & "\7pic\林志玲.png", _
True, True, 100, 100, 70, 70
End Sub
Sub 图形删除()
For Each shp In Sheet3.Shapes
shp.Delete
Next shp
End Sub
注意:
AddPicture 方法
应用于 CanvasShapes 对象的 AddPicture 方法。
在画布上添加一幅图片。返回一个 Shape 对象,该对象代表图片并将其添加至 CanvasShapes 集合。
expression.AddPicture(FileName, LinkToFile, SaveWithDocument, Left, Top, Width, Height)
expression 必需。该表达式返回一个 CanvasShapes 对象。
FileNameString 类型,必需。图片的路径和文件名。
LinkToFileVariant 类型,可选。如果为 True,则将图片链接到创建该对象的文件;如果为 False,则将图片作为该文件的独立副本。默认值是 False。
SaveWithDocumentVariant 类型,可选。如果为 True,则将链接的图片与文档一起保存。默认值是 False。
LeftVariant 类型,可选。新图片的左边缘相对于画布的位置,以磅为单位。
TopVariant 类型,可选。新图片的上边缘相对于画布的位置,以磅为单位。
WidthVariant 类型,可选。图片的宽度,以磅为单位。
HeightVariant 类型,可选。图片的高度,以磅为单位。
案例1
Sub 宏1()
For Each shap In Sheet1.Shapes
If shap.Type <> 8 Then shap.Delete
Next shap
For Each Rng In Range([a2], Cells(Application.CountA(Columns(1)), 1))
i = ThisWorkbook.Path & "\7pic\" & Rng & ".png"
Set rngs = Cells(Rng.Row, 2)
Sheet1.Shapes.AddPicture i, True, True, rngs.Left, rngs.Top, rngs.Width, rngs.Height
Next Rng
End Sub
扩展:
当一个工作表中有多种Shape类型的时候,可以通过Shape.Type属性值返回一个代表形状类型的MsoShapeType数值。通过该数值可知该图形的类型。