automating-keynote について
Keynoteに特化したmacOS自動化スキルで、プレゼンテーションのスクリプト作成や管理に向いています。JXAを中心に、AppleScriptでオブジェクトモデルを調べ、スライドや画像、書き出しを扱います。
主な機能
- 01JXAでKeynoteを自動化
- 02AppleScriptでオブジェクトモデルを調査
- 03スライド作成とマスタースライド設定
- 04ファイルパスを指定して画像を追加
- 05チャートや書き出しのガイドを参照
活用シーン
- 01Keynote書類の情報を読み取る
- 02プレゼンスライドの作成をスクリプト化
- 03スライドに画像を挿入
- 04プレゼンテーションの書き出しを検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ spillwavesolutions/ automating-mac-apps-plugin --skill automating-keynoteインストール後、Claude Code で/automating-keynoteを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/keynote-advanced.mdkeynote-basics.mdkeynote-chart-aware-deck.mdkeynote-deck-generator.mdkeynote-pyxa-api-reference.mdkeynote-pyxa.mdkeynote-recipes.mdscripts/create_keynote_presentation.pycreate_presentation.jsexport_keynote_presentation.pymarkdown_to_keynote.pyset_up_keynote_automation.pyset_up_keynote_automation.sh詳細
Keynote の自動化(JXA 優先、AppleScript による調査)
目次
macOS 自動化スキルとの関係
- このスキルでは、Keynote に特化した自動化(書類、スライド、グラフ)を扱います。
- アプリをまたぐワークフローや、macOS スクリプトの基礎については、
automating-mac-appsを使用してください。 - 関連スキルで Apple Events の知識を習得していることを前提とします。
- PyXA のインストール: このスキルの PyXA の例を使用するには、
automating-mac-appsスキルのインストール手順(PyXA のインストールのセクション)を参照してください。
基本的な考え方
- JXA(JavaScript for Automation)を使うと、JavaScript の構文で macOS アプリをスクリプトから操作できます。
- AppleScript の辞書では Keynote のオブジェクトモデルが定義されています。Script Editor で調べることができます。
- JXA のオブジェクトは指定子です。
.name()などのメソッドで読み取り、代入で書き込みます。 - 本番用スクリプトでは信頼性の高い JXA を使用し、プロトタイプ作成には AppleScript を使用します。
- 重要: Keynote にファイルパスを指定する場合(画像、書き出し、書類を開く場合など)、JXA の
Path()関数が必要です。通常の文字列ではなく、Path("/path/to/file")を使用してください。
ワークフロー(既定)
- Script Editor > File > Open Dictionary > Keynote で用語を調べます。
- 最小限の AppleScript でプロトタイプを作成します:
tell application "Keynote" to get name of document 1。 - try-catch ブロックを使って JXA に移植します:
Application("Keynote").documents[0].name()。 - 読み取り専用の確認で検証します:
Application("Keynote").documents.length > 0。 - 辞書に機能がない場合に限り、UI スクリプティングを使用します(例:
Application("System Events"))。
簡単な例
プロトタイプ(AppleScript):
tell application "Keynote"
get name of document 1
end tell
本番用(JXA):
const keynote = Application("Keynote");
if (keynote.documents.length > 0) {
console.log(keynote.documents[0].name());
}
スライドの作成:
const doc = keynote.documents[0];
const slide = doc.slides.push(keynote.Slide({baseSlide: doc.masterSlides['Title - Center']}));
slide.defaultTitleItem.objectText = "New Slide";
スライドへの画像の追加(Path() の使用に注意):
const slide = doc.slides[0];
const img = keynote.Image({
file: Path("/Users/you/Desktop/diagram.png"), // Path() required!
position: { x: 100, y: 100 },
width: 800
});
slide.images.push(img);
検証チェックリスト
Keynote の自動化を実装した後、次の項目を確認してください。
- Keynote が起動していて、アクセス可能であることを確認する
- マスタースライドを割り当ててスライドを作成できることをテストする
- 画像パスで
Path()関数が使われていることを確認する - デフォルトのテキスト項目でテキストが正しく表示されることを確認する
- 書き出し処理がエラーなく完了することを検証する
使用しない場合
- クロスプラットフォームのプレゼンテーション自動化には使用しないでください(Python ライブラリで PowerPoint を使用してください)。
- AppleScript だけで十分な場合は使用しないでください(JXA の複雑さを避けてください)。
- ウェブベースのプレゼンテーション(Google Slides、reveal.js)には使用しないでください。
- macOS 以外のプラットフォームでは使用しないでください。
読み込む内容
- Keynote の JXA の基礎と実行時の注意点:
automating-keynote/references/keynote-basics.md - Keynote のレシピ(スライド、テキスト、画像、書き出し):
automating-keynote/references/keynote-recipes.md - スライドデッキ生成の例:
automating-keynote/references/keynote-deck-generator.md - グラフ対応スライドデッキのパターン:
automating-keynote/references/keynote-chart-aware-deck.md - 高度なワークフロー(グラフ連携、マジックムーブ、UI スクリプティング):
automating-keynote/references/keynote-advanced.md - PyXA(Python)の実践例:
automating-keynote/references/keynote-pyxa.md - PyXA API リファレンス(クラス/メソッドの完全なドキュメント):
automating-keynote/references/keynote-pyxa-api-reference.md
コメント
Markdown 対応