よろよろ帳

InDesign JavaScript 勉強中

列の中央で左揃え

選択した1列の一番長いテキストに合わせて左揃えにします。

app.doScript (main, ScriptLanguage.JAVASCRIPT, [], UndoModes.FAST_ENTIRE_SCRIPT);
function main (){
var sel=app.activeDocument.selection[0];//列を選択
var CN=sel.cells[0].name.split(":");//列:行
var T=sel.parent;//表
var GB=T.parent.geometricBounds;//表の親フレーム(左揃えインデント0とする)
var Col = T.columns;
var W=[];//列幅用
var Lf=[];//テキストのX軸用

for(var i=0; i<Col.length; i++){
  W.push(Col[i].width)
}

for(var i=0; i<sel.cells.length; i++){
    var H=sel.cells[i].characters[0].horizontalOffset;
    Lf.push(H);
}
Lf.sort(function(a,b){return a > b});

var n=0;
for(var i=0; i<CN[0]; i++){
    n=n+W[i]
}

for(var i=0; i<sel.cells.length; i++){
    sel.cells[i].paragraphs[0].justification=Justification.leftAlign;
    sel.cells[i].leftInset=Lf[0]-n-GB[1]-(Col[0].leftEdgeStrokeWeight/2)
}
}