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)
セルの扱いはややこしいですよね。
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)
-e様
ありがとうございます!
無事できました!
頂いたソースに長体処理を加える場合、どのようになりますか?
[18467] スクリプト (2016/01/22 Fri 10:15)
あまりスマートではないですが一応こんな感じでもできます。
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)