views:

140

answers:

1

With an existing chart in a MS Excel for Mac 2008, in AppleScript, I am trying to do two things:

  1. Rotate a 3D chart 1°
  2. Save the chart as a image (png)

From what I've found on the Intertubes, it seems possible. But AppleScript's awkward verbosity and the lack of non-trivial MS Excel AppleScript examples on the web are too much for me to overcome.

Just for the saving part, this is what I have so far:

tell application "Microsoft Excel"
    activate object worksheet "iozone-16"
    set cht to chart object 1 of active sheet
    tell cht
        #save as chart object [picture type enumeration] [file name Unicode text]
        #Argh!!! 
    end tell
end tell

The 'rotate 1°' task seems to involve "internal objects", but that is as far as I've gotten. By 'rotate', I mean to rotate the chart object itself, not the image. This can be done in with the Format Chart dialog box for ... MS Excel Dialog Box

By manipulating this value, it the chart object changes as in below these next two images. (15° for effect)

MS Excel 3D graph example 0 MS Excel 3D graph example 1

+2  A: 

The X axis rotation of the chart can be changed via AppleScript by setting the rotation property of the chart property of the chart object.

The following AppleScript should do the trick:

set theImagePath to (path to desktop as text) & "Chart.png"

tell application "Microsoft Excel"
    set theChart to first chart object of first sheet
    set rotation of chart of theChart to 90
    save as picture theChart picture type save as PNG file file name theImagePath
end tell
sakra
Thanks, but that is not exactly what I meant by 'rotate'. I've edited the question to more accurately explain what I am trying to do. From what I understand, this really should be possible. Hopefully. Thanks again.
Stu Thompson
Stu, I have updated my answer to take into account your updated question. The new script is even simpler. Using Image Events is no longer necessary.
sakra
@sakra: That did it! Thanks so much!
Stu Thompson