AppleScriptってなに?
AppleScriptを始めよう!
いま、あなたは分かれ道の手前に立っています。1つは「Macを使う道」で、もう1つは「Macに使われる道」です。
Macを使いこなしていると思っているユーザーでも、実はFinderや市販のアプリケーションなどを使って(使われて)作業していることが多いのです。しかしAppleScriptを学べば、自分で作ったスクリプトでMacやアプリケーションを自在に操れます。単純作業の繰り返しなどは、ユーザーの手を煩わさずMacに自動で処理させることできるのです。そしてなによりも、自分で作った物(スクリプト)がMac上で動くという喜びを得られるのが、AppleScriptです。最初は趣味の1つとして、気楽に始めてみてはいかがでしょうか。

こっちですよー
AppleScriptってなに?
AppleScriptは、マウスやキーボードを使わずに、Macを操作する方法です。すなわち「AppleScriptはメイドのようなもの」、と言ってもいいでしょう。しかも、人間のように疲れたり眠ったりしませんし、お金もかかりません。命令違反もせずに、本当のメイドよりずっと速く正確に仕事をこなしますから、実に優秀です。
AppleScriptは、スクリプトと呼ばれる文章を記述してMacにさまざまな操作をさせます。スクリプトとは直訳すると台本という意味で、台本=スクリプトはプログラムの一種です。プログラムというと難解なイメージがありますが、AppleScriptは数あるプログラミング言語の中では最も簡単なものの1つです。AppleScriptは中学程度の英語力で理解できる簡単な英語で記述しますので、プログラムっぽい無機質な印象があまりないのが特徴です。
ただし、いくら簡単と言われるAppleScriptでも、約束事に従わないとうまく動きません。しかし、スクリプトが動かなかったり、本書で説明する約束事が理解できなかったとしても、最初は当然のことですから、あまり気にする必要はありません。今は分からなくても、本書を読み進めていき知識や経験を積めば、いずれ理解できるでしょう。

AppleScriptを使わないユーザー

AppleScriptを使うユーザー
AppleScriptの特徴
AppleScriptは、他のプログラム言語では何千何万行ものプログラムコードが必要な処理を、数行で行える点が特徴です。これは、AppleScriptがアプリケーションに操作を指示するだけで、実際のほとんどの処理は操作される側のアプリケーションが行うからです。ただしAppleScriptを使ってアプリケーションを処理する場合、操作される側のアプリケーションがAppleScriptに対応している必要があります。スクリプトで操作できるアプリケーションは、スクリプト対応(Scriptable)アプリケーションと言います。
AppleScriptは、漢字Talk 7.5以降の、Mac OS Xを含めた、すべてのMac OSに付属するため、別個に購入する必要がありません。逆にいうと、Mac OSにはAppleScriptの価格が含まれているわけです。プログラミング言語の開発環境をすでに持っているにもかかわらず、使わずに放っておくのはあまりにもったいない。ぜひとも有効に活用したいところです。特にMac OS 8.5以降に付属するAppleScriptでは、さまざまな機能を追加した上で、PowerPCに最適化されたため処理速度が向上しました。以前は速度的に実用にならないといわれていたAppleScriptも実用に十分な速度となっています。

