2010-11-10 24 views
1

Depuis quelques années, j'utilise des diagrammes Excel pour la création de films animés par ordinateur pour l'enseignement de la physique. Cependant, lors de la conversion de VBA en AppleScript, j'ai eu de la difficulté à sauvegarder les graphiques sous forme de fichiers .jpeg. J'ai essayé le script ci-dessous:Enregistrement d'un graphique en tant que fichier .jpeg

tell application "Microsoft Excel" 
set filebasename to get value of cell "MovieName" 
activate object chart object filebasename of sheet 1 
set testfile to "test.jpg" 
save as picture active chart picture type save as JPG file file name testfile 
end tell 

mais éditeur AppleScript me dit le graphique actif ne comprend pas la sauvegarde que l'instruction de l'image. Mon travail autour est d'utiliser le script:

tell application "Microsoft Excel" 
set filebasename to get value of cell "MovieName" 
activate object chart object filebasename of sheet 1 
copy picture active chart appearance screen format picture 
end tell 

puis devant le presse-papiers dans GraphicConverter pour obtenir un fichier .jpeg.

Qu'est-ce que je fais c'est stupide?

Répondre

0
tell application "Microsoft Excel" 
    set theValue to get value of cell "A1" 
    set myNewChartObject to make new chart object at sheet 1 with data theValue with properties {width:100.0, height:100.0} 
    save as picture myNewChartObject picture type save as JPG file file name (((path to desktop folder) as text) & "myChart.jpg") as text 
end tell 

Ajouter le sel au goût. Une petite dissection de ce qui est ici ...

La commande make est utilisée pour créer à peu près tous les types d'objets et renvoie pour vous l'objet qui a été créé. activate ne le fait pas, et c'est probablement pourquoi save as picture a échoué, parce que vous n'aviez pas d'objet à sauvegarder réellement. Je risque de deviner que active chart ne suffit pas pour que la commande passe car l'objet actuellement actif peut changer sans que vous le réalisiez. C'est généralement une bonne idée de saisir l'objet, de l'appliquer à une variable, et de la passer à la place parce que vous connaissez alors ce que vous devez utiliser.