InDesign禁断のスクリプト技! 表のセルを重ねる

この記事は【大DTP勉強部屋】「Saturday online SP 〜眠くなるまで〜」で紹介した内容の1つです。

スクリプトを使ったことがある人は聞いたことがあるかもしれません。

表のセルの高さは、画面操作では最3pt(1.058mm)でそれより小さくすることはできないが、スクリプトではその制限がない。だか0.5mmなどの高さのセルを作ることができる

これInDesignのスクリプト遣いの間では結構知られており、Usukeさんがダイアログ付きのものを公開されていて便利です。ただ、このことを知らない人は修正できないですね。そのため、他人に渡InDesignデータでは使ってはいけないスクリプトということになります。

ただ、ここでも前の記事と同様、マイナスの値を入れることができてしまうという問題があります。「セルの高さをマイナスにする」とどうなるか。下手なことをするInDesignがフリーズするのでよい子は決して真似をしないでください。


次の図は3行2列の表です。各セル16mm×16mmです。

ここで中央の行(「ううう」「えええ」のセル)を選択して、次のスクリプトを実行します。

app.selection[0].height = "1mm";

このようにセルの高さ1mmになります。文字(14Q)は入りきらないので、文字あふれを示す赤い点がありますね。ここまでは問題ないですね。

では次に行の高さを-10mmにしてみます。

app.selection[0].height = "-10mm";

このようになりました。「おおお」「かかか」のセルの位置10mm上がっています。「ううう」「えええ」のセルの背景が下のセルに隠れて見えなくなっていますが、文字や斜線は見えています。ただ、文字位置が下がっていることが分かります。

では今度は行の高さを-16mmにして、「おおお」「かかか」のセルが「あああ」「いいい」と同じ位置に来るようにしてみます。

app.selection[0].height = "-16mm";

……InDesignがフリーズしました。

どうやら、マイナスの値を入れることで、2番目以降のセルの位置が、表の先頭と同じかそれより上になる場合にはフリーズするようです。

そんなわけで、使い方を間違えてしまうと(そもそもマイナスを入れた時点でダメだけど)危険なので真似しないでください。

じゃあ紹介するなって話なんですが、面白い使い方を見つけてしまったんですよ。それが次の例。

こんな角丸のセル背景の表って見たことありませんか? こういうのが作れるんですよ。しかも表になっているので、横に伸ばしても問題がない。

背景の幅も一緒についてきてくれます。これは使いたくなってきますね。

元の形はこうです。各行の高さはすべ8mmです。

まず先頭行はカラです。何も入っていません。何のためにあるかというとフリーズを避けるため。だから高さ8mmでなくてもいいんですが、理解しやすいようにしました。

2行目から6行目まではグラフィックセルです。[表]メニューから「セルをグラフィックセルに変換」します。変換したらセルにぴったり収まる画像フレームになるので、そのフレームのコーナーオプションで丸くしています。残念ながらこの画像フレームは1つずつしか選択できないので、あらかじめオブジェクトスタイルを作成しておいて適用します。

で、最後に7行目を選択した状態で次のスクリプトを実行します。

app.selection[0].height = "-40mm";

文字修正は面倒なんですが、

  • 一旦表を選択してセルの高さ8mmに戻す(高さが異なるセルがあると面倒)
  • 最初のセルに文字カーソルを立てて、矢印キーを押して移動する

などの方法があります。

ということで、本当の禁断技です。使用するなら必ず自己責任で。責任は一切持ちません! そして、決して他人に渡さないように!