とあるDTPオペレーターのInDesignスクリプト備忘録

デザイナー上がりですがいまはDTP命。InDesign用スクリプトの解説などを綴っています。読者登録して戴けると励みになります。

スクリプトがうまく動かないときに読むコラム① 「入れ子」

スクリプトを書いていて、「あれ? 思った動作と違うぞ?」ということはつきものです。 そんなときに「あっ、これが原因か!」とひらめくキッカケになるようなコラムが書けないかなと思いました。 画像入れ替えスクリプトの連載をしているところですが、コー…

画像入れ替えスクリプトを作ろう③  ~オブジェクトスタイルは元のフレームに残す~

ご無沙汰しています。 なかなか更新できなくて申し訳ありません。 なるべく定期的に更新できるようにしたいと思います…それでは早速、フレーム入れ替えスクリプトの説明の続きを…おさらいすると、フレーム入れ替えスクリプトはフレームの中身が入れ替わった…

画像入れ替えスクリプトを作ろう② ~座標の入れ替え その②~

座標を入れ替えよう それでは前回の続きを。フレームの座標を取得する方法が分かったところで、選択した2つのフレームの中身を入れ替える(厳密には中身が入れ替わったように見える)処理を説明していきます。 まずはそれぞれの選択フレームを、下記のよう…

画像入れ替えスクリプトを作ろう① ~座標の入れ替え その①~

それでは、選択した2つの画像フレームを入れ替えるスクリプトの記事を書いていこうと思います。 処理はこんな感じを想定しています。 ① 画像が入ったフレームを2つ選択する ② スクリプトを実行すると、2つの画像の位置とサイズが入れ替わる ③ オブジェク…

入門者向けコラムで紹介したメソッドを使って、スクリプトを作ろうの巻

ごぶさたしています。入門者向けスクリプトコラムは一段落してしまったので、そこで説明したメソッドを使って、実際に何かを作ってみようかと考えています。 たとえばこんなスクリプトはどうでしょうか。① 画像が入ったフレームを2つ選択する ② スクリプト…

【入門者向け⑫】関数(呼出先)から関数(呼出元)へ値を戻す

今回は、関数間で「値を戻す」方法を書きます。 前回、関数間で「値を渡す」方法は書きましたね。似ているように思えますが、その違いはこうです。

【入門者向け⑪】関数間のデータのやりとり(引数で値を渡す)

以前の記事で関数の説明をしましたが、そのときは初歩の初歩ということで「よく使う処理を関数化する方法と、その呼び出し方」くらいしか書きませんでした。 今回は「呼び出し元と呼び出す関数のあいだでのデータのやりとり」について説明したいと思います。…

【入門者向け⑩】try...catchでエラー回避処理

ご無沙汰しています。なかなか浮上できませんが……久々に記事を投稿します。スクリプトを書いていて、「エラー」はつきものです。 エラーと一言に言っても、スクリプトの書き方に問題がある場合もあれば、InDesignの都合で実行できない場合もあります。たとえ…

【入門者向け⑨】関数(function)についての初歩の初歩

1 Excelの関数とはちと違う 今回は関数についてです。 「私、Excel使ってたから関数は得意!」 「ぼくはvlookup関数が好きだなあ」 なんて方もいるかもしれませんが、InDesignスクリプトでいう関数は、Excelのそれとは全然違います。「なんだか難しそうだな…

スクリプトの暴発を食い止めろ!(つづき)

これまでのあらすじ……前回の記事を読んでください← 1 ファイル名を調べる ---スクリプトが暴発しない方法……関係ないドキュメントでスクリプトが作動しない方法…………

とどのつまり、覚えたスクリプトってどうやって使うの?

当ブログの入門者向けコラムを読まれた方の中には、 「for文もif文も書き方分かったけどよ~。コレ使ってどうすればいいの? フレームを黒塗りにするとかレイヤー名を取得するとか、そんな作業、仕事でやってないんだけど」 と思ってる方もいるかもしれませ…

【入門者向け⑨】条件分岐その4 複数条件(&&、||、switch...case)について

条件分岐についての説明はとりあえずこれで一段落でしょうか。 今回は複数の条件で条件分岐させる方法を書きます。 まずはif文の中で複数条件を設定する場合。次のような書き方をします。[例1]両方の条件を満たすときに成立 var obj = app.activeDocument…

【入門者向け⑧】if文 その3 ~true/false/else~

実際に入門者として読んでくださってる方は、タイトルを見て「うほっ、来た来た……いかにもプログラムっぽい単語が……」とゾワゾワしているかもしれませんね。でもここまでif文について読まれた方であれば、さほど難しいことはありません…

【入門者向け⑦】if文について その2(条件分岐 大きい & 小さいほか)

前回のif文の説明では「等しい・等しくない」の演算子について書きましたが、今回は「…より大きい、…より小さい、等しいか大きい、等しいか小さい」の演算子について書こうと書きます。 等しい以外には次のような演算子があります(可読性重視で全角で書きま…

コマンドバトル風スクリプトを作ってみた

ESTKでド○クエ風コマンドバトルを作ってみました。グラフィックはないですが会心の一撃はあります(笑) コマンドバトルと言いつつ、「戦う」と「やめる」しか選べません…関数同士のパラメータのやりとりを検証したかったからで、決してヒマだったわけではあ…

【入門者向け番外編】for、配列変数、ifを使ったちょっとしたお遊び

前回書いた「if文」と、その前に書いた「配列変数」、そのさらに前に書いた「for文」を使ってちょっとしたお遊びを。「いろんなものが入った配列変数の中身から、3文字のものだけをもうひとつの配列変数にコピー」してみます。 ちょうど、ふるいに掛けるよう…

【入門者向け⑥】if文(条件分岐)について ~等しい・等しくない~

すぐ挫折すると思って書いていたこのブログですが、なんだかんだで入門者向けの記事も⑥まで来ました。 誰かの役に立てているかはともかく… 今回はifという命令文を使って条件分岐をする方法を書きます。 forとifが使いこなせれば、簡単なスクリプトは書けて…

【入門者向け⑤】配列変数について

身近なスクリプト入門者で、配列変数の理解に苦戦している方がいらっしゃるので書いてみました。 かくいう自分も最初は配列変数の意味がよく分からず、使わなくて済むなら使いたくないくらいでした。 配列が使えるようになると、出来ることが結構増えます。…

段落スタイルあれこれ

ネタもないので、スクリプトで段落スタイルを編集するときのなんやかやを思いつくままに。 var myDoc = app.activeDocument; /////新たに段落スタイル「サンプル」を設定する場合 var paraSt = myDoc.paragraphStyles.add ({name:"サンプル"}); ////既存の段…

ループ(for文)でフレームを消し切る書き方

つづき前回の例がフレームを消しきれない理由……それは、

テキストフレームをループ(for文)で全消しするには?

図のようにいくつかのテキストフレーム(グループ化はされていない)が並んだ単ページのInDesignドキュメント。これらのテキストフレームを全て消すスクリプトを書きましたが、実行してみるとフレームが消しきれずに残ってしまいます。 以下のスクリプトの何…

現在のページを印刷するスクリプト

すでに有志がもっとスゴイのを作っていそうだし、需要があるかは分かりませんが、InDesignで「現在のページを印刷する」スクリプトを書いてみました。

続・ページ上のオブジェクト指定

■allPageItemsで、マスターページを除外する書き方の例 [例1]ドキュメントページを指定(例は1ページ)して処理する場合

ページ上のオブジェクト指定

■allPageItems すべてのページのすべてのオブジェクトが対象。マスターページ上のオブジェクトも含めるので、マスターページを除外しないとまずい場合は条件文を書くか、対象ページを明記する必要がある。

地味だけど、意外に便利かもしれないスクリプト

実際にInDesignを使っての作業中、しょっちゅう忘れてしょっちゅう確認するようなことってありますよね。 たとえば「あれ…見出しの色の配合ってなんだっけ…」とか「ここに置く画像の高さは…」とか「あのショートカットキー忘れちゃった」とか。そういう場合…

【入門者向け④】スクリプトでInDesignを操作 ~変数について~

④にしてようやく変数の話。スクリプトの入門書はまずここから説明したりするのですが、敢えて後回しにしました。 for文の説明のときに軽く触れたとは思いますが、今回はもう少し踏み込んでみます。

ひとりごと

このブログもちらほらアクセスが増えてきて、中でもテキストフレームにあれこれしたい時の説明記事のアクセス数が多いようです。 入門記事よりも、そういった簡易リファレンス的なものの方が需要があるのかな?

【入門者向け③】スクリプトでInDesignを操作 ~forによるくり返し 後編~

それでは前回に引き続き、for文を使ってくり返し処理を行う方法を説明します。

【入門者向け②】スクリプトでInDesignを操作 ~forによるくり返し 前編~

引き続き、前回用意していただいたドキュメントを使用してスクリプトの説明をします。

【入門者向け①】スクリプトでInDesignを操作① ~基本的なフレーム操作~

スクリプトを使ってInDesignを操作する方法を、基本中の基本から説明したいと思います。 高度な説明はできませんが、しょっぱなからつまずいている人がこの記事を読み終わった時、なんとなくスクリプトの考え方が分かるようになればいいなと思ってます。