DTP作業者にとっての難易度 ★★☆☆☆(2)
要素の多いレイアウトを作成する際(たとえばデータ結合によるレイアウト作成時など)、空のテキストフレームやグラフィックフレームをいくつも削除しなければならないケースがあります。今回は、この作業を効率的におこなうJavaScriptを3パターン考えてみました。
【1】空だったらすべて削除する
1つ目は「テキストフレーム、グラフィックフレームが空だったらすべて削除する」というシンプルなJavaScript群です。
※空のテキストフレームを削除するJavaScriptについては「組版時間を半減する! InDesign自動処理実例集」で紹介されているものをご使用ください。同書にはデータのダウンロード先も示されています。
これらのJavaScriptは、空だったら問答無用で削除する……というものです。また、グループ化されている場合は空でも削除されませんのでご注意ください。【2】塗り色(スウォッチ)で探し、空だったら削除する
2つ目は、塗り色(スウォッチ)でフレームを探し、空だったら削除するJavaScriptです。
このJavaScriptでは複数のスウォッチを使って削除対象を切り替えることもできます。また、塗り色をオブジェクトスタイルに登録すれば「削除するか否か」を後で簡単に変更することもできます。ただし【1】と同様、グループ化されている場合は削除されませんのでご注意ください。
【3】name属性で探し、空だったら削除する
3つ目は、name属性でフレームを探し、空だったら削除するJavaScript群です。
このJavaScriptは、グループ化されていても削除が可能だという点が魅力です。一方、name属性はオブジェクトスタイルに登録できませんので作業手順をよく考える必要があります。
※name属性を設定したオブジェクトを複製した場合、name属性は引き継がれます。
※name属性の設定/削除はJavaScriptをご使用いただくのが簡単です。
※テキストフレームのnameとグラフィックフレームのnameは異なる名称にする必要があります(同じnameのまま削除を実行するとエラーになります)。
3つのJavaScript群は、それぞれ長所と短所(注意点)があります。作成されるレイアウトによって使い分けるといいでしょう。
なお、いつものことですがJavaScriptが期待通りの結果につながらないことも考えられます。必ずバックアップをとり、慎重にお試しください(何かあっても当方では責任を負いかねます)。
サンプルデータはこちら《minimum_2017_0130b.zip》です。