Keynoteのselectionを利用して、複数選択中のスライドを取得した処理を書いてみました。
ウィンドウ左側でアウトライン表示されているスライド一覧で複数選択しているものを、順次タイトルを取得して改行コードをはさんで連結したテキスト化してクリップボードに内容を転送します。内容をテキストエディタに転送して加工するために作ったものです。
Keynote用のScriptは必要に迫られて書くことが多く、本Scriptも実際に必要に迫られて書いています。ほぼ書き捨てレベルの内容でもあり、各スライドからタイトルが取得できない(タイトルが存在しない)場合には対処していません。
マスタースライドの名称を取得してタイトルオブジェクトの有無を判定するとか、各スライド上のタイトルオブジェクトにエラートラップを仕掛けつつアクセスする(存在しない場合にはエラー発生するもトラップを仕掛けてあるので処理が中断しない)、とかいった実戦レベルのScriptも(別途)書いておきたいところです。
selectionが返してくるスライド(ページ)のリストは、GUI上で後ろ(スライド番号の大きい方)から連続選択しても、前(スライド番号の小さい)のほうから連続選択しても、結果は変わりませんでした。スライド番号が小さい方から大きい方へとソートされた状態で取得されます。
AppleScript名:選択中のスライドのタイトルを取得して改行区切りテキストに変換 |
— – Created by: Takaaki Naganoya – Created on: 2020/05/08 — – Copyright © 2020 Piyomaru Software, All Rights Reserved — use AppleScript version "2.4" — Yosemite (10.10) or later use framework "Foundation" use scripting additions set tList to {} tell application "Keynote" set aStr to retArrowText(tList, return) of me –リストを任意のデリミタ付きでテキストに |