Excel VBA如何画出并保存jpg图片?
图片是根据程序生成的任意图片,不是Excel自带的统计图比如说,n个shape实例组合的图片,如何使用vba语言保存成jpg文件?...
图片是根据程序生成的任意图片,不是Excel自带的统计图
比如说,n个shape实例组合的图片,如何使用vba语言保存成jpg文件? 展开
比如说,n个shape实例组合的图片,如何使用vba语言保存成jpg文件? 展开
1个回答
展开全部
假设:
1、在你的sheet1中只有一个Shape组合,
2、在你的文件中存在sheet2这个表
参考代码如下:
'代码开始
Sub Try()
Dim iShape As Shape, iChart As ChartObject, FileName As String
Set iShape = Sheets(1).Shapes(1)
iShape.CopyPicture Appearance:=xlScreen, Format:=xlPicture '复制到剪贴板
Set iChart = Sheets(2).ChartObjects.Add(0, 0, iShape.Width, iShape.Height)
iChart.Chart.Paste
FileName = Application.GetSaveAsFilename(InitialFileName:="iPicture", _
FileFilter:="JPEG文件(*.jpg),*.jpg", _
Title:="指定文件名")
If FileName = "False" Then GoTo Exit_Line '如果点击取消按钮则退出
iChart.Chart.Export FileName:=FileName, FilterName:=UCase(Right(FileName, 3)) '导出为图片文件
Exit_Line:
iChart.Delete
End Sub
'代码结束
程序运行时会要求你输入文件名,或用默认的文件名iPicture,然后会在你指定的位置生成一个jpg文件。
1、在你的sheet1中只有一个Shape组合,
2、在你的文件中存在sheet2这个表
参考代码如下:
'代码开始
Sub Try()
Dim iShape As Shape, iChart As ChartObject, FileName As String
Set iShape = Sheets(1).Shapes(1)
iShape.CopyPicture Appearance:=xlScreen, Format:=xlPicture '复制到剪贴板
Set iChart = Sheets(2).ChartObjects.Add(0, 0, iShape.Width, iShape.Height)
iChart.Chart.Paste
FileName = Application.GetSaveAsFilename(InitialFileName:="iPicture", _
FileFilter:="JPEG文件(*.jpg),*.jpg", _
Title:="指定文件名")
If FileName = "False" Then GoTo Exit_Line '如果点击取消按钮则退出
iChart.Chart.Export FileName:=FileName, FilterName:=UCase(Right(FileName, 3)) '导出为图片文件
Exit_Line:
iChart.Delete
End Sub
'代码结束
程序运行时会要求你输入文件名,或用默认的文件名iPicture,然后会在你指定的位置生成一个jpg文件。
更多追问追答
追问
谢谢解答。请问如果有多个shape时代码要如何修改?循环的起始行放在哪里呢?好像简单加个循环还是只保存了一个shape
追答
加循环:
Sub Try()
Dim iShape As Shape, iChart As ChartObject, FileName As String
For i = 1 To 3 '假设有三个,循环开始
Set iShape = Sheets(1).Shapes(i)
iShape.CopyPicture Appearance:=xlScreen, Format:=xlPicture '复制到剪贴板
Set iChart = Sheets(2).ChartObjects.Add(0, 0, iShape.Width, iShape.Height)
iChart.Chart.Paste
FileName = Application.GetSaveAsFilename(InitialFileName:="iPicture" & i, _
FileFilter:="JPEG文件(*.jpg),*.jpg", _
Title:="指定文件名")
If FileName = "False" Then GoTo Exit_Line '如果点击取消按钮则退出
iChart.Chart.Export FileName:=FileName, FilterName:=UCase(Right(FileName, 3)) '导出为图片文件
Exit_Line:
iChart.Delete
Next i '假设有三个,循环结束
End Sub
'代码结束
参考资料: 记得以前看到一代码段,是将选择的表格存为图片的,借用了他的思路。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |