AppleScriptの使い方
他力本願でAppleScriptを使う
前回の説明で、AppleScriptの仕組みが少し理解できて、スクリプトを作ってみたくなったことでしょう。でも、ちょっと待ってください。これから作ろうと考えているスクリプトは、すでに誰かが作成している可能性があります。そして、他人が作ったスクリプトはAppleScriptを理解するうえで、非常に参考になるお手本です。まずは、これらのスクリプトを試してみることをお勧めします。
AppleScriptを使うために、基本的なことを知っておく必要があります。今回はAppleScriptのファイ形式に、どのような種類があるかを紹介します。また、それらのファイルの使用方法についても解説します。あちこちからスクリプトを集めて、スクリプトを書く事無く、便利な環境を整えましょう。
アプレット
前回説明したように、アプリケーションとして保存したスクリプトを「アプレット(applet)」と呼びます。アプレットはアプリケーション(application)と、小さいことを表す接尾語レット(-let)を合成した言葉です。
アプレットは実現する機能の多くを、Mac OS(注1)/機能拡張ファイル/AppleScriptで操作するアプリケーション——などに頼っています。そのおかげでスクリプトの開発や修正が簡単に行え、そのうえファイルサイズが小さくて済みます。
また、アプレットにはスクリプトで記述した処理を行うとすぐに終了するタイプと、一度起動するとバックグラウンドで処理を続行するタイプがあります。後者のアプレットは、通常のアプリケーションと同様に[ファイル]-[終了](もしくは[command+Q]キー)を選択すれば終了できます。
ちなみに一般に「アプレット」といえば、Javaアプレットのことを連想する読者が多いのではないでしょうか。AppleScriptと同様にJavaアプレットもアプレット単体では動かず、Javaの動作環境(旧Mac OSの場合は「Macintosh Runtime for Java」)とブラウザなどのアプリケーションが必要です。

道具は便利ですわー
(注1) Mac OS X 10.6まではPower PC向けアプレットの作成・実行ができましたが、Mac OS X 10.7以降ではintel向けのみとなっています。
Mac OS 10.7以降でも、Power PC用アプレットを開くことはできますので、[別名で保存]することで実行可能になります。
ドロップレット
ドラッグ&ドロップしたファイルに対して処理を施すアプレットを、「ドロップレット(droplet)」と呼びます。ファイル形式やクリエータの変換など、複数のファイルに同じ処理を一括して加える場合によく使われます。アプレットとは異なり、実行するたびに対象となるファイルを変更できるので、応用範囲が広い点が特徴です。ドロップレットのAppleScriptには、アイコンに矢印が付きます。
ドロップレットの作り方に付いて詳しくは後の回で解説します。
基本的にはアプレットと同じ作り方で、次のようなスクリプトが含まれている場合、自動的にドロップレットになります。
on open theList
-- ファイル処理スクリプト
end open

どんどん持ってきて下さい
フォルダアクションスクリプト
フォルダにAppleScriptの機能を追加するものを、「フォルダアクションスクリプト(folder action script)」と呼びます(注1)。起動ディスクの"Library:Scripts:Folder Action Scripts:"フォルダ(注2)にサンプルスクリプトが収録されています。
フォルダアクションは、フォルダの開閉や開いているフォルダ内の項目(ファイル/フォルダ)の追加/移動、ウィンドウの移動/サイズ変更——などの動きがあった場合に、自動的にスクリプトを実行します。
Mac OS Xでは、起動ディスクの"Library:Scripts:Folder Actions:"フォルダに用意されているスクリプトを利用してフォルダアクションを設定します。このスクリプトは通常、後述する「Script Menu.menu」から利用します。
フォルダアクションを設定するには、適当なフォルダのコンテクストメニューから[フォルダアクションをつける...]を選び、ファイル選択ダイアログでスクリプトを選択します(注3)。
フォルダアクションを解除するには、コンテクストメニューの[フォルダアクションを削除...]を選んで、サブメニューから該当するフォルダアクションを選びます(注4)。
フォルダアクションは、このようにフォルダごとにスクリプトを埋め込むのではなく、フォルダとフォルダアクション用のスクリプトをリンクさせるだけなので、一つのスクリプトを多数のフォルダに設定でき、汎用性があり管理しやすい点が特徴です。
Mac OS X10.3では「Folder Actions Setup」というフォルダアクションを管理するアプリケーションも追加され、非常に使いやすくなっています。

