1、有时需要将工作表中的图形对象保存为单独的图像文件,可以使用Export方法将工作表中的图片以文件形式导出,如下面的代码所示。1. Sub ExportShp()2. Dim Shp As Shape3. Dim FileName As String4. For Each Shp In Sheet1.Shapes5. If Shp.Type = msoPicture Then6. FileName = ThisWorkbook.Path & & Shp.Name & .gif7. Shp.Copy8. With Sheet1.ChartObjects.Add(0, 0, Shp.Width +
2、28, Shp.Height + 30).Chart9. .Paste10. .Export FileName, gif11. .Parent.Delete12. End With13. End If14. Next15. End Sub代码解析:ExportShp过程将Sheet1工作表的所有图片以文件形式导出到同一目录中。第4行代码使用For Each.Next 语句遍历Sheet1工作表中的所有图形。第5行代码判断图形的类型是否为图片,应用于Shape对象的Type属性返回或设置图形类型,可以为表格 1所示的MsoShapeType常量之一。常量值说明msoShapeTypeMixed-
3、2混合型图形msoAutoShape1自选图形msoCallout2没有边框线的标注msoChart3图表msoComment4批注msoFreeform5任意多边形msoGroup6图形组合msoFormControl8窗体控件msoLine9线条msoLinkedOLEObject10链接式或内嵌OLE对象msoLinkedPicture11剪贴画或图片msoOLEControlObject12ActiveX 控件msoPicture13图片msoTextEffect15艺术字msoTextBox17文本框msoDiagram21组织结构图或其他图示表格 1 MsoShapeType常量第
4、6行代码使用字符串变量FileName记录需导出图形的路径和名称。第7行代码复制图形,应用于Shape对象的Copy方法将对象复制到剪贴板。第8行代码使用Add方法在工作表中添加一个图表,应用于ChartObjects对象的Add 方法创建新的嵌入图表,语法如下:expression.Add(Left, Top, Width, Height)参数expression是必需的,返回一个ChartObjects对象。参数Left、参数Top是必需的,以磅为单位给出新对象的初始坐标,该坐标是相对于工作表上单元格A1的左上角或图表的左上角的坐标。参数Width、参数Height是必需的,以磅为单位给出
5、新对象的初始大小。第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方法删除。