AppleScript

(はじめに)

AppleScriptを御存じですか?
何をいまさらって感じですか?それとも何だそれはって感じですか?
残念ながら、私はまだ使っていません(後者に近いかもしれませんね)が、興味はあります。
以前LC630(漢字Talk7.5.5)で、勉強しかけたのですがあのおかしな日本語に馴染めず、 忙しかった事もあってそのまま止めてしまいました。

しかし、今はiMac(MacOS8.5.1)も持っているのですが、7.5.5の頃より格段に良くなったらしいですね。
もっと時が経てば、当たり前のように存在しているかもしれません。 (WindowsですらWSHというAppleScriptのようなものがあるのですから。でも、まだまだ日陰もののようですが)
とすれば、マックユーザーとして、これは覚えなければなりませんね。

というわけで、勉強する事にしました。あなたも一緒に勉強してみませんか?
私も本当に今から始めるので、つたない文章は御容赦下さい。(だったら覚えてから公開せえってか!)
今やらなきゃおもしろくないんですよ。やりたい時にやらなきゃ。それに、ホームページで公開した方が気合いが入りますしね。
ただ、これでもプログラマの端くれですからいくつかの他の言語の多少の経験もありますし、すこしはましな事もかけるでしょう。
よろしく!

※注意!
  ここでは、MacOS8.5.1(つまりわたしのiMac)で動いているAppleScriptについて書いていきます。
  もしかするとあなたのパソコンでは同じような動きをしないかもしれません。
  その場合は、ごめんなさい。

 


(まずは何から?)

では、早速はじめましょう! …….. ?? 
….といっても、何から始めればよいのやら。 なんせ、初めてなもんで。

とりあえず、付属文書でも読んでみましょう。
AppleScriptのプログラム(以降ではスクリプトとしますね)を作れるMacOS付属のアプリケーションに、 「スクリプト編集プログラム」と言うのがあります。
付属なんで、もちろん新たな出費は必要無いし、気軽に使えます。
市販の便利なツールもいくつかある様ですが、よく知りませんのでここでは触れません。
まあ、ある程度慣れてからでも遅くはないでしょう。

files MacOSをインストールしたボリュームの「Appleエクストラ」フォルダの「AppleScript」というフォルダがあると思います。まず開いてみましょう。 中には、スクリプト編集プログラムの他に以下の書類があります。

  • AppleScriptについて
  • AppleScriptガイド
  • 自動処理フォルダ、自動処理追加分フォルダ

上記二つは説明書、そして最後のフォルダにはスクリプトが入ってるようです。

 

では、初めはとりあえずビール...じゃなくて、readme(この場合は「AppleScriptについて」)を読むのが普通ですね。
読んでみましょう・・・なんか新しい事をやる時ってなんとなくわくわくしますね・・・ ・・・ふむふむ・・・んっ・・・・なっ!なにぃ~~・・・

・・・ すんません、ちょっとふざけてしまいました。
なんと、「ほとんどのユーザーはこの存在に気付いていない」ってな事が書いてあるじゃないですか。
だったら、みんなが気付くようにしといてくれっちゅうねん!ほんまになんちゅうこっちゃ!
この書類には、AppleScriptってこんな感じのものですよ~っという事が書いてあります。
みなさんも一度読んでみて下さい。

では、気を取り直して続けましょう。
もう一つのAppleScriptガイドは、ヘルプセンターからAppleScriptガイドをクリックして見る事ができます。
こちらは、そのうち見ていく事になると思いますので、自分でちゃんと開けるか確認してみて下さい。
残りのフォルダには、スクリプトファイルが入っているので、少し分ってきたらサンプル代わりにでも見てみましょう。

まず、始めるにあたってどんな事が知りたいのか整理してみましょう。

  1. なに(どんな事)ができるんだろう。
  2. どうやって作るんだろう。
  3. 何を覚えたらいいんだろう。
  4. どうやって勉強したらよいのだろう。

とりあえずは、こんなところでしょうか。 では、今わかることを少し紹介してみます。

(なにができるんだろう)

先程見た書類によると、すでにたくさんのスクリプトがインストールされてるようです。
そこで、試しにファイルタイプ'osas'でファイルを検索して見ましょう。(何故'osas'かというと、スクリプト編集プログラムで スクリプトを新規作成し、コンパイル済みのスクリプトとして保存し、ファイルタイプを見たらこれだったんですね)
ちなみに私の環境では、121個のファイルが見つかりました。