べろべろばぁー
(注1) Mac OS 8.5以降のシステムで利用可能です。「フォルダアクション」機能拡張が必要です。
Mac OS Xでは、10.2以降で利用可能です。
(注2) 旧Mac OSでは、"システムフォルダ:スクリプト:フォルダアクションスクリプト:"に入っています。
(注3) Mac OS X10.2では、[Attach Script to Folder]を使います。スクリプトを実行すると"Folder Action Scripts"フォルダに含まれるスクリプトが表示されるので、設定したいスクリプトを選択します。そして、最後にフォルダを選択すれば設定終了です。
(注4) Mac OS X10.2では、[Remove Folder Actions]を使います。スクリプトを実行し、解除したいフォルダを選択します。
付加可能アプリケーション
アプリケーションには、AppleScriptを内蔵できる「付加可能(attachable)アプリケーション」があります。さらにこれは「書類にスクリプトを内蔵する」タイプと、「メニューにスクリプトを追加する」タイプの2種類に大きく分けることができます。
「HyperCard」や「ファイルメーカーPro」などは、書類にスクリプトを内蔵するタイプです。書類のなかに配置したポップアップメニューやボタンなどを使って、アプリケーションが備える機能(ファイルの開閉やインターネット接続など)をAppleScriptで実現します。書類にスクリプトを内蔵する方法はアプリケーションごとに異なるので、ここでは詳しく触れません。多くのアプリケーションは、アプリケーションの操作を制御する専用の言語(HyperCardならHyperTalk)をAppleScriptに置き換えています。
一方「Jedit」などは、メニューにスクリプトを追加するタイプです。「Jedit」では、AppleScript専用の項目をメニューバーに用意しています。メニュー項目にスクリプトを追加するには、アプリケーションが指定したフォルダ(「Jedit」では"Macro Menu Items"フォルダ)へコンパイル済みスクリプトを入れておくだけです。
「iCal」を使うと、指定時間にスクリプトを実行することができて便利です。
Mac OS Xには、「Project Builder」と「Interface Builder」という開発環境が付属しますが、これらを使ってAppleScriptのインタフェース開発を行う事もできます。両ソフトを使ったAppleScript開発をする場合、その環境を特に「AppleScript Studio」と呼びます(注1)。
このように、AppleScriptはダブルクリックで起動するアプレットだけではなく、さまざまな用途で使えます。利用する形によってスクリプトの作り方が若干異なりますが、スクリプトの文法は同じです。従って、アプレットとして作ったスクリプトをコピー&ペーストするだけでアプリケーションに内蔵することもできます。
(注1) ほかにも「REALbasic」や「CodeWarrior」「Xcode」をはじめとする開発ソフトでも、AppleScriptを利用したアプリケーションを開発できます。
旧Mac OSの場合は、ボタンや入力フィールドなどのユーザーインタフェースを作成できるソフト「FaceSpan」もあります。
おまけスクリプトを使ってまずは予行演習
スクリプトがアプレットやフォルダアクションなどのさまざまな形で利用されていることを理解したところで、早速スクリプトを試してみましょう。まずは、Mac OSに付属するスクリプトを使います。
Mac OS Xでは、起動ディスクの"Library:Scripts:"にサンプルスクリプトが用意されています(注1)。これは、後述する「Script Menu」を使えば、簡単に利用できます。残念ながら、日本語環境では動作しないものも多いのですが、多少の改造で動くようになります。ローカライズにチャレンジしてみるのも、いいかもしれません。
ホームの"Library:Speech:Speakable Items:"フォルダに、「English Speech Recognition」機能用のファイルがあり、ここにAppleScriptのスクリプトを置く事もできます(注2)。しかし、残念ながら、Mac OS X10.2には"Open Sherlock"だけしかありません。今後の充実に期待したいところです。
また、サードパーティー製も含めて「AppleScript対応」のアプリケーションには、サンプルスクリプトが付属する事も多くあります。「この作業は面倒だな」と思っていたアプリケーション上の処理が、付属のスクリプトで自動化できる場合がありますので、一度試してみましょう。
アプリケーション自体をコンテクストメニューの[パッケージの内容を表示]で調べてみると、AppleScriptのスクリプトが含まれている事もあります。アプリケーションを使い込みたい場合は、一度調べてみるのも良いでしょう。
(注1) 旧Mac OSの、 "AppleScript"フォルダにある"自動処理"や"自動処理追加分"などのフォルダには、米アップル社がサンプルとして作成したスクリプトが多数収録されています。「自動処理」フォルダは、アップルメニューにエイリアスが登録されています。
(注2) 旧Mac OSのインストールCD-ROM内の"Mac OS 特別付録"フォルダにある「English Speech Recognition」と「English Text-to-Speech」をインストールすると、英語での音声認識とテキスト読み上げ機能がMac OSで使えるようになります。同時にこれらの機能に対応したスクリプトが"Speakable Items"フォルダに組み込まれます。
「Speakable Items」には多くのスクリプトが用意されており、ひと通り機能を確かめていくだけでも有意義です。耳のアイコンを持つスクリプトは特殊な形式なので、「スクリプト編集プログラム」で開いてスクリプトの内容を参照することはできません。
OSAXでAppleScriptをパワーアップしよう
"System:Library:ScriptingAdditions:"フォルダ(注1)に収録されているファイルは、AppleScript専用の機能拡張書類、もしくはプラグインのような役割を果たします。これらのファイルは「OSAX」と呼ばれ、Mac OSにはあらかじめこのOSAXが組み込まれています。システムが標準で用意するこれらのOSAXは、Mac OSのさまざまな機能で利用されていますので、移動/削除を行わないほうが賢明です。
新しくOSAXを追加するにはホームフォルダの"Library:ScriptingAdditions:"にOSAXファイルを置きます。フォルダが無い場合は、利用者各自でフォルダを作って用意します。
ちなみにOSAXとは、「Open Scripting Architecture eXtension」の略で、オーサックスもしくはオサックスと読みます。「Sherlock」の「インターネット検索」やインターネットのサーチエンジンでOSAXを検索する場合は、複数形のOSAXEN(オザクセン、オサクソン)で探したほうがヒット率が高いでしょう。「Scripting Addition」と表記される事も一般的です。日本のページでは主にOSAXと表記されます。
わざわざ検索をしなくても、Mac Scripter.netのOSAXコーナーに主なOSAXがリンクされています。とりあえずは、このサイトを調べてみるのがいいでしょう。
OSAXを追加していくことで、AppleScriptをどんどん拡張できます。機能拡張ファイルとは異なり、システム機能とのコンフリクトの問題もなく、再起動しなくても利用可能になりますので、気軽にさまざまなOSAXを試してみましょう。ただし、あまり沢山入れ過ぎるとOSAX同士やアプリケーションの間で用語が衝突してしまうことがありますから、使わないものを入れておかないようにしましょう。

