tell 様々な値to

tell 様々な値
[]
end [tell]

引数(Parameters)

様々な値ブロック内でデフォルトにする
オブジェクトの参照などの値
AppleScriptの任意の文

解説(Note)

 デフォルトのオブジェクトや値はシステム変数itに格納される。
 tellブロック内からスクリプトの持つ利用者定義命令を呼び出す時はシステム変数meを使って、メッセージを送るオブジェクトをスクリプト自身に設定する必要がある。

 tellで指定するapplicationmachinezoneのオブジェクトは、正確にはこのtell構文のオプションという扱いなので、命令などは受け付けない。

 アプリケーションの持つオブジェクトや命令を使いたい場合は、このtellブロックでapplicationオブジェクトを指定する必要がある。その際launch命令を実行されない限り、自動的にrun命令が実行される。これを暗黙のrun命令という。つまり

tell application "アプリケーション"
	run
	-- 以下AppleScriptの文
		・
		・
end tell

tell application "アプリケーション"
	-- 以下AppleScriptの文
		・
		・
end tell

は同じ動作をすると言うことだ。
 正確に言うと、暗黙のrun命令はtellブロックの最初の文が実行される直前まで実行されないので、以下の文では暗黙のrun命令は実行されない。

tell application "アプリケーション"
end tell

 スクリプトオブジェクトには、暗黙のrun命令は適用されない。
 様々な値にレコードかスクリプトオブジェクトを指定した場合は、属性を指定する場合にof itを使わなければいけない(例4)

【バグ情報】
 applicationにアプレットを指定した場合、一旦launch命令を使ってマウントしてから通常の処理を行わないと、きちんと処理されないので、runハンドラを実行させたい場合も、以下のように書く。

tell application "アプレット"
	launch
	run
end tell

 単にrun命令を実行させたいだけならば、OSAXのrun script命令を使うこともできる。

用例(Example)

  1. tell application "Finder" to name
  2. tell application "Finder" to tell disk 1 to count items
  3. tell {1, 2, 3, 4, 5}
    	item 2
    end tell
  4. set theRec to {a:1, b:2}
    tell theRec
    	a of it
    end tell