はい、この通りやるのですね
バージョンについて
AppleScriptのバージョンは、「スクリプトエディタ」の[スクリプトエディタについて]を見る事で確認できます(注1)。
AppleScriptにはさまざまなバージョンがありますが、本書ではMac OS X10.2に付属するAppleScript 1.9を使って解説します。一応、ほかのMac OSのバージョンとできるだけ互換性があるスクリプトを作成しますが、バージョンによりスクリプトの約束事が異なる場合は、欄外に解説を加えます。
10.2より前のMac OS Xでは、AppleScriptの不具合が多いため、10.2以降のMac OS Xを使用することを推奨します。また、旧Mac OSは9.2.2(AppleScript J-1.7)に2バイト文字(日本語など)を含むパスの扱いに不具合が見られるため、8.5〜9.2のバージョンのOSを利用することを推奨します。
本書では、Mac OS Xになる前のMac OSを、「旧Mac OS」と表記します。Mac OS XでのClassic環境は、「Classic環境」と表記して旧Mac OSと区別します。
AppleScriptの基本となる部分は、全てのバージョンにおいて共通です。その点は安心して下さい。
(注1) Mac OS X10.3より前に付属していたScript Editor1.xには、[AppleScriptについて]というメニューがあり、そちらを選択します。
参考資料はどこに
まずは、メニューの[ヘルプ]の項目を選択した後に[ライブラリ]メニューから[AppleScript ヘルプ]を選べば、AppleScriptに関する情報を引き出すことができます(注1)。ちなみに、ヘルプの記述内容はバージョンによって大きく差があり、あまり役に立たない場合と、ものすごく役に立つ場合があります。
Mac OS XにDeveloper Toolsをインストールしている場合は、開発者用のドキュメントもインストールされます。ただし、今のところドキュメントの多くは英語しか用意してありません(注2)。
また、AppleScriptファンがインターネット上で公開している情報も大変役に立ちます。AppleScriptに関するWebサイトは、Links / Scripterを参考にして下さい。最初は[入門]のマークがついているサイトをお勧めします。
書籍については、Links / Booksを参考にして下さい。
Appleのサイトで公開されている情報に付いては、Links / Appleを参考にして下さい。
(注1) Mac OS X10.2では[ヘルプセンター]ボタンを押し、Mac OS X10.2より前では、左下の[?]ボタンを押し、一覧から「AppleScript ヘルプ」を選択します。旧Mac OSでは、Finderのメニューから[ヘルプ]-[ヘルプセンター]を選択します。
(注2) Mac OS 9ではOSをインストールしたボリュームの"Applications (Mac OS 9):Apple エクストラ:AppleScript:AppleScript について"に詳しい解説があります。更に前のバージョンでも、ほぼ同じ階層に"AppleScript について"に類する資料がありますので、探してみましょう。
いよいよ、初スクリプト
では、スクリプトを記述してみましょう。"Applications:AppleScript:スクリプトエディタ"(注1)を起動します。
スクリプトエディタ(
スクリプト編集プログラム)
そして、スクリプトを書く前に「スクリプトエディタ」の[編集]-[AppleScriptフォーマット...]を選び書式を設定します(注2)、使用するフォントは、「演算子および句読点(+&、)」は英字フォント(本書ではChicagoフォント)に、その他は日本語フォント(本書ではOsakaフォント)に設定しましょう(注3)。
ここまでの設定を終えたら、「スクリプトエディタ」のウィンドウに戻り、下部にあるスクリプト入力欄に、キーボードから次のように入力します。
[実行]ボタンをクリックして警告音が鳴れば成功です。次に[ファイル]-[新規スクリプト]を選択して新しいウィンドウに、次のように、入力して実行してみましょう。
display dialog "Welcome to AppleScript"
画面中央にダイアログが現れ「Welcom to AppleScript」と表示されるはずです。[実行]ボタンを押してエラーが発生した場合は、慌てない騒がない。一度エラーダイアログを閉じて、さきほど入力したスクリプト(文字列)にスペルミスがないかどうか確認して、再度実行しましょう。各単語の間に全角の空白を使うとエラーになります。空白は目に見えないだけにAppleScriptに慣れたユーザーでもなかなか気付かないことがありますから注意してください。またアルファベットも全て半角で入力します。
では、さきほどのスクリプトを、次のように変更してみましょう。
display dialog (current date) as string
[実行]ボタンを押すと、デスクトップの中央に現在の時刻を表示するダイアログが現れます。このスクリプトも簡単な英語です。現在時刻を取り出す命令の「current date」に「as string」と付けて、「現在時刻を文字列にする」という意味です。全体では「ダイアログを呼び出して、そこに文字列として現在時刻を表示」となります。今後頻繁に使いますから、ダイアログに何か表示させたいなら、「display dialog〜」と覚えておきましょう。

