それをカスタマイズして
「セル内で1行に収まっていない段落を解消するスクリプト」にする方法です。
上のスクリプトではオーバーフローしていると長体がかかってくれますが、セルの天地を自動にしていてオーバーフローしない場合にちょっと不便です。なので1つのセルに入る文字がかならず1行ならば2行になっているのを1行になるまで長体にカスタマイズしてみます。
段落は改行までが1段落です。
それに対して行は見かけ改行されていれば2行です。
という事は段落内の文字と段落の最初の行内の文字が同じならば長体をかけなくても良いそれ以外は長体をかける。
と考えるとうまくいきそうです。
var sel = app.activeDocument.selection[0]; for (var i = 0; i < sel.cells.length; i++) { var txtObj = sel.cells[i]; var danraku = txtObj.paragraphs[-1];
ここまではせうぞーさんのと同じです。
var gyou = txtObj.lines[-1];
ここで変数gyouに行を入れます。[-1]で最終行を入れていますがlines0;のほうがいいですね。
for (var w=danraku.horizontalScale; w >= 10; w--){ txtObj.recompose();//★ここ
ここはせうぞーさんのと同じ
var danraku_str = danraku.contents; var gyou_str = gyou.contents;
ここで
変数danraku_strに段落を
変数gyou_strに行を入れています。
if (danraku_str == gyou_str) {break}
もし段落の内容と行の内容が同じなら長体をしなくてよいので繰り返しを抜けます。
danraku.horizontalScale = w; } }
段落の内容と行の内容が違うなら長体をかけていきます。これもせうぞーさんのと同じ。
ほかにも段落が1つに対して行が2つあれば長体ということは段落の中の行の数を数えて1ならば長体しない。それのほうが良かったかもしれないですね。
コメントする