これで、密かにいろいろな目的でスクリプトが使われていたんだなと言う事はわかりました。
詳しい事はまだ良く分りませんが、AppleScript対応のアプリケーション(何でもという訳ではない様です)やFinderに対して、AppleScriptという 言葉を使って話しかけてあげる事によって、そのアプリケーションを動かす事ができる様です。
ただ、アプリケーションには学習能力がないのであらかじめ知っている単語を使って話してあげないと思うように 動いてくれません。また、言葉を知らない(AppleScript対応ではない)アプリケーションにいくら話しかけたところ で、もちろん理解してくれません。(動いてくれるようにするソフトがある様ですが、あまり知らないのでここでは 触れません。)

(どうやって作るんだろう)

いくつか方法があると思いますが、ここでは一番お手軽な「スクリプト編集プログラム」でスクリプトを作る事にします。
このアプリケーションには、「記録」という便利な機能があります。
どんな機能かと言うと、「記録」ボタンを押してから「停止」ボタンを押すまでの間のユーザー操作を、スクリプトにしてくれると言う機能です。
例えば、「ゴミ箱を開く」という操作を記録してみると、

tell application "Finder"
  activate
  select trash
  open selection
end tell

というスクリプトが生成されました。これをコンパイル済みスクリプトとして保存すれば、「ゴミ箱を開く」という スクリプトが実行できるようになると言うわけです。(まあ、こんなのあってもしょうがないですが)

要は、こんなに簡単にできますよということです。
「記録で必要な操作を記録し、これを都合の言い様に編集する」という形で作るのが一番簡単かと思いますので、 暫くは、これでいきましょう。

(何を覚えたらいいんだろう)

まずは、「スクリプト編集プログラム」の使い方ですね。
そして、AppleScriptの構文。最後に、操作したいアプリケーションについてといったところでしょうか。
本当は、これらを順番に説明していくのが普通なんでしょうが、それだと退屈で寝てしまいそうです。 そこで、いきなり作っていく事にします。そのうえで、必要な事を順に覚えていくと言う事にしましょう。
すべての事柄について熟知しているのが理想なのですが、それまでに嫌になったら意味ないですからね。
と言う事で、次回はいきなり作ってみましょう。
まあ、今回は一つ目の知識としてコメントの書き方だけ覚えましょう。
コメントとは、スクリプトの中で実行されない文の事です。
実際、実行されるスクリプトだけを記述していっても問題ないのですが、それだけでは後から見直した時に 何をやっているのかわからない事がよくあります。
そんな事にならないように、コメントを書いておくようにしましょう。書き方は2つあります。

  • 複数行のコメントは、(* と *) の間に書く → この間が全てコメント
  • 1行のコメントは、–以降に書く     → –から行末迄がコメント

例)

(* ここはコメント
  例えば、機能:ゴミ箱を開く
 という風に書いておく
*)
tell application "Finder"
  activate
  select trash — これもコメント「ゴミ箱を選択」とか書くと良い
  open selection
end tell

 

(どうやって勉強したらよいのだろう)

あまりお金をかけたくないので、次のようにしたいと思います。

  1. 記録して、その結果を調べる。
  2. わからないことは、AppleScriptヘルプと用語辞書で調べる。
  3. まだわからない事は他のスクリプトを調べる。
  4. 参考書で調べる。(Appleのホームページにもいくつかありますので、一度見てみましょう)
  5. 調べてもわからなけりゃ聞きましょう。
    まわりに詳しい人がいない場合はメーリングリストに入るという手もあります。
    但し、無料相談所ではないですからその点注意が必要です。
    実は私はASUGというメーリングリストに最近入りました。エキスパート揃いなので見てるだけでも勉強になります。

まあ、どんどん作ってみるのが結局は一番です。何度でも壁にぶち当たればいいんです。
苦労した事程身につくし、結局この壁を乗り越えるのが楽しんですから!

 

さて、今回はさわりだけですがいかがでしたでしょうか?
次回より早速作っていきたいと思いますので、お互いに頑張りましょう。というより、楽しみましょうね!

1999.5.17

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください