Hatena::ブログ(Diary)

名もないテクノ手 このページをアンテナに追加 RSSフィード Twitter

EPUB版『InDesign者のための正規表現入門』

InDesignのTips一覧

2008-11-19

[][][]スクリプトの使い方(種類・保存・利用)

InDesignスクリプトの使い方の基本についてQ&A形式で解説します。一般のユーザーが、掲示板などに書かれたスクリプトを「使うだけ」の場合を想定しています。誰かから「スクリプトってどーやって使うの? 教えておしえて!」と聞かれて答えるのがめんどい時、このページを教えてあげてください。

あ、わたしはWindowsのことはよくわかっていませんので、間違っている部分があれば教えてください。おしえておしえて。

k_ikiさんに突電して、教えていただきました。InDesignVBScriptについて流星さんのブログ「InDesignのVBScript学習帳」が詳しいようです。お〜まちさんの「Excelを利用したVBScriptの作り方」も参考になります。Winな人は一緒に参考にしてみてください。


【Q】スクリプトにはいくつかの種類があると聞きました。どんな種類があって、どこが違うのですか?

【A】InDesignのスクリプトはプラットフォームと用途に応じて、おおまかに下記の3種類に分類できます。ほかにもいろいろありますが、市井に出回っているのはたいていこれらのうちのどれかです。

JavaScript
Macintosh、Windows両方のプラットフォームで使えます。アプリケーション間通信はAdobe CSソフトウエア内で限定的に使用可能です。ドラッグ&ドロップはできません。拡張子は「.jsx」(テキスト形式)または「.jsxbin」(実行専用)
AppleScript
Macintoshプラットフォームで使えます。アプリケーション間通信はとても強力です(UNIXコマンドも利用できます)。書き方によってドラッグ&ドロップで処理を始められます。XCODEを利用した本格的なGUIアプリケーションを作成できます。拡張子は「.app」(アプリケーション形式)「.applescript」(テキスト形式)または「.scpt」(スクリプト形式)。
VBScript
Windowsプラットフォームで使えます。アプリケーション間通信もできます。書き方によってドラッグ&ドロップで処理を始められます。

【Q】ブログ(掲示板)にスクリプトが掲載してありました。どうすれば使えますか?

【A】下記手順に従ってください。

(1)UTF-8で保存できるテキストエディタ、または下記に示す専用エディタ(推奨)にコピー&ペーストします。
JavaScript
「/Applications/Utilities/Adobe Utilities.localized/ExtendScript Toolkit 2/ExtendScript Toolkit 2.app」(Mac)、「システムドライブ: \Program Files\Adobe\Adobe Utilities\ExtendScript Toolkit 2」(Win)を起動してください。ここでひとつだけしなければならないことがあります。ソースコードウインドウの左上にあるポップアップメニューから、「Adobe InDesign CS3」を選んでください。

f:id:seuzo:20081119135441p:image

AppleScript
「/Applications/AppleScript/スクリプトエディタ.app」を起動してください。
VBScript
任意のテキストエディタを起動してください(「メモ帳」でも可)。ただ、後述する構文のチェックが必要な場合は、Visual Basic Editor(以下VBE)を備えたMicrosoft Office製品(特にMicrosoft Excel)を利用することが多いようです(流星さんのブログ「InDesignのVBScript学習帳」もそうですし、お〜まちさんの「Excelを利用したVBScriptの作り方」もそうです)。この場合、VBScriptとVBEで使用する言語(VBA)の仕様の違いで、そのままでは動かないことが多いようです。単に利用するなら「メモ帳」で構いません。

この時、「\」などが正しくコピー&ペーストできない場合があります。Mac環境ではバックスラッシュであることを確認してください。


(2)(念のため)構文のチェックをします(省略可能)
JavaScript
ExtendScript Toolkit 2の「編集」メニューの「構文チェック」を選んで、ウィンドウの左下(ステータスバー)に「構文エラーなし」と出ればOKです。
AppleScript
スクリプトエディタのウィンドウ上部の「コンパイル」ボタンをクリックしてください。エラーが出なければOKです。->コードがカラーリングします。
VBScript
VBEを利用して作成した場合にはVBEのデバッグメニューからデバッグできるようです。その他のエディタを利用した場合は、そのエディタに同様の機能があればチェックできますがそうでない場合は実際に実行しないとエラーがわかりません。

このステップでエラーが発見された場合、スクリプトが正常に動作する確率は低いです。エラーメッセージに従って修正できれば幸いですが、もし無理ならエラーメッセージとコードを添えて分かる人に質問するといいでしょう。


(3)メニューから保存を選択します。名前をつけて、拡張子は以下のとおりにしてください。
JavaScript
拡張子は「.jsx」としてください。
AppleScript
拡張子は「.applescript」としてください。この時、AppleScriptではいくつかの保存形式が選べますが、通常「テキスト形式」を選択してください。
VBScript
拡張子は「.vbs」としてください。

(4)所定のフォルダに保存します。

保存するフォルダは、InDesignのバージョンとOSによって違います。ご注意ください。

InDesign CS/CS2
InDesignアプリケーションと同じ階層にある「Presets」-「Scripts」フォルダ内に保存します。
InDesign CS3(Mac)
「~/Library/Preferences/Adobe InDesign/Version 5.0-J/Scripts/Scripts Panel/」フォルダ内に保存します。
InDesign CS4(Mac)
「~/Library/Preferences/Adobe InDesign/Version 6.0-J/ja_JP/Scripts/Scripts Panel/」フォルダ内に保存します。(追記:2010-03-20T13:44:42+0900)
InDesign CS3(Windows XP
「Documents and Settings\[ユーザ名]\Application Data\Adobe\InDesign\Version 5.0-J\Scripts\Scripts Panel」フォルダ内に保存します。
InDesign CS3(Windows Vista
「ユーザー\[ユーザ名]\AppData\Roaming\Adobe\InDesign\Version 5.0-J\Scripts\Scripts Panel」フォルダ内に保存します。

なお、InDesign CS3アプリケーションと同じ階層にある「Scripts」-「Scripts Panel」フォルダも利用できますが、上記のユーザーフォルダ内の各フォルダを使用するのが推奨です。

また、スクリプトは別の場所に保存しておいて、上記各フォルダにエイリアス(ショートカット)をコピーしておいてもかまいません。

保存後にInDesignアプリケーションを再起動する必要はありません。


(5)「スクリプト」パネルから実行します

InDesignアプリケーションの「ウインドウ」メニューから「自動化」-「スクリプト」を選択して、「スクリプト」パネルを出します。実行したいスクリプトをダブルクリックして実行します。


【Q】スクリプトが動きません。なんだかエラーが出ます。

【A】いくつかの原因が考えられます。以下のことを確認してください。

  • スクリプトに「Read Me」ファイルなどがあれば、最初によく読んでください。
  • テキストエディタにコピー&ペーストした場合、文字コードが適当でない可能性があります。UTF-8(BOMなし)で保存してください。
  • 「\」などが正しくコピー&ペーストできてない。Mac環境では「円マーク」ではなく、バックスラッシュでないとエラーになります。同様に、スペースが文字コード「hex20」でない可能性もあります。検索置換してみてください。
  • へんなところで改行されている。JavaScriptではブロック以外では、行は「;」で終わっているのが普通です。構文のネストが崩れているような所がありませんか。
  • AppleScriptでは、文字コード「hex82」(半角カタナカの「ツ」)を「次行に続くマーク」としてしている場合があります。削除して次行を前行に繋げてしまってかまいません。
  • InDesign CS/CS2用のスクリプトは、InDesign CS3上で動作しないかもしれません。スクリプトではバージョン間の完全な互換性は保証されていません。「InDesign CS3は前バージョンのスクリプトも動かせるように設計されている(...)の続き -- ディザInDesignブログ」を参考にしてみてください。
  • InDesignの「環境設定」-「一般」の中の「添付スクリプトを有効にする」のチェックがオフになっていませんか?
  • 非常にまれなことですが、他のスクリプトがダイアログを出さない設定のまま終了していたりすると、正常なスクリプトが動作しなくなります。「dialogが出ない? - 名もないテクノ手
  • どうしても動作しない場合は、「動作環境」「コード」「エラーメッセージ」を添えて、分かる方に見てもらってください。

【Q】スクリプト蒐集癖がこうじて、「スクリプト」パネルが収集のつかない状態になってしまいました。うまい管理方法がありますか?

【A】「Scripts Panel」フォルダ内にさらに(種類別などで)フォルダ分けしてください。具体的にはこんな感じです。

f:id:seuzo:20081119202619p:image

f:id:seuzo:20081119202618p:image


追記

お〜まちさんよりいくつかの知見をいただき、追加・訂正いたしました。ありがとうございます。(2008-11-20)


参考

Adobe スクリプティング入門.pdf」インストールDVDに収録

InDesign CS3 スクリプティング チュートリアル.pdf」インストールDVDに収録

あかねあかね 2008/11/20 10:01 AppleScriptの拡張子って「.applescript」なんですか?
スクリプトエディタでファイルを作ると「.app」か「.scpt」ってデフォルトでつくので、それが正式かと思ってました

seuzoseuzo 2008/11/20 10:10 >AppleScriptの拡張子って「.applescript」なんですか?
テキスト形式だと「.applescript」です。ながい。
「.as」っていう拡張子でも(InDesignでは)AppleScriptだと認識されますけれど、
スクリプトエディタはデフォルトで「.applescript」を使います。

スクリプト形式(.scpt)はコードを見たいだけなのに、InDesignが立ち上がっていやんな感じです。速度的にテキスト形式でも遜色ないと思います。

アプリケーション形式は、起動そのものに若干時間がかかるので、パレットに入れて使うにはちょっと不利だと思います。

あかねあかね 2008/11/20 11:22 テキスト形式だと「.applescript」なのですね。
そんでパレットに入れて使う分にはテキスト形式でOKとは初めて知りました。スクリプト形式にしてた。
作ったスクリプトはドロップレットにしちゃう事が多いので、テキスト形式保存ってしたことなかったです。

seuzoseuzo 2008/11/20 12:23 >スクリプト形式にしてた。
由緒正しいスクリプタブルアプリケーションだとそうですね。というかInDesignが特殊なんだと思います。本来、アプリケーションはアップレットをキックするだけですから。osascriptコマンドみたいにインタプリタに橋渡しするわけじゃない。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

Connection: close