よろよろ帳

InDesign JavaScript 勉強中

同じ値のセル結合

結合解除した空白セルに一つ上の値を入れるの逆バージョン。
セルを縦方向にまとめます。

app.doScript (main, ScriptLanguage.JAVASCRIPT, [], UndoModes.FAST_ENTIRE_SCRIPT);
function main (){
var Col = app.selection[0].columns.everyItem().getElements();//表かセルを選択
for (var i = 0; i < Col.length; i++) {
    app.findGrepPreferences.findWhat = "\r";
    app.changeGrepPreferences.changeTo="\n"
    Col[i].changeGrep();
    }//セル内改行→強制改行に
for (var i = 0; i < Col.length; i++) {
    var Ce = Col[i].cells.everyItem().getElements();
    for (j = Ce.length-1; j >= 1; j--) {
        if (Ce[j].texts[0].contents == Ce[j-1].texts[0].contents) {
            Ce[j-1].merge (Ce[j]);
            app.findGrepPreferences.findWhat = "(^[^\\r]+)\\r\\1+";
            app.changeGrepPreferences.changeTo="$1";
            Ce[j].changeGrep();
            }
        }
    }
}

↓参考
javascript - Adapting merge cells in InDesign script - Stack Overflow