在如何在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
发表评论