AppleScript初心者の方へ
AppleScriptは、Macをより効果的かつ便利に利用するための道具です。プログラミング言語やマクロ言語と呼ばれる種類のもので、OSの各種機能やアプリケーションの内部機能を呼び出せます。
つまり、(AppleScript対応アプリケーションであれば)日常的によく行う作業をScriptに書いておき、呼び出すことで「時間と労力の節約」ができます。
また、そのような作業を自分で行わなくてよくなるために、繰り返し行ってもユーザー自身が疲れることはありません。
AppleScriptはすべてゼロから自分で書かなくてはならないものでしょうか?
そんなことはありません。
すでに「だいたいこういう操作はやるよね」という決まり切った内容については、本Blogのようなサイトで紹介しており、すぐに利用できるようになっています。ならべかえ、データの抽出、Webサイトへのアクセスなどさまざまな「よくやる処理」の方法を公開しています。
本サイトでは、各プログラムリストの末尾に「★Click Here to Open This Script」といったリンクを用意しており、これをクリックすると掲載内容がスクリプトエディタに転送されます。コピペも打ち直しも必要ありません。
アプリケーションの内部機能については、アプリケーションのアイコンをスクリプトエディタにドラッグ&ドロップすることで、その機能や属性の一覧が表示されます。
つまり、AppleScript対応アプリケーションのすべての機能のうち、AppleScriptに解放されている機能(コマンド、属性、オブジェクト)を利用できるのがAppleScriptです。
どうしても未対応機能を使いたいという場合には、メニューやボタンを直接操作する「GUI Scripting」という機能が用意されており、強制的に実行させることも可能です。
AppleScriptの醍醐味
何かの処理を行いたいときに、たとえば「Excelのデータを作成してPDFに書き出す」といった場合には、
Objective-C,Swift:
Excelのデータを書き出せるオープンソースのフレームワークを見つけてきて、ExcelのデータについてはFramework経由でファイル出力。PDFは自前でViewに描画して書き出し
という処理になると思います。けっこうな作業量です。
これがAppleScriptでは、
Excelに対して所定の表を作らせて、その内容をPDFに書き出す
だけです。アプリケーションにお願いできることはアプリケーションにやってもらいましょう、というのがAppleScriptのやりかたです(macOS 10.10以降は、Cocoaを直接呼び出してObjective-CやSwiftのように処理することも可能)。
さらに、Mac上のアプリケーション、データ、Web API、Web上のさまざまなデータなどを組み合わせてデータ処理を行い、
「写真.appで選択中の写真すべてに対して、MicrosoftのCognitive Serviceで画像認識を行い、得られたタグをGoogleのサービスを使って日本語訳して写真.app上の写真にタグづけする」
という処理さえ(比較的手軽に)行えます。組み合わせて処理したいものを自由に組み合わせて、まったく新しい自分だけの道具を作り上げるというのがAppleScriptの最大の醍醐味といえるでしょう。
AppleScriptの処理で特徴的なのは、自分が操作したり選択中の書類、書類中のオブジェクトに対して処理できることです。
アプリケーション上で選択中のテキストをもとに検索を行い、その検索結果を選択範囲に書き戻すようなことも可能です。
Web APIが整備されていないようなWebサイトにWebブラウザ経由でアクセスし、データをダウンロードしたり情報を取得するロボットプログラムも得意なため(もちろん、Web APIが整備されていれば呼び出すことも可能です)、アクセスの少ない夜間にアクセスして処理することも可能です。
詳しくは、電子書籍「AppleScript最新リファレンス」などに書いてありますので、ぜひお書い求めください。
長野谷@Piyomaru Software