変なコトさせないで下さいよぉ
(注1) 旧Mac OSでは、"Apple エクストラ:AppleScript:スクリプト編集プログラム"。本書では、特に指定がない限り「Script Editor」と書いた場合「スクリプト編集プログラム」も同時に指します。Mac OS X 10.2からは、アプリケーションの日本語表記に対応していますが、本書では基本的にアプリケーション名は、スクリプトのtellで指定する場合の名前(アルファベット)で表記します。
(注2)「スクリプト編集プログラム」では、[編集]-[書式...]です。Mac OS 8.1以前のシステムを使用している場合は、「スクリプティング表現形式」で「AppleScript 英語」を選択してください。Mac OS 8.1以前のAppleScriptでは、「スクリプティング表現形式」で「AppleScript日本語」を選べますが、本書で紹介するスクリプトを正しく実行できませんので、選択しないように注意してください。Mac OS 8.5以降のシステムでは、「スクリプティング表現形式」は英語表現形式だけです。
(注3)「Script Editor1.x」では、英字フォントを選択した部分は文字化けがおきますが、動作に支障はありません。
アプリケーションも使ってみる
今度は、AppleScriptを使ってインターネットへ接続します。これも非常に簡単です。「新規スクリプト」の「スクリプトエディタ」の入力欄に、次のように入力するだけ。
open location "http://www.ascii.co.jp/"
[実行]ボタンを押すと、「システム環境設定」で設定しているブラウザを使って、アスキーのWebサイトに接続されます(注1)。ただし、あらかじめ「システム環境設定」(注2)で、インターネットへ接続できる環境を整えておかなければ、この命令は機能しません。
今度は、AppleScriptでFinderを操作します。[ファイル]-[新規スクリプト]を選択して、次のようにと入力して[実行]ボタンを押してみましょう。
tell application "Finder" to open startup disk
起動ディスクが開きます。「tell application Finder」は、「Finderにお伺いを立てる」という命令です。そして「to」以下にお願いする処理内容を書きます。では、今度は次のようにスクリプトを書き換えてみましょう。
tell application "Apple System Profiler" to run
「Apple System Profiler」(注3)が起動します。このように「tell application」は、アプリケーションを呼び出して、処理を実行させる際に必要な命令です。ちなみに「Apple System Profiler」をAppleScriptを使って終了させるには、次のように書けばOKです。
tell application "Apple System Profiler" to quit
(注1) open location命令はMac OS 8以降で使用できます。
(注2) 旧Mac OSでは「インターネット」「リモートアクセス」「モデム」などのコントロールパネル。
(注3) 旧Mac OSでは「Apple システム・プロフィール」。
操作を記録してみよう
AppleScriptは、「スクリプトエディタ」にスクリプトを入力するだけでなく、ユーザーが行った操作を記録して、何度も再生できます。操作を記録できるアプリケーションを「記録可能(recordable)アプリケーション」といいます。Mac OS X10.3では「Finder」が記録機能に対応しています(注1)。
では、操作をスクリプトに記録してみましょう。「スクリプトエディタ」の[記録]ボタンを押してから、適当な記録可能アプリケーションのウィンドウをデスクトップのあちこち動かして、最後にフォルダを閉じてみましょう。ここで[停止]ボタンを押し、最後に[実行]ボタンを押します。[実行]ボタンを押してもなにも起こらなかった場合は、[構文確認]ボタンを押してから、再度実行すれば動作する場合があります。
繰り返しになりますが、記録可能でないアプリケーションは多くあります。また、操作を記録する直前の状態と記録した内容を再生する直前の状態が異なるとスクリプトが動かないこともあります。さらに、操作のすべてが記録される訳でもありませんし、記録したスクリプトが間違っている事さえあります。
このように問題の多い記録機能ですが、普段の操作の内容がスクリプトとして記録できるので、AppleScriptの約束事を簡単に学ぶことができます。先ほど紹介した記録可能アプリケーションの操作を記録して、まずはスクリプトに慣れましょう。

