GO BACK

初心者のためのAppleScript教室


「オブジェクト作成とドラッグ&ドロップ」


■エイリアスを作るのは「作る」命令!


Finderの操作で「便利だけど面倒くさい」というのがエイリアス関係です。エイリアスというのは、どこにファイルがあっても関係なしに開いてくれるのでとても便利なのですが、いちいち作ってデスクトップに配置して、というのは結構面倒ですね。こういう時こそ、アップスクリプトの出番です。AppleScriptでは、もちろんエイリアスを作ることができます。


make alias at《作成する場所》to《元のファイル》


 これが作る命令の基本です。これで、指定したファイルのエイリアスを、指定の場所に作成してくれるのです。−−では、簡単な応用例を一つあげておきます。


tell application "Finder"
	make alias at desktop to control panel "モニタ" of control panels folder
end tell

これはどういうことか、わかりますか? これを実行すると、「モニタ」コントロールパネルのエイリアスがデスクトップにできるのです。

 この「make」命令は、実をいえばエイリアス以外のことにも使えます。例えば、フォルダの作成なんかにも有効なのです。


tell application "Finder"
	make folder at desktop
end tell

 これは、フォルダを自動作成するスクリプトの例です。これはエイリアスよりもっと簡単。エイリアスと違ってフォルダは「to 〜」の部分がいらないので、わかりやすいでしょう?

 「make」命令は、このようにオブジェクトを作るためのもっとも基本となる命令なのです。


■ドラッグ&ドロップ用の「〜」


サンプルのスクリプトのように、あらかじめエイリアスを作るファイルを指定しておかないといけないんじゃ、あまり便利ではないですね。「このエイリアスを作りたい!」と思ったら、それをパパッと作れるようにならないと、実用にはなりません。

 こういうときに多用されるのが「ドラッグ&ドロップ」というものです。デスクトップでアイコンを別のアイコンに重ねると、ドロップしたアプリケーションでファイルを開いたりしますね? あんな具合に、作りたいエイリアスのアイコンを重ねると自動的にエイリアスができるようになれば、とても便利でしょう。

 こういう「ドラッグ&ドロップ」を行なうのに使うのが「open」ハンドラというものです。これは、こんな形をしています。


on open《変数》
	…… 実行する命令 ……
end open

 この「変数」というところには、ドラッグ&ドロップしたファイルのリストが自動的に収められるようになっています。


■ハンドラについて


さて、いきなり「ハンドラ」なんて言葉が出てきたので、ちょっと戸惑った人もいるかも知れませんね。−−AppleScriptのスクリプトというのは、2つの性質をもってるのです。それは「実行すると最初から順番に命令を実行していくというバッチ処理的な性質」と、「ユーザーの操作に応じて必要なルーチンが呼び出されるという、イベント駆動的な性質」の2つです。

 前者は、今まで作ったスクリプトのことですね。単に命令を書いて「実行!」とすれば、そのまま全部実行していました。後者はちょっとわかりにくいでしょうが、HyperTalkなどで使われているやり方のことです。ユーザーがマウスを押したりすると、それに対応したルーチンが自動的に動き出すわけですね。こうしたルーチンのことを「ハンドラ」って呼んでるのです。

 つまり「open」は、ドラッグ&ドロップでファイルを開いたときに自動的に呼び出されるハンドラというわけです。AppleScriptでは、このように、実行させると自動的に動作するスクリプトと、各種のイベントに対応して呼び出されるハンドラとが混在しています。そして、ハンドラは、通常スクリプトを実行した際には全く働きません。あくまでそのハンドラに対応した操作が行なわれて、初めて動くのです。


■Dropletを作成する!


このハンドラを使ってエイリアスを自動作成するスクリプトを作ってみましょう。

on open drop_items
	tell application "Finder"
		make alias at desktop to drop_items
	end tell
end open

これは、スクリプトエディタで「実行」ボタンを押しても全く動きません。さっきいったように、これはドラッグ&ドロップしたときに呼び出されるハンドラですから、普通に「実行」とやっても動かないのです。

 では「保存...」メニューを選んで保存用ダイアログを出し、下に見える「種類」ポップアップメニューから「アプリケーション」を選んでください(MacOS 9場合は「Classicアプリケーション」「MacOS Xアプリケーション」のいずれか)。すると更に下に2つのチェックボタンが現われるので、「初期画面を表示しない」というのだけONにして保存します。−−これで、ドラッグ&ドロップ形式のアプリケーションが作成されます。

 よく見ると、スクリプト編集プログラムで作った普通のアプリケーションのアイコンとはちょっと形が違っているのがわかるはずです。こうしたドラッグ&ドロップ形式のアプリケーションのことを「Droplet(ドロップレット)」と呼んでいます(普通のアプリケーションは、「Applet(アプレット)」といいます)。

 作成したDropletに、ファイルやアプリケーションのアイコンをドラッグ&ドロップしてみてください。それらのエイリアスが自動的にデスクトップへと作成されるはずです。驚くのは、複数のアイコンをまとめてドラッグすると、ちゃんとそれら全てのエイリアスを作ってくれることです。なんだか不思議な感じがしますね。そうした処理なんて全然してないのに、複数のエイリアスが自動的に作れてしまうなんて…。

GO NEXT


GO HOME