Excel VBA如何画出并保存jpg图片?

图片是根据程序生成的任意图片,不是Excel自带的统计图比如说,n个shape实例组合的图片,如何使用vba语言保存成jpg文件?... 图片是根据程序生成的任意图片,不是Excel自带的统计图
比如说,n个shape实例组合的图片,如何使用vba语言保存成jpg文件?
展开
 我来答
百度网友3837d6a
推荐于2017-11-24 · TA获得超过228个赞
知道小有建树答主
回答量:199
采纳率:73%
帮助的人:130万
展开全部
假设:
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

'代码结束

参考资料: 记得以前看到一代码段,是将选择的表格存为图片的,借用了他的思路。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式