継承関係(Inheritance)

text
character
line
paragraph
text flow
word

要素(Elements)

character番号
line番号
paragraph番号
text番号
word番号

属性(Properties)

colorRGB
最初の文字の色
font文字列
最初の文字のフォントの名前
size整数
最初の文字のフォントのサイズ(ポイント)
writing code'intl'[r/o]
スクリプトシステムと言語
styleスタイル情報
最初の文字のスタイル
uniform stylesスタイル情報
文字全体のスタイル

解説(Note)

 値のクラスであるstringクラスと混同してしまいがちであるが、こちらはオブジェクトクラスである。
 つまり、テキストエディタなどのアプリケーションのウィンドウなどに存在している時の文字列と理解すれば良い。

 これを変数に代入するとstringクラスとなる。オブジェクトのまま扱いたい場合は、a reference to演算子を使い、参照として変数に代入する。
 アプリケーション内では、オブジェクトのまま操作するのが基本であり、そうすることによって、様々な命令を受け付け、フィルタ参照なども使える(場合がある)

 常に上位のオブジェクトと組み合わせて使わないと、クラス識別子textと認識されてしまうので注意したい。

tell application "TextEdit"
	text of front document
end tell

 front documentまでtellに含めた場合は、少々不思議な感じがするが、itを使って明示的に書く必要がある。

tell application "TextEdit"
	tell front document
		text of it	-- テキストが返ってくる
		text -- textが識別子のリテラルとして、そのまま返ってくる
	end tell
end tell

 また、単にtextと書いても単数形と複数形が同じtextなので、どちらか分からないが、書かれている状況でtext(単数形)かevery text(複数形)のどららの意味かが認識される。

 こうややこしいことになるなら、text objectと言う名前にでもしてくれた方が良かった、と思わんでも無い。
 今思えば、stringの別名としてtextなんか用意するのがいかん、ということになるのだが。

用例(Example)

  1. tell application "スクリプティング対応エディタ"
    	text of document 1
    end tell

※1 結果ウィンドウでResultを見て下さい。