VBA删除sheet里所有图片
时间: 2023-05-14 14:06:02 浏览: 132
你可以使用以下代码来删除一个工作表中的所有图片:
Sub DeleteAllPictures()
Dim pic As Picture
For Each pic In ActiveSheet.Pictures
pic.Delete
Next pic
End Sub
请注意,这将删除工作表中的所有图片,因此请确保您已经做好了备份。
相关问题
vba获取sheet里的图片
在 VBA 中获取一个工作表里的图片,可以通过遍历工作表上的所有形状来实现。形状可以是图片、图表、文本框等等。
以下是一个示例代码,可以获取指定工作表中所有的图片,并将图片保存到指定的文件夹中:
```VBA
Sub GetPictures()
Dim ws As Worksheet
Dim shp As Shape
Dim pic As Picture
Dim outputFolder As String
' 指定要获取图片的工作表
Set ws = ThisWorkbook.Worksheets("Sheet1")
' 指定输出文件夹
outputFolder = "C:\Users\Username\Desktop\Output\"
' 遍历工作表上的所有形状
For Each shp In ws.Shapes
If shp.Type = msoPicture Then ' 判断形状是否为图片
Set pic = shp.DrawingObject ' 获取图片对象
pic.Export outputFolder & pic.Name & ".jpg" ' 导出图片
End If
Next shp
End Sub
```
这段代码首先指定了要获取图片的工作表和输出文件夹,在遍历工作表上的所有形状时,判断形状是否为图片,如果是,就获取图片对象并将其导出到指定的文件夹中。需要注意的是,这段代码只能获取工作表上插入的图片,如果图片是通过代码动态插入的,则无法获取。
Vba将sheet中图片展示到窗体图片
要在 VBA 中将工作表中的图片展示到窗体图片控件中,可以通过获取图片对象并将其赋值给图片控件的 Picture 属性来实现。以下是一个示例代码,可以将指定工作表中的第一张图片展示到窗体图片控件中:
```VBA
Private Sub ShowPicture()
Dim ws As Worksheet
Dim shp As Shape
Dim pic As Picture
' 指定要获取图片的工作表
Set ws = ThisWorkbook.Worksheets("Sheet1")
' 遍历工作表上的所有形状
For Each shp In ws.Shapes
If shp.Type = msoPicture Then ' 判断形状是否为图片
Set pic = shp.DrawingObject ' 获取图片对象
' 将图片展示到图片控件中
Me.Image1.Picture = pic
Exit For ' 只展示第一张图片
End If
Next shp
End Sub
```
这段代码在遍历工作表上的所有形状时,判断形状是否为图片,如果是,就获取图片对象并将其赋值给窗体图片控件的 Picture 属性。需要注意的是,这里只展示了工作表中的第一张图片,如果需要展示其他图片,可以根据需要进行修改。另外,需要确保窗体图片控件的 SizeMode 属性设置为 1 - fmPictureSizeModeStretch,以保证图片可以自适应控件大小进行展示。