ふむふむ、そうやるのですね
(注8) Mac OS X10.2は、「Finder」が記録に対応していないので「QuickTime Player」を使って下さい。10.2より前は、記録機能自体に安定性の問題があります。旧Mac OSやMac OS X10.3以降は、問題無く「Finder」で記録可能です。
スクリプトを保存しよう
先ほど操作を記録したスクリプトを「スクリプトエディタ」のメニューから[ファイル]-[保存...]を選んで、ハードディスクに記録しましょう。保存ダイアログでは、1)テキスト、2)コンパイル済みスクリプト、3)アプリケーション(注1)——の3種類(注2)の形式を選択できます。ひな形オプション...は、保存したファイルをひな形にするかどうかを選択できます。「スクリプトエディタ」の「このスクリプトについて」欄は、保存したスクリプトの起動画面のメッセージになります。
- 1)
[テキスト]
- 他のエディタで開けるテキストファイルとして記録します。保存時に構文の確認や翻訳(コンパイル)を行わないので、スクリプトが動作しない場合でも保存できます。2)と3)は、スクリプトの構文確認でエラーが出る場合は保存できません。
- 2)
[コンパイル済みスクリプト]
- スクリプトを後で編集できる形式で保存します。このファイルは「スクリプトエディタ」で開けます。アプリケーションにAppleScriptを組み込む場合によく使われる形式です。
- 3)
[アプリケーション]
ダブルクリックなどで起動して、スクリプトを実行するファイルを作成します。
保存時に[実行後、自動的に終了しない]と[初期画面を表示しない][Classic環境を必要とする]という3つ(注3)のチェックボックスが表示されます。
- [実行後、自動的に終了しない]
- スクリプトを実行したあとアプリケーションを終了させないという設定です。通常はチェックする必要はありませんが、チェックした場合は、メニューの[ファイル]-[終了]でスクリプトを終了できます。
- [初期画面を表示しない]
- チェックすると、起動メッセージを表示せずにスクリプトを実行できます。
- [Classic環境を必要とする]
- チェックすると、Classic環境で起動するアプリケーションとして保存されます。
アプリケーションとして保存したスクリプトを、アプレット(Applet)と呼びます。アプレットは、通常のアプリケーションと同様に起動できます。
ほかにも[ファイル]-[実行専用で保存...]で保存できますが、この形式ではあとからスクリプトを変更できなくなるので、本書では使いません(注4)。

沢山ためましょ
(注1) 「スクリプトエディタ」には、アプリケーションが[classicアプリケーション]、[Mac OS X アプリケーション]に別れているバージョンもありますが、[Mac OS X アプリケーション]は無くなりました。そのようなバージョンを使っている場合、本書では「アプレットとして保存する」とは「classicアプリケーションとして保存する」ことを指します。
(注2) Mac OS 9.0で現れる「スクリプト編集プログラム書類」という項目は「コンパイル済みスクリプト」と同じです。それ以前では現れませんしMac OS Xでも現れません。実に謎です。
Mac OS X 10.3(ScriptEditor 2.0)ではバンドル形式が選択できますが、特に指定しない限りバンドルでは保存しません。
(注3)「classic環境を必要とする」オプションは、Mac OS X 10.2で追加されたオプションです。
(注4)Mac OS X 10.2で[実行専用で保存]したアプレットは「実行できない」という、もの凄いバグがあります。
【今回のまとめ】
AppleScriptは、
- コンピューターに操られないための道
- キーボードやマウスと同様にMacを操作する方法の一つ
- 中学程度の英語力で内容を理解できる
AppleScriptに関連する情報は、
- OSに付属する資料を読む
- インターネットで最新のものを入手できる
スクリプトは、
- 「スクリプトエディタ」で作成する
- 「スクリプトエディタ」の[記録]ボタンを使えば自動的に作成できる
- 「アプリケーション」形式で保存すればダブルクリックで起動する
2002-10-03
2002-10-06
2002-10-21
2004-03-09
2004-04-14
2008-05-12