[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(DTPtechNote:783) InDesign CSのスクリプトパレットとスクリプトラベル



について、友人から質問をいただいたので、その方の許可を得て、こちらでお答えさせていただきます。

>> ●スクリプトパレットについて
>> スクリプトパレットとその使い方について、日本語で記述されている資料はあ りますでしょうか。

InDesign 2の時には日本語で書かれたものがありましたが、InDesign CSには英文のものしかありません。

>> 一応、自分でやみくもに操作してみて、下記のようなものであると理解したの ですが、それで正しいでしょうか。
>>
>> 1.[InDesign CS-Presets-Scripts]フォルダの中に、JavaScriptもしくは AppleScriptもしくはVisualBasicで記述したスクリプトを入れる。

そのとおり。
Adobe InDesign CS_J:Presets:Scripts:
フォルダに入れてください。

>> 2.そうすると、InDesign上で、スクリプトパレットから使用できる。このと き、AppleScriptでは、実行形式になっていなくてもよい。

このフォルダに入れられるApplescriptの形式は2種類です。
1)コンパイル済みスクリプト
2)アプリケーション形式
この形式は、script editorで保存時に選べるフォーマットです。
バンドル形式や、テキスト形式はサポートされていません。AppleScript Studioなんかもダメポです。

ちなみにJavaScriptはテキスト形式です。エンコーディングはshift JISまたはunicode(utf-8)です。

スクリプトパレットは、ちょっと詳しくいうと、InDesign が「アタッチャブル」であるということです。
つまり、Scriptをあたかも自分の中の組み込みプラグインのように使えるということを意味します。

>> 3.AppleScriptで実行形式になっている場合は、該当フォルダに入れなくて も、単体で動作する。スクリプトパレットは、AppleScriptでは、実行形式に なっていないスクリプトを動作させるためのものである。

実行形式(アプリケーション形式)では、該当フォルダになくても実行できます。
スクリプトパレットは、コンパイル済みスクリプト、アプリケーション形式ともに実行できます。

>>
>> このとき、
>> ・実行形式になっていないAppleScriptは、拡張子が.asである必要がありますか。

拡張子は必ずしも必要ではありません。
つけたほうがいい場合は以下を参照してください。
http://www.apple.com/applescript/scripteditor/04.html
すなわち、
コンパイル済みスクリプトでは「.scpt」
アプリケーション形式では「.app」 
です。

>> ・AppleScriptではこのようになっていますが、JavaScriptやVisualBasicで も、スクリプトパレットを使うときに、なにか制限というか、特徴はあります か。

特に制限はありません。

>> ・サンプルのAppleScriptを動作させると、必ずInDesign CSはどこにあるか聞 いてきます。そして示される一覧の中に、InDesign CSは表示されません (Illustrator CSなど他のAdobeアプリケーションは出てきます)。ブラウズ して指定して、初めて動作します。これは記憶されず、必ず毎回聞かれます。 この動作は正常でしょうか。

おそらく、アプリケーションを特定する記述が英語版を指定しているのかもしれません。
スクリプトエディタで開いて、コンパイル済みスクリプトかまたはアプリケーション形式で再保存してください。

>>
>> ●スクリプトラベルパレットについて
>> これはいったい何でしょう。どういうときに使うもので、なぜパレットになっ ているのでしょうか。使い方と目的がよくわかりません。
>> 選択したオブジェクトにスクリプトラベルなるものがつけられるというのは分 かったのですが、それ以上のことがよく分かりませんでした。
>> なんとなく、オブジェクト(もしくはほかのもの、たとえばページとか?)に 特定の名称(ラベル)をつけておいて、それを操作するということをスクリプ トのほうで書けるということか?と思っているのですが、資料が見つけられず におります。

そのとおりです。
InDesignのページ上のオブジェクトにユニークな名前をつけておいて、スクリプトからその名前をもったオブジェクトに直接アクセスするものです。この時の名前は[A-Za-z0-9_]が使えます。

こんな感じで使います。1ページ目のsecond_numberと名付けられたテキストフレームの内容を書き換えます。

tell application "InDesign CS_J"
	tell document 1
		tell page 1
			tell text frame "second_number"
				set contents to "10000"
			end tell
		end tell
	end tell
end tell

なぜ、このようなパレットがあるかというと、この名前を付けるため(だけ)にスクリプトを書く手間がはぶけるからです。理屈がわかれば、すごく便利です。