搜档网
当前位置:搜档网 › Excel VBA实例教程 #054:导出工作表中的图片

Excel VBA实例教程 #054:导出工作表中的图片

有时需要将工作表中的图形对象保存为单独的图像文件,可以使用Export方法将工作表中的图片以文件形式导出,如下面的代码所示。

1.Sub ExportShp()

2. Dim Shp As Shape

3. Dim FileName As String

4. For Each Shp In Sheet1.Shapes

5. If Shp.Type = msoPicture Then

6. FileName = ThisWorkbook.Path & "¥" & https://www.sodocs.net/doc/a19341415.html, & ".gif"

7. Shp.Copy

8. With Sheet1.ChartObjects.Add(0, 0, Shp.Width + 28, Shp.Height + 30).Chart

9. .Paste

10. .Export FileName, "gif"

11. .Parent.Delete

12. End With

13. End If

14. Next

15.End Sub

代码解析:

ExportShp过程将Sheet1工作表的所有图片以文件形式导出到同一目录中。

第4行代码使用For Each...Next 语句遍历Sheet1工作表中的所有图形。

第5行代码判断图形的类型是否为图片,应用于Shape对象的Type属性返回或设置图形类型,可以为表格1所示的MsoShapeType常量之一。

表格1 MsoShapeType常量

第6行代码使用字符串变量FileName记录需导出图形的路径和名称。

第7行代码复制图形,应用于Shape对象的Copy方法将对象复制到剪贴板。

第8行代码使用Add方法在工作表中添加一个图表,应用于ChartObjects对象的Add 方法创建新的嵌入图表,语法如下:expression.Add(Left, Top, Width, Height)

参数expression是必需的,返回一个ChartObjects对象。

参数Left、参数Top是必需的,以磅为单位给出新对象的初始坐标,该坐标是相对于工作表上单元格A1的左上角或图表的左上角的坐标。

参数Width、参数Height是必需的,以磅为单位给出新对象的初始大小。

第9行代码使用Paste方法将图形粘贴到新的嵌入图表中,应用于Chart对象的Paste方法将剪贴板中的图表数据粘贴到指定的图表中,语法如下:

expression.Paste(Type)

参数expression是必需的,返回一个Chart对象。

参数Type是可选的的,如果剪贴板中有图表,本参数指定要粘贴的图表信息。可为以下XlPasteType常量之一:xlFormats、xlFormulas或xlAll。默认值为xlAll,如果剪贴板中是数据不是图表,则不能使用本参数。

第10行代码使用Export方法将图表导出到同一目录中,应用于Chart对象的Export方法以图形格式导出图表,语法如下:expression.Export(Filename, FilterName, Interactive)

其中参数Filename是必需的,被导出的文件的名称。

第10行代码删除新建的图表。因为Chart对象是不能使用Delete方法直接删除的,应先使用Parent属性返回指定对象的父对象,然后使用Delete方法删除。

相关主题