表と段落のアキを0にするスクリプト

[12338]表と段落のアキを0にするスクリプト 投稿者:* 投稿日:2007/10/03(Wed) 09:19

Win XP、CS2を使用しています。
「表の属性→表の設定→表と段落のアキ」は、
デフォルトでは、前後とも4Hになっています。
これを「0」にしたいのです。

スクリプトで対応できるのではないかと思っていますが、
表と段落のアキを0にするスクリプトは、
どのように記述すればよいででしょうか?


» 1

[12338へのレス]Re: 表と段落のアキを0にするスクリプト 投稿者:梅花藻 投稿日:2007/10/03(Wed) 14:57

//表組(Table)を選択して実行してください。
if (app.selection[0].constructor.name=="Table"){
    app.selection[0].spaceBefore="0.0mm";
    app.selection[0].spaceAfter="0.0mm";
} else {
    alert("表を選択してください。");
}

» 1

[12338へのレス]ありがとうございます 投稿者:* 投稿日:2007/10/03(Wed) 15:17

梅花藻 様
たいへん助かりました。
どうもありがとうございます。

12353 12338 2007/10/04(Thu) 09:45 * 表の線の色をスウォッチから選択するスクリプト 教えていただいたスクリプト、
たいへんありがたく使わせていただいています。

ちょっと、欲がでてきてしまったのですが、
上記のスクリプトに、
表の線の色をスウォッチから選択する機能を
加える事は出来ますか?

» 1

[12338へのレス]Re: 表と段落のアキを0にするスクリプト 投稿者:梅花藻 投稿日:2007/10/04(Thu) 10:20

>表の線の色をスウォッチから選択する機能を
>加える事は出来ますか?

可能ですが、現在、私には時間的余裕がありませんのでちょっと書いていられません。

CS2のCDに入っている「InDesign CS2 スクリプトリファレンス」のp.1091~にTableのプロパティが書かれています。
bottomBorderStrokeColor(left、right、topも)にスウォッチを設定(代入)すればよいのですが、スウォッチを選択するダイアログ等の部分もスクリプトに必要になります。
また、Cellで外周部の罫線の設定がなされている場合には、(設定次第ではありますが)そちらが優先されるので、そのあたりも考慮する必要があるかと。
表組の罫線等の設定をするスクリプトはこむぎ氏の
http://moyashi.air-nifty.com/hitori/2006/11/adobe_indesign__9ff0.html

を参考にされるとよいかと思います。

» 1

[12338へのレス] 投稿者:* 投稿日:2007/10/04(Thu) 21:29

Re: 表と段落のアキを0にするスクリプト

» 1

[12338へのレス] 投稿者: 投稿日:

//表組(Table)を選択して実行してください。
if (app.selection[0].constructor.name=="Table"){
app.selection[0].leftBorderStrokeColor = app.selection[0].topBorderStrokeColor = app.selection[0].rightBorderStrokeColor = app.selection[0].bottomBorderStrokeColor = app.activeDocument.swatches.item("None");
} else {
alert("表を選択してください。");
}


簡単なものから試してみようと思い、
上記のようなもので試してみましたが、何も起こりません。
どこが悪いのでしょうか・・・

» 1

[12338へのレス]Re: 表と段落のアキを0にするスクリプト 投稿者:梅花藻 投稿日:2007/10/05(Fri) 09:51

何故か、直接スウォッチを代入しようとするとダメみたいです。
よくわかりません。(1時間半も時間を使っちまったぜい。査定が…)

if (app.selection[0].constructor.name=="Table"){
    var obj = app.selection[0];
    var mySwatches = app.activeDocument.swatches;
    var SwatcheList = app.activeDocument.swatches.everyItem().name;
    var myDialog;
    var dlg = new Array();
    with(myDialog = app.dialogs.add({name:"表組の罫線の色を設定"})){
        with(dialogColumns.add()){
            with(dialogRows.add()){
                with(dialogColumns.add()){    // ラベル類の列
                    staticTexts.add({staticLabel:"罫線の色:"});
                }
                with(dialogColumns.add()){    // コントロール類の列
                    dlg.swatch = dropdowns.add({stringList:SwatcheList, selectedIndex:2});
                }
            }
        }
    }
    if (myDialog.show()){
        var mySwatch = mySwatches[dlg.swatch.selectedIndex];
        obj.leftBorderStrokeColor = obj.topBorderStrokeColor = obj.rightBorderStrokeColor = obj.bottomBorderStrokeColor = mySwatch;
        with (obj.cells.everyItem()){
                leftEdgeStrokeColor = topEdgeStrokeColor = rightEdgeStrokeColor = bottomEdgeStrokeColor = mySwatch;
        }
    }
    myDialog.destroy();
} else {
    alert("表を選択してください。");
}

» 1

[12338へのレス]Re: 表と段落のアキを0にするスクリプト 投稿者:* 投稿日:2007/10/05(Fri) 13:01

ありがとうございます!
お時間とらせてしまってすいません・・・

» 1

[12338へのレス]Re: 表と段落のアキを0にするスクリプト 投稿者:流星 投稿日:2007/10/06(Sat) 23:51

梅花藻さんへ
>何故か、直接スウォッチを代入しようとするとダメみたいです。
この間、WinのCS2のScriptで同様の症状に出会ったのですが、
その時は、原因が分からずColorItemの方を渡しました。

» 1

[12338へのレス]Re: 表と段落のアキを0にするスクリプト 投稿者:梅花藻 投稿日:2007/10/09(Tue) 12:59

流星さんへ
>>何故か、直接スウォッチを代入しようとするとダメみたいです。
>この間、WinのCS2のScriptで同様の症状に出会ったのですが、
>その時は、原因が分からずColorItemの方を渡しました。

これ、よくわからないのです。
上記、No.12364もスウォッチを代入していることには違いないのですが……

この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)