昔、作成したwin InDesignCS4のjavascriptを他の仕事にも使えるように改定。


その際、ちょっとでもスピードが早くならないか模索。

で、表の一列を一気に段落スタイルをかけるのに、下記のようにセルを一つづつ見てぐるぐる回していた。


for (i =7; i < tableObj1.tables[0].columns[2].cells.length; i++){
if (tableObj1.tables[0].columns[2].cells[i].overflows == true){
setOverflows_inColumn(syoriColumn,syoriCell)
tableObj1.tables[0].columns[2].cells[i].paragraphs[0].appliedParagraphStyle = paraStyle[2];
}
else if (tableObj1.tables[0].columns[2].cells[i].contents != "")
{
tableObj1.tables[0].columns[2].cells[i].paragraphs[0].appliedParagraphStyle = paraStyle[2];
}
}


前は何を勘違いしていたのか、セルスタイルは表スタイルに設定するための物ってこんなやり方(一つ一つセルを見て、段落を見て)をしていたのでした…。
で、今はこんな感じに…。


for (SetCell =0; SetCell < 19; SetCell++){
SetCellStyle = app.select(tableObj1.tables[0].columns[SetCell]);
SetCellStyle = app.activeDocument.selection;
SetCellStyle[0].appliedCellStyle = paraStyle[SetCell];
for (i =7; i < tableObj1.tables[0].columns[SetCell].cells.length; i++){
setColorCharaStyle(i)
}
}


多少は速くなったかな。
ってか、動作速度を速めるにはプログラム技術ではなく、たまーにInDesinを見直した方がいいと感じました。特に、私はInDesignにメチャ詳しい訳ではないのでね。

まぁ、セルスタイルを使うなんて、他のみなさんは当たり前にやっていたと思います…。


※上記のjavascriptは上記だけでは動作しません。
 雰囲気って事で…。あと、プログ掲載用にちょっといじってたりしてます。
 動作確認もしてません。あしからず……