昔、作成した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は上記だけでは動作しません。
雰囲気って事で…。あと、プログ掲載用にちょっといじってたりしてます。
動作確認もしてません。あしからず……