Consulting

Results 1 to 2 of 2

Thread: Exporting Drawing Objects from Excel

  1. #1
    VBAX Newbie
    Joined
    Jun 2007
    Location
    Dorset, UK
    Posts
    1
    Location

    Exporting Drawing Objects from Excel

    I have some VBA code that allows me to export Excel charts as GIF files. Does anyone know if it is possible to do the same thing with drawing objects?

    The code I have for exporting charts is:

    ActiveChart.Export Filename:="c:\chart.gif", FilterName:="GIF"

    Thank you.

  2. #2
    Administrator
    Chat VP
    VBAX Guru johnske's Avatar
    Joined
    Jul 2004
    Location
    Townsville, Australia
    Posts
    2,872
    Location
    Not quite the same, you have to copy and paste the picture into a chart and then export it. Here's some old code I have to demonstrate the basic idea...
    [VBA]
    Option Explicit

    Sub ExportPictureName()

    Dim MyChart As String, PictureName As String
    Dim PicWidth As Long, PicHeight As Long

    Application.ScreenUpdating = False

    On Error GoTo Finish
    PictureName = Selection.Name
    With Selection
    PicHeight = .ShapeRange.Height
    PicWidth = .ShapeRange.Width
    End With

    Charts.Add
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
    Selection.Border.LineStyle = 0
    MyChart = Selection.Name & " " & Split(ActiveChart.Name, " ")(2)

    With ActiveSheet
    With .Shapes(MyChart)
    .Width = PicWidth
    .Height = PicHeight
    End With

    .Shapes(PictureName).Copy

    With ActiveChart
    .ChartArea.Select
    .Paste
    End With

    .ChartObjects(1).Chart.Export Filename:="MyPic.jpg", FilterName:="jpg"
    .Shapes(MyChart).Cut
    End With

    Application.ScreenUpdating = True
    Exit Sub

    Finish:
    MsgBox "You must select a picture"
    End Sub
    [/VBA]
    You know you're really in trouble when the light at the end of the tunnel turns out to be the headlight of a train hurtling towards you

    The major part of getting the right answer lies in asking the right question...


    Made your code more readable, use VBA tags (this automatically inserts [vba] at the start of your code, and [/vba ] at the end of your code) | Help those helping you by marking your thread solved when it is.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •