use AppleScript [version 文字列1]
use [変数名:]application 様々な値¬
	[version 文字列1] [importing 真偽値]
use [変数名:]script 文字列2¬
	[version 文字列1] [importing 真偽値]
use framework 文字列3
use scripting additions

引数(Parameters)

文字列1必要バージョン
変数名参照を保管するproperty
様々な値アプリケーションの指定(tell準拠)
文字列2ライブラリ名(拡張子を除くファイル名)
真偽値用語を読み込むか(デフォルト: true)
文字列3フレームワーク名
scripting additionsscripting additionsという定数

解説(Note)

 スクリプトの冒頭で宣言し、そのスクリプトで利用する拡張要素を指定する。
 parenttellusing terms fromさらにload script命令の機能がないまぜになったような機能。

参考 : AppleScript Language Guide: Control Statements Reference#use

use AppleScript

 指定したバージョンに満たない環境で実行されるとエラーが発生する。
 バージョンを省略した場合、useが導入されたversion "2.3"とみなす。
 それより前のバージョンだとuse文が存在しないので当然エラーとなり、バージョンチェックになる。
 要するに製作したAppleScriptのバージョンを書いておくと、それより前の環境で停止するスクリプトになる。

use applicetion

 指定したアプリケーションの用語がバックグラウンドになる。
 現在のアプリケーション(current application)に用語がない場合に、用語が検索・実行されるアプリケーションを指定。
 useを複数使い、複数のアプリケーションを指定できるが、どれがどのアプリケーションの用語かよくわからなくなるし、用語は衝突するし、あまりお勧めできない。

 tellの代わりに使えるのではあるが、スクリプトエディタ上ではuseに書いたアプリケーションをtellタブで指定しないと動作確認ができない(おかしくなる)。
 将来のバージョンのスクリプトエディタでは、きちんとuseで指定したアプリケーションに合わせた挙動をするようになるはず。

 通常のアプリケーションは用語がぶつかって使いにくいが、System Eventsは

use application "System Events"

として使うと、tellより使いやすいかもしれない。

use Finder:application id "com.apple.finder"

の形で、一旦変数へ納めて

activate Finder

と使うやり方は、細かくアプリケーションを切り替える時に読みやすくできる。

 importing false(without importing)を使うと用語を読み込まない。
 そうすると意味がないように思えるが、versionと併用すると、AppliScriptと同様な、単にバージョンチェックを行う目的で使える。

use script

 スクリプトライブラリに置いたスクリプトを使用する。
 スクリプトはスクリプトオブジェクトとして取り込まれるので、propertyの変更はライブラリにあるファイルには保存されない。

 類似するload script命令があるが、useの方は(ファイルパスの設定が不要で)より簡便な方法といえる。
 また、propertyを使ってもuseに近いことはできるが、あえて以下のように記述する必要はないだろう。

property ExternalUtility : script "external utility"

参考 : AppleScript Language Guide: Script Objects#Script Libraries

 詳細は、スクリプトライブラリを参照。

use scripting additions

 他のuse文で何か指定すると、OSAXが使えなくなる。
 そういう場合にOSAXを使いたい場合、これを記述する。

 スクリプト全体ではなく、一部だけでOSAXの用語を使いたい場合はusing terms fromを使うと良い。

using terms from scripting additions
	display dialog "hello world"
end using terms from

 Appleの方針として、今後はあまりOSAXは使わせたくないようで、機能拡張する場合はライブラリを使っていくのが推奨されているようだ。

use framework

 ObjectiveCなどのAPIを指定して利用できる。
 frameworkは、変数やversionには対応していない。

use framework "Cocoa"

用例(Example)

  1. use AppleScript "3.0"
  2. use ExternalUtility : script "external utility"