機能追加しまーす
(注1) 旧Mac OSでは"システムフォルダ:スクリプティング機能追加:"に入っています。
Mac OS 8.5以前のシステムでは、OSAXが"システムフォルダ:機能拡張:スクリプティング機能追加"フォルダに格納されています。これらのシステムをMac OS 8.5以上で上書きインストールした場合は、「システムフォルダ」の第1階層と「機能拡張」フォルダにそれぞれ「スクリプティング機能追加」フォルダが組み込まれた状態になります。両フォルダのOSAXともAppleScriptから使用できますが、誤作動を防ぐために「機能拡張」フォルダにあるものはフォルダごと削除しましょう。
AppleScriptの使い勝手を向上させるTips&ユーティリティー
多くのアプレットをそろえると、整理する作業が面倒です。よく使うアプレットはフォルダにまとめて、フォルダごとDockに登録して即座に呼び出せる状態にしておきましょう(注1)。
アプレットはアプリケーションの一種ですから、各種のラウンチャーを利用して整理することもできます。代表的なラウンチャーのDragThing等は、それ自体がAppleScript対応ですから、AppleScriptの整理にはもってこいです。
Script Menu
OSに付属する「Script Menu」を組み込むと、スクリプトをメニューから呼び出すことができるようになり、非常に便利です(注2)。
「Script Menu」を組み込むには、"Applications:AppleScript:Script Menu.menu"
をダブルクリックします。削除は、[command]+ドラッグでメニューの外に出す事で可能です。
「Script Menu」のスクリプトは"Library:Scripts:"にあるものが表示されます。新たにスクリプトを追加するのは、ホームフォルダの"Library:Scripts:"に「アプレット」か「コンパイル済みスクリプト」ファイルを置くだけの簡単なものです。
また、Finderのツールバーにスクリプトをドロップすると、スクリプトを登録することができます。残念ながら、あまりつかい勝手は良くありません。
ポップアップウィンドウは便利(旧Mac OS)
(注1) 旧Mac OSでは、アップルメニューを使います。
(注2) Mac OS X10.2より前は、"Applications:AppleScript:"フォルダにある「Script Runner」という、スクリプト専用のラウンチャーといった趣のアプリケーションが付属していました。10.2以降はScriptMenuに置き換えられています。
旧Mac OSでは、「OSA Menu」を組み込めば、[鉛筆]メニューの左側にAppleScript専用のメニューを用意し、プルダウンメニューからスクリプトを実行できます。OSA Menuは、レオナード・ローセントール氏のWebサイト(http://www.lazerware.com/)から入手可能です。
スクリプト読解の手がかりはコメント文と「記録」ボタン
スクリプトは「実行専用」形式で保存されていない限り、「Script Editor」で開いて内容を確認できます。AppleScriptは中学生レベルの英語で書かれているため、スクリプト全体は理解できなくても、1行1行の内容はおぼろげにわかるでしょう。
またスクリプトを理解するヒントとなる部分がコメント文で、「(*」と「*)」で囲まれた部分や「--(マイナス二つ)」から行末までの部分に記述されています。自分が作りたいと考えているものと同様の処理を行うスクリプトのコメント文は、必ず目を通しておきましょう。コメント文は、スクリプトの内容を説明する部分なので、スクリプトの実行にはまったく影響しません。
(* この部分はコメントです。
改行があってもコメントは続きます。
コメントはプログラムとしては無視されます。*)
-- これもコメントです。改行するとコメントは終わりです。
前回説明した「記録可能アプリケーション」であれば、「スクリプト編集プログラム」の「記録」ボタンで処理内容を自動生成して、どのようなスクリプトが使えるのかをチェックしましょう。旧Mac OSのFinderは、ほとんどの操作をAppleScriptで記録できるので、スクリプトに関する理解を深めるための絶好の教材です。完成したスクリプトの数値部分を変更したり、任意の1行を削除するなどして、スクリプトの動作を確かめてください。
【今回のまとめ】
AppleScriptには次の形がある、
- 小さなアプリケーションである「アプレット」
- ファイルを一括処理できる「ドロップレット」
- フォルダと連動させる「フォルダアクション」
サンプルスクリプトの入手は、
- AppleScriptに対応したアプリケーション
- インターネット
AppleScriptを強化するには、
- OSAXを組み込む
- 「Script Menu」を使って専用メニューを用意
2002-10-05
2004-03-09
2012-01-24