export in graphic format - experts, can vba do it?

  • Thread starter Thread starter Mark
  • Start date Start date
M

Mark

Hi,
How exports by programming the shape (in sheet) or entire
userform in a graphic format e.g. jpg, gif?
I would be very happy if anyone could help me in this.

I've excel 2k
Best regards
Mark
 
Mark,
1 way, Save As Web page and all graphics are generated in a separate folder.
Does work with userforms though.

NickHK
 
Hi,
I saved (shape) as Web paged but its create folder and
other files.
I wonder, if is any way (maybe api) to export to only one
files with grapic format jpg or gif.
Or can I create for that purpose any class object (shape)
with metod export to file jpg?

Regards
Mark
 
Mark,

Here's a start at another technique. I think if you search you'll find that
others have perfected this. Pubs open and have to go.

The immediate limitation is that the picture has to fit on the screen as far
as I can see, but give it a whirl and see if it works for you.

Sub ExportPicAsJpg()
Dim chTemp As Chart
Dim picCopy As Picture
Dim dWidth As Double
Dim dHeight As Double
Dim shNew As Worksheet

Set picCopy = Selection
Set chTemp = Charts.Add
Set shNew = Sheets.Add

dWidth = picCopy.Width
dHeight = picCopy.Height

Application.ScreenUpdating = False
With chTemp

.SetSourceData Source:=Sheets("Sheet1").Range("FA16383")
.Location Where:=xlLocationAsObject, Name:=shNew.Name

With shNew.ChartObjects(1)

.Width = dWidth + 2
.Height = dHeight + 2
.Top = 0
.Left = 0
Range("A1").Select
picCopy.Copy
.Activate
ActiveChart.Paste
.Interior.ColorIndex = 1
ActiveChart.Export "c:\TempPic.JPG", "jpg"

End With

End With

Application.DisplayAlerts = False
shNew.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


Robin Hammond
www.enhanceddatasystems.com
 
Won't work with forms etc.

Robin Hammond said:
Mark,

Here's a start at another technique. I think if you search you'll find that
others have perfected this. Pubs open and have to go.

The immediate limitation is that the picture has to fit on the screen as far
as I can see, but give it a whirl and see if it works for you.

Sub ExportPicAsJpg()
Dim chTemp As Chart
Dim picCopy As Picture
Dim dWidth As Double
Dim dHeight As Double
Dim shNew As Worksheet

Set picCopy = Selection
Set chTemp = Charts.Add
Set shNew = Sheets.Add

dWidth = picCopy.Width
dHeight = picCopy.Height

Application.ScreenUpdating = False
With chTemp

.SetSourceData Source:=Sheets("Sheet1").Range("FA16383")
.Location Where:=xlLocationAsObject, Name:=shNew.Name

With shNew.ChartObjects(1)

.Width = dWidth + 2
.Height = dHeight + 2
.Top = 0
.Left = 0
Range("A1").Select
picCopy.Copy
.Activate
ActiveChart.Paste
.Interior.ColorIndex = 1
ActiveChart.Export "c:\TempPic.JPG", "jpg"

End With

End With

Application.DisplayAlerts = False
shNew.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


Robin Hammond
www.enhanceddatasystems.com
 

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

Back
Top