tell 様々な値to 文
tell 様々な値
[文]
end [tell]
様々な値 | ブロック内でデフォルトにする オブジェクトの参照などの値 |
文 | AppleScriptの任意の文 |
デフォルトのオブジェクトや値はシステム変数itに格納される。
tellブロック内からスクリプトの持つ利用者定義命令を呼び出す時はシステム変数meを使って、メッセージを送るオブジェクトをスクリプト自身に設定する必要がある。
tellで指定するapplication、machine、zoneのオブジェクトは、正確にはこの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命令を使うこともできる。
tell application "Finder" to name
tell application "Finder" to tell disk 1 to count items
tell {1, 2, 3, 4, 5}
item 2
end tell
set theRec to {a:1, b:2}
tell theRec
a of it
end tell