Save chart as 800x600 GIf

F

Fan924

I found this and it works well. Exports charts as a gif image. I have
had no luck controlling the sixe of the GIF. What can I add to force
the GIF ouput to a 800x600 size?


Sub Save_ChartAsGif()
Dim oCht As Chart
Set oCht = ActiveChart
'ActiveSheet.Name
On erRROR GoTo Err_Chart
oCht.Export FileName:="D:\My Documents\_wip\Pic_" & ActiveSheet.Name &
".gif", Filtername:="gif"
'oCht.Export FileName:="C:\PopularICON.jpg", Filtername:="JPG"
Err_Chart:
If Err <> 0 Then
Debug.Print Err.Description
Err.Clear
End If
End Sub
 
J

Jon Peltier

You need to make the chart the proper size in Excel prior to exporting
it. That means it must already be 800x600.

There are 96 pixels per inch in a typical Windows setup (but it might be
different on yours, who knows). This means the image has to be 8.33x6.25
inches. You can set this if you shift click to select the chart (shift
click selects the chart object and puts white handles on the corners,
not black ones). Then on the Format menu, choose Objects..., and on the
size tab of the dialog, enter this size in inches.

In code, you can resize the chart into points (72 points/inch, or 0.75
points/pixel). You need it to be 600x450 points.

Sub Save_ChartAsGif()
Dim oCht As Chart
Set oCht = ActiveChart
'ActiveSheet.Name
On Error GoTo Err_Chart

'------------------------
' resize the chart object
oCht.Parent.Width = 600
oCht.Parent.Height = 450
'------------------------

oCht.Export FileName:="D:\My Documents\_wip\Pic_" & ActiveSheet.Name _
& ".gif", Filtername:="gif"
'oCht.Export FileName:="C:\PopularICON.jpg", Filtername:="JPG"
Err_Chart:
If Err <> 0 Then
Debug.Print Err.Description
Err.Clear
End If
End Sub

- Jon
 
F

Fan924

Thanks Jon, my error. It works fine on a chart in a excel file. I had
a chart as a stand alone which was not recizable. Thanks for your help.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top