es ist mal wieder so weit. Unter OS9 war Excel recordable, d.h. der Skripteditor konnte aufzeichnen, was man in/mit Excel anstellte.
Offensichtlich geht das unter OSX nicht mehr. Über einen Link in der Excel-Hilfe habe ich mir das Excel2004AppleScriptRef.pdf heruntergeladen, über 400 Seiten. Hier steht alles, was in den AS-Verzeichnissen auch steht, auch mit einigen bescheidenen Syntaxbeispielen versehen. Und alle Formate sind aufgelistet, unter denen man eine Excel-Datei abspeichern kann. Leider gibt es dazu kein Syntaxbeispiel.
Und es ist mir in zwei Stunden nicht gelungen, eine vorhandene Excel-Tabelle (mit mehreren Blättern) per Script unter einem anderen Namen, geschweige denn als Tabtext zu sichern.
Weiß jemand weiter, z.B. wie es geht und woher weitere Anfänger-Infos zu bekommen sind? Ich trau mich gar nicht zu fragen: Gibt es unter OSX noch mehr so nette Überraschungen?
Genug gefrustet, jetzt geh ich erst mal in die Sonne Goar
Zum Sichern unter einem neuen Namen benötigt man einen Pfad zu einem existierenden Ordner und einen Dateinamen. Dann klappt das 'save in' problemlos. Erzeuge bitte im Ordner "Documents" Deines Verzeichnisses den Ordner "test_Excel" und starte dann dieses Script: --- set newPath to (path to "cusr" as Unicode text) & "Documents:test_Excel:versuch_01.xls" tell application "Microsoft Excel" save active workbook in newPath end tell ---
Das Exportieren als Tabtext ist sehr ähnlich. Das Suffix ändern, den Save-Befehl in einen 'tell active workbook'-Block setzen und den Zusatz 'as text Mac' anbringen: --- set newPath to (path to "cusr" as Unicode text) & "Documents:test_Excel:versuch_01.txt" tell application "Microsoft Excel" tell active workbook save worksheet 1 in newPath as text Mac end tell end tell --- Diese Textdatei kann ohne weiteres mit BBEdit geöffnet oder in ein InDesign-Dokument oder in ein QuarkXPress-Layout geladen werden. Doch wenn Du das Excel-Icon ersetzen willst, dann muss Du im Script einen Finder-Befehl anschliessen: Mehrere Blätter exportieren? --- set newPath to (path to "cusr" as Unicode text) & "Documents:test_Excel:" tell application "Microsoft Excel" tell active workbook set docName to name if docName ends with ".xls" then set docName to text 1 thru -5 of docName end if repeat with i from 1 to count of worksheets set sheetName to name of worksheet i save worksheet i in newPath & docName & "_" & sheetName & ".txt" as text Mac end repeat end tell close active workbook saving no end tell --- Zu beachten: Die Blätter werden dabei umbenannt mit den entsprechenden Textdatei-Namen und das Dokument selbst bekommt den letzten Textdatei-Namen. Keine Panik: Das Script schliesst das Dokument ohne zu sichern.
Wo gibt es weitere Informationen? Nun, für die obenstehenden Beispiele habe ich soeben kurz im Verzeichnis nachgesehen und dann ausprobiert, bis es funktionierte. Eine andere Quelle: In der "AppleScript User's"-Mailing-Liste werden ab und zu Fragen zu Excel gestellt.
Weitere OS-X-Überraschungen? Bestimmt. Aber dadurch ist doch für Abwechslung gesorgt ... ;-)
Deine Entfrustungsantwort ging mir runter wie warmes Öl. Besonders wirkungsvoll: die Lektüre Deiner Skripts, die lesen sich wie ein Unterhaltungsroman. Und natürlich klappte es gleich, nachdem ich den Pfad aktualisiert hatte. Warum bin ich nicht selber drauf gekommen?
In dem o.g. pdf von MS war allerdings immer die Rede von "save as" und "save workbook as", vielleicht habe ich mich davon ins Boxhorn jagen lassen, statt im naheliegenden Verzeichnis nachzusehen.