DTP駆け込み寺
  1. [18465] Indesign JS 結合セル(表)の扱いについて スクリプト 2016/01/21 19:04 *
    1. [18466] Re: Indesign JS 結合セル(表)の扱いについて -e 2016/01/22 09:59
      1. [18467] Re^2: Indesign JS 結合セル(表)の扱いに・ スクリプト 2016/01/22 10:15
        1. [18468] Re^3: Indesign JS 結合セル(表)の扱いに・ -e 2016/01/22 16:26

[ 返信 ]

Indesign JS 結合セル(表)の扱いについて

Indesign JS 結合セル(表)の扱いについて

Indesign CC2015にて選択中のセルに対し、左上から右下にZ方向で
現在は言っているコンテンツに連番を追加したいと思っております。

/*---------------------------------------------------------------------------
var selcell = app.activeDocument.selection[0].cells;
for(var i = 0 ; i < selcell.length; i++){
selcell[i].contents = selcell[i].contents + "-" + ( i + 1 ) ;
}
---------------------------------------------------------------------------*/

上記スクリプトにて行うと、行方向に結合されているセル(5)には連番が追加されず
セルが飛ばされる形で、次の行の1つめのセル(7)に連番が入り、最終的に
"selcell[i].contents = selcell[i].contents + "-" + ( i + 1 ) ;"でエラーが起きます。

本来の完成形は下記になります
2-1
3-2
4-3
5-4
7-5
9-6

selcellの中のcontentsをみると"length:5"となっており、そもそものselectionの中に
"5"が入っていない状態になっています。

これを本来の完成形のようにいれることはできないのでしょうか?
(あくまでも選択セルのみのcontentsを編集したい)

ご教示、よろしくお願いいたします。

[18465] スクリプト (2016/01/21 Thu 19:04)

[ 返信 ]


Re: Indesign JS 結合セル(表)の扱いについて

セルの扱いはややこしいですよね。
CS5ではこれで大丈夫です。

var sel = app.activeDocument.selection[0];
var newcontents=[];
for(var i = 0 ; i < sel.contents.length; i++){
newcontents[i]= sel.contents[i]+ "-" + ( i + 1 ) ;
}
sel.contents=newcontents;

[18466] -e (2016/01/22 Fri 09:59)

[ 返信 ]


Re^2: Indesign JS 結合セル(表)の扱いに・

-e様

ありがとうございます!
無事できました!
頂いたソースに長体処理を加える場合、どのようになりますか?

[18467] スクリプト (2016/01/22 Fri 10:15)

[ 返信 ]


Re^3: Indesign JS 結合セル(表)の扱いに・

あまりスマートではないですが一応こんな感じでもできます。

var sel = app.activeDocument.selection[0];
var c0=sel.parentColumn.index;
var clen=sel.columnSpan;
var r0=sel.parentRow.index;
var rlen=sel.rowSpan;

for (j=r0; j<r0+rlen; j++){
for (i=c0; i<c0+clen; i++){
try{
sel.rows[j].cells[i].paragraphs[0].horizontalScale=50;
}
catch(e){
}
}
}

[18468] -e (2016/01/22 Fri 16:26)