首页 > 代码库 > VBA导出Excel图片

VBA导出Excel图片



原理:

  1. Excel文档里面的图片都是Shape对象,遍历ActiveSheet的Shapes集合;
  2. 将对应的Shape对象,设置到临时变量中;
  3. 在当前的Sheet里面添加ChartObject对象,并用前面取到的Shape的宽和高设置ChartObject对象的区域大小;
  4. 调用Shape对象的Copy方法,将其拷贝到剪切板;
  5. 激活前面创建的ChartObject对象,使用其对应的Activate方法,如果不做这步会提示错误;
  6. 将前面拷贝的图片,黏贴到ChartObject对象的Chart属性当中;意味着在插入的ChartObject对象里面贴了一幅图片;
  7. 再调用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列是否有值,如果有责将其作为图片的名字,导出图片。



VBA导出Excel图片