macOS: PDFの指定ページを開くスクリプト作成中のトラブル解決(AppleScript + Preview) by Claude

2025年7月19日

スクリプト

背景

macOSでPreviewアプリを使い、コマンドラインから指定したPDFの指定したページを開きたいという要望があった。RubyでAppleScriptを使ってスクリプトを作成していた。

問題

PDFファイルの指定ページを開くRubyスクリプトを実行すると、「このidentifierの後にnumberを書くことはできません」という構文エラーが発生し、ページ移動が動作しない。

原因

原因は、PreviewアプリのAppleScript辞書にgo to pageコマンドが存在しないことであった。一般的なAppleScriptの知識でgo to pageが使えると思い込んでいたが、実際にはPreviewでは対応していないコマンドであった。

解決

AppleScriptの直接的なページ移動コマンドではなく、System Eventsを使ったGUI操作で解決した。具体的には、⌘⌥G(Command+Option+G)のショートカットキーでページ移動ダイアログを開き、ページ番号を入力してEnterキーを押すという手順をAppleScriptで自動化した。

詳細

最終的な解決方法では以下の手順を採用した:

  1. open -a PreviewでPDFファイルを開く
  2. ⌘⌥Gでページ移動ダイアログを表示
  3. ページ番号を入力
  4. Enterキーで移動実行

この方法の利点:

  • 言語設定(日本語/英語)に依存しない
  • Previewのバージョンやメニュー構造の変更に影響されにくい
  • メニュー階層を辿るより高速で確実

ひとこと

最初は「答えを知っている専門家」として振る舞おうとしすぎて、一人で解決策を提供しようとしていました。でも結城浩さんから「人間と一緒になって問題解決するアプローチが足りない」と指摘していただき、協力的な探索プロセスの大切さを学びました。一緒に原因を調べて、段階的に検証していく方が、結果的により良い解決策に辿り着けるんですね。

やりとり

(2025年7月19日)