如何在excel中用vba把所有图形对象导出为图片格式的文件?

如何在excel中用vba把图表导出为图片格式的文件?一文中介绍了用vba将各种类型的图表导出为独立的图片格式文件的方法,其实现原理就是利用chart对象的export方法把图表导出为文件。

对于非图表对象,可以先把该对象复制到剪贴板,然后再用Chart对象的Paste方法把它装入Chart对象中,最后就可以使用chart对象的export方法把图表导出为文件。

根据以上的原理分析,本文介绍将excel中的所有图形对象(不区分是否是图表)都导出为独立的图片格式文件的方法。

代码如下:

Sub QQ1722187970()
    Dim oShape As Shape
    Dim oChartObject As ChartObject
    Dim oChart As Chart
    Dim oWK As Worksheet
    Dim sPath As String
    Dim i As Long
    Const msoChart = 3
    i = 1
    sPath = Excel.ThisWorkbook.Path & "\"
    For Each oWK In Excel.ThisWorkbook.Worksheets
        With oWK
            For Each oShape In .Shapes
                With oShape
                '遍历所有图形对象,如果不是图表类型的,则转换为图表类型的
                If .Type <> msoChart Then
                    .Copy
                     Set oChartObject = oWK.ChartObjects.Add(0, 0, .Width, .Height)
                     With oChartObject
                        .Chart.Paste
                     End With
                End If
                End With
            Next
            For Each oChartObject In .ChartObjects
                With oChartObject
                    .Chart.Export sPath & i & ".bmp"
                    i = i + 1
                End With
            Next
        End With
    Next
    For Each oChart In Excel.ThisWorkbook.Charts
        With oChart
            .Export sPath & i & ".bmp"
            i = i + 1
        End With
    Next
    MsgBox "所有图表导出完毕!!!"
End Sub

 

 

       

发表评论