スクリプトを書いていて、「あれ? 思った動作と違うぞ?」ということはつきものです。 そんなときに「あっ、これが原因か!」とひらめくキッカケになるようなコラムが書けないかなと思いました。 画像入れ替えスクリプトの連載をしているところですが、コー…
ご無沙汰しています。 なかなか更新できなくて申し訳ありません。 なるべく定期的に更新できるようにしたいと思います…それでは早速、フレーム入れ替えスクリプトの説明の続きを…おさらいすると、フレーム入れ替えスクリプトはフレームの中身が入れ替わった…
座標を入れ替えよう それでは前回の続きを。フレームの座標を取得する方法が分かったところで、選択した2つのフレームの中身を入れ替える(厳密には中身が入れ替わったように見える)処理を説明していきます。
それでは、選択した2つの画像フレームを入れ替えるスクリプトの記事を書いていこうと思います。 処理はこんな感じを想定しています。 ① 画像が入ったフレームを2つ選択する ② スクリプトを実行すると、2つの画像の位置とサイズが入れ替わる ③ オブジェク…
ごぶさたしています。入門者向けスクリプトコラムは一段落してしまったので、そこで説明したメソッドを使って、実際に何かを作ってみようかと考えています。 たとえばこんなスクリプトはどうでしょうか。
今回は、関数間で「値を戻す」方法を書きます。 前回、関数間で「値を渡す」方法は書きましたね。似ているように思えますが、その違いはこうです。
以前の記事で関数の説明をしましたが、そのときは初歩の初歩ということで「よく使う処理を関数化する方法と、その呼び出し方」くらいしか書きませんでした。 今回は「呼び出し元と呼び出す関数のあいだでのデータのやりとり」について説明したいと思います。…
ご無沙汰しています。なかなか浮上できませんが……久々に記事を投稿します。スクリプトを書いていて、「エラー」はつきものです。 エラーと一言に言っても、スクリプトの書き方に問題がある場合もあれば、InDesignの都合で実行できない場合もあります。たとえ…
1 Excelの関数とはちと違う 今回は関数についてです。 「私、Excel使ってたから関数は得意!」 「ぼくはvlookup関数が好きだなあ」 なんて方もいるかもしれませんが、InDesignスクリプトでいう関数は、Excelのそれとは全然違います。「なんだか難しそうだな…
条件分岐についての説明はとりあえずこれで一段落でしょうか。 今回は複数の条件で条件分岐させる方法を書きます。 まずはif文の中で複数条件を設定する場合。次のような書き方をします。[例1]両方の条件を満たすときに成立 var obj = app.activeDocument…
実際に入門者として読んでくださってる方は、タイトルを見て「うほっ、来た来た……いかにもプログラムっぽい単語が……」とゾワゾワしているかもしれませんね。でもここまでif文について読まれた方であれば、さほど難しいことはありません…
前回のif文の説明では「等しい・等しくない」の演算子について書きましたが、今回は「…より大きい、…より小さい、等しいか大きい、等しいか小さい」の演算子について書こうと書きます。 等しい以外には次のような演算子があります(可読性重視で全角で書きま…
ESTKでド○クエ風コマンドバトルを作ってみました。グラフィックはないですが会心の一撃はあります(笑) コマンドバトルと言いつつ、「戦う」と「やめる」しか選べません…関数同士のパラメータのやりとりを検証したかったからで、決してヒマだったわけではあ…
前回書いた「if文」と、その前に書いた「配列変数」、そのさらに前に書いた「for文」を使ってちょっとした作例を。「いろんなものが入った配列変数の中身から、3文字のものだけをもうひとつの配列変数にコピー」してみます。 ちょうど、ふるいに掛けるような…
すぐ挫折すると思って書いていたこのブログですが、なんだかんだで入門者向けの記事も⑥まで来ました。 誰かの役に立てているかはともかく… 今回はifという命令文を使って条件分岐をする方法を書きます。 forとifが使いこなせれば、簡単なスクリプトは書けて…
身近なスクリプト入門者で、配列変数の理解に苦戦している方がいらっしゃるので書いてみました。 かくいう自分も最初は配列変数の意味がよく分からず、使わなくて済むなら使いたくないくらいでした。 配列が使えるようになると、出来ることが結構増えます。…
ネタもないので、スクリプトで段落スタイルを編集するときのなんやかやを思いつくままに。 var myDoc = app.activeDocument; /////新たに段落スタイル「サンプル」を設定する場合 var paraSt = myDoc.paragraphStyles.add ({name:"サンプル"}); ////既存の段…
つづき前回の例がフレームを消しきれない理由……それは、
図のようにいくつかのテキストフレーム(グループ化はされていない)が並んだ単ページのInDesignドキュメント。これらのテキストフレームを全て消すスクリプトを書きましたが、実行してみるとフレームが消しきれずに残ってしまいます。 以下のスクリプトの何…
すでに有志がもっとスゴイのを作っていそうだし、需要があるかは分かりませんが、InDesignで「現在のページを印刷する」スクリプトを書いてみました。
■allPageItemsで、マスターページを除外する書き方の例 [例1]ドキュメントページを指定(例は1ページ)して処理する場合
■allPageItems すべてのページのすべてのオブジェクトが対象。マスターページ上のオブジェクトも含めるので、マスターページを除外しないとまずい場合は条件文を書くか、対象ページを明記する必要がある。
実際にInDesignを使っての作業中、しょっちゅう忘れてしょっちゅう確認するようなことってありますよね。 たとえば「あれ…見出しの色の配合ってなんだっけ…」とか「ここに置く画像の高さは…」とか「あのショートカットキー忘れちゃった」とか。そういう場合…
④にしてようやく変数の話。スクリプトの入門書はまずここから説明したりするのですが、敢えて後回しにしました。 for文の説明のときに軽く触れたとは思いますが、今回はもう少し踏み込んでみます。
それでは前回に引き続き、for文を使ってくり返し処理を行う方法を説明します。
引き続き、前回用意していただいたドキュメントを使用してスクリプトの説明をします。
スクリプトを使ってInDesignを操作する方法を、基本中の基本から説明したいと思います。 高度な説明はできませんが、しょっぱなからつまずいている人がこの記事を読み終わった時、なんとなくスクリプトの考え方が分かるようになればいいなと思ってます。
読者もいないので、入門コラムはお休みしてちょっとしたスクリプトネタを。ページ上のフレームに何らかの処理をするスクリプトを書くような場合に、フレームの属性を指定しないとうまく動作しない場合があります。
スクリプトを作るときに付きものなのが、・「処理したいInDesignドキュメントが入ったフォルダを選んでください」 ↓ ・フォルダを選ぶ ↓ ・フォルダ内のInDesignドキュメントを片っ端から開いて処理をしていく ・サブフォルダがあれば、その中も探して、見つ…
スクリプト習得において、必要と思われるものを書いていきます。★は重要度です。