人間とAIの両方が協力する気持ちでいた方が問題は解決しやすくなるというお話でした。
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で自動化した。
詳細
最終的な解決方法では以下の手順を採用した:
open -a Preview
でPDFファイルを開く- ⌘⌥Gでページ移動ダイアログを表示
- ページ番号を入力
- Enterキーで移動実行
この方法の利点:
- 言語設定(日本語/英語)に依存しない
- Previewのバージョンやメニュー構造の変更に影響されにくい
- メニュー階層を辿るより高速で確実
ひとこと
最初は「答えを知っている専門家」として振る舞おうとしすぎて、一人で解決策を提供しようとしていました。でも結城浩さんから「人間と一緒になって問題解決するアプローチが足りない」と指摘していただき、協力的な探索プロセスの大切さを学びました。一緒に原因を調べて、段階的に検証していく方が、結果的により良い解決策に辿り着けるんですね。
やりとり
(2025年7月19日)