「スクリプちん」のサイトデザインをリニューアル作業中です…^^;

テキストフレームの連結と解除

当ページのリンクには広告が含まれています。
スクリプちん:InDesignのJavaScript 「テキストフレームの連結と解除」

InDesignのテキストフレームの連結と解除を実行するスクリプトの紹介です。

「連結する」「解除する」というコトバから想像すると、メソッドを使うような気がしますが、メソッドではなくプロパティを使います。

Adobe公式サイト  Adobe InDesignの機能を詳しく見てみる

目次

コードサンプル

次のコードでは、アクティブドキュメントにテキストフレームを3つ作成して左から順に並べ、それぞれに文字を入力しています。

この3つのテキストフレームを、左から順に連結します。

#target indesign
var objDoc = app.activeDocument;

// テキストフレームを3つ作成
var objTxtFrm01 = objDoc.textFrames.add();
var objTxtFrm02 = objDoc.textFrames.add();
var objTxtFrm03 = objDoc.textFrames.add();

// 位置と大きさを変更
objTxtFrm01.visibleBounds = ["50mm","30mm","100mm","80mm"];
objTxtFrm02.visibleBounds = ["50mm","90mm","100mm","140mm"];
objTxtFrm03.visibleBounds = ["50mm","150mm","100mm","200mm"];

// 各テキストフレームに文字を入力
objTxtFrm01.contents = "A";
objTxtFrm02.contents = "B";
objTxtFrm03.contents = "C";

// 01,02,03の順でテキストフレームを連結
objTxtFrm01.nextTextFrame = objTxtFrm02;
objTxtFrm02.nextTextFrame = objTxtFrm03;

コード解説

連結

サンプルコードの中で、実際に連結しているのは最後の2行です。

objTxtFrm01.nextTextFrame = objTxtFrm02;
objTxtFrm02.nextTextFrame = objTxtFrm03;

まず、1番左にあるテキストフレームのプロパティ「nextTextFrame」に、真ん中のテキストフレームを代入します。

次に真ん中と一番右側のテキストフレームの連結も同様に、「nextTextFrame」を使って連結しています。

InDesignのスクリプトの書き方:連結されていないテキストフレームが、ページに3つ並んでいる図
連結直後の状態:先頭のテキストフレームに全ての文字が入っている

「A」「B」「C」の文字は、テキストフレーム作成直後には、それぞれのテキストフレームに1文字ずつ入力しましたが、連結されたことで先頭のテキストフレームに入っています。

スクリプトで作成し連結された3つのテキストフレームの先頭を選択して、連結線を表示
テキストフレームをクリックするとテキスト連結が表示され、連結されたことが確認できる

連結の解除

連結を解除するときは、次のコードのように「null」を代入します。

objTxtFrm01.nextTextFrame = null;

こうすると、一番左と真ん中のテキストフレームの連結が切れて、一番左側のテキストフレームだけが単独の状態になります。

テキストフレームのプロパティ

テキストフレームの連結にかかわるプロパティは、次の4つ。

テキストフレームの連結にかかわるプロパティ
  • startTextFrame:先頭のテキストフレーム
  • endTextFrame:最後のテキストフレーム
  • previousTextFrame:前のテキストフレーム
  • nextTextFrame:次のテキストフレーム

Adobe公式サイト  Adobe InDesignの機能を詳しく見てみる


Adobe ExtendScript Toolkitは、サポートが終了しています

Adobe ExtendScript Toolkitは、サポート終了後もしばらくはインストーラーのダウンロードはできており、使用することもできましたが、現在ではダウンロードもできなくなっています。

今からExtendScriptの開発を始めるなら、Visual Studio Code(VSCode)を導入することになりますが、AdobeはすでにUXPへの移行を進めています。

UXPの開発環境アプリは、Creative Cloudアプリ内の「UXP Developer Tools」からインストールできます。

公式サイト Adobe InDesignユーザーガイド:InDesignの拡張>自動化>スクリプト

公式サイト Visual Studio Code(VSCode)

+DESIGNING VOLUME 50 (マイナビムック)の「ちょっと自動化→ちょっとしあわせ ラクラボ。〜ESTKはもう古い! 最新の開発・デバッグ環境の構築方法」というコラムで、VSCodeでのデバッグについての解説が掲載されています。

Amazonなら、Kindle Unlimitedでも読めます。
普通にコレを1冊買うより、Kindle Unlimitedに1ヶ月登録したほうが安く読めますよ。

よかったらシェアしてね!
  • URLをコピーしました!
目次