VBA导出Excel图片
原理:
- Excel文档里面的图片都是Shape对象,遍历ActiveSheet的Shapes集合;
- 将对应的Shape对象,设置到临时变量中;
- 在当前的Sheet里面添加ChartObject对象,并用前面取到的Shape的宽和高设置ChartObject对象的区域大小;
- 调用Shape对象的Copy方法,将其拷贝到剪切板;
- 激活前面创建的ChartObject对象,使用其对应的Activate方法,如果不做这步会提示错误;
- 将前面拷贝的图片,黏贴到ChartObject对象的Chart属性当中;意味着在插入的ChartObject对象里面贴了一幅图片;
- 再调用ChartObject对象的Chart属性中的Export方法,将图片导出到对应的目录,并命名。
例子代码如下:
Dim i As Long
Dim picRow As Long
Dim sku As String
Dim s As Shape
Dim c As ChartObject
For i = 1 To ActiveSheet.Shapes.Count
Set s = ActiveSheet.Shapes(i)
picRow = s.TopLeftCell.Row
sku = ActiveSheet.Cells(picRow, 12)
If sku <> "" Then
s.Copy
Set c = ActiveSheet.ChartObjects.Add(0, 0, s.Width, s.Height)
c.Activate
c.Chart.Paste
c.Chart.Export "D:\jibbitz\" & sku & ".jpg"
c.Delete
End If
Next i
这里判断图片对应行的第12列是否有值,如果有责将其作为图片的名字,导出图片。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。