>

【InDesign】段間に罫線をひくスクリプト


2026年現在は、テキストフレーム設定自体に段間罫線機能がついているので、出番はないかもしれません。

 組み方向、段数、段間を設定して、その設定に応じて段間に罫線を引くスクリプトです。線幅は0.1mmの決め打ちになっています。

 段間罫を引きたいページの、最初のテキストフレームを選択して使用します。

動画を見る

注意点(2014.09.23追記)

スクリプトの「activePage」は、ドキュメント左下にある「ページボックス」に表示されているページ数を参照します。もしオブジェクトを選択してこのスクリプトを実行したとき意図したページと違うページに段間罫が引かれたら、選択オブジェクトのあるページとページボックスに表示されているページ数が一致しているか確認します。

ダウンロード(2014.10.28修正版に差し替えています)

スクリプト本文(2014.10.28修正:罫線の色を[黒]に)

//4段組みまでの段間罫を引くスクリプト
//テキストフレーム(フレームグリッド)を連結して2-4段まで段組みしている場合に、段数、段間に応じて線をひけるスクリプト。リストから入力、選択式
//2014/09/01 v1
//20140918 v2
//20141028 v3
//動かす前には、そのページ始めのテキストフレームを選択しておいてください。

//選択しているものを変数に代入する
var selObj = app.selection[0]

//座標を取得
//[左上のy座標、左上のx座標、右下のy座標、右下のx座標]という形の配列形式
var y1 = selObj.visibleBounds[0] ; //配列は0からスタートする
var x1 = selObj.visibleBounds[1] ;
var y2 = selObj.visibleBounds[2] ;
var x2 = selObj.visibleBounds[3] ;

//組み方向を求めるドロップダウン
var CLWDL = app.dialogs.add({ name:"組み方向を選択してちょんまげ" });
var tmp0 = CLWDL.dialogColumns.add();
var CLWList = tmp0.dropdowns.add({stringList: ["縦組み","横組み"], selectedIndex:0, minWidth:120});
CLWDL.show();

//段数を求めるドロップダウン
var CLNDL = app.dialogs.add({ name:"段数を選択してちょんまげ" });
var tmp1 = CLNDL.dialogColumns.add();
var CNList = tmp1.dropdowns.add({stringList: ["2","3","4"], selectedIndex:0, minWidth:120});
CLNDL.show();

//段間を求める
var clmngt=prompt("段間の幅を単位無しで入力してちょんまげ",""); //段間を入力
var clmngtline=clmngt/2
//横組み用処理
if(CLWList.selectedIndex==1){
//テキストフレームの幅
var txtfWidth=x2-x1;

//2段組み用の線
function CLM2(){
    myDoc = app.activeWindow.activePage;
    myLineh = myDoc.rectangles.add();
    myLineh.strokeWeight ="0.1mm";
    myLineh.strokeColor=app.activeDocument.swatches.itemByName("Black");//[スウォッチ]パネルの黒を指定

    myLineh.paths.item(0).entirePath = [ [x2+clmngtline,y1],[x2+clmngtline,y2] ];
    myLineh.paths.item(0).pathType=PathType.openPath;//オープンパス
}

//3段組み用の線
function CLM3(){
    myDoc = app.activeWindow.activePage;
    myLineh = myDoc.rectangles.add();
    myLineh.strokeWeight ="0.1mm";
    myLineh.strokeColor=app.activeDocument.swatches.itemByName("Black");//[スウォッチ]パネルの黒を指定

    myLineh.paths.item(0).entirePath = [ [(x2+txtfWidth)+(clmngt*1.5),y1],[(x2+txtfWidth)+(clmngt*1.5),y2] ];
    myLineh.paths.item(0).pathType=PathType.openPath;//オープンパス
}

//4段組み用の線のために座標を求める
var CLM4point=(x2+txtfWidth*2)+(clmngt*2*1.5)-clmngtline;

//4段組み用の線
function CLM4(){
    myDoc = app.activeWindow.activePage;
    myLineh = myDoc.rectangles.add();
    myLineh.strokeWeight ="0.1mm";
    myLineh.strokeColor=app.activeDocument.swatches.itemByName("Black");//[スウォッチ]パネルの黒を指定

    myLineh.paths.item(0).entirePath = [ [CLM4point,y1],[CLM4point,y2] ];
    myLineh.paths.item(0).pathType=PathType.openPath;//オープンパス
}

//2段組みの場合
if(CNList.selectedIndex==0)
{
    CLM2();
}

//3段組みの場合
if(CNList.selectedIndex==1)
{
    CLM2();
    CLM3();
}

    //3段組みの場合
    if(CNList.selectedIndex==2)
    {
        CLM2();
        CLM3();
        CLM4();
    }
}

//縦組み用処理
if(CLWList.selectedIndex==0){
//テキストフレームの高さ
var txtfHeight=y2-y1;

//縦組み2段組み用の線
function CLMV2(){
    myDoc = app.activeWindow.activePage;
    myLinev = myDoc.rectangles.add();
    myLinev.strokeWeight ="0.1mm"//線幅
    myLinev.strokeColor=app.activeDocument.swatches.itemByName("Black");//[スウォッチ]パネルの黒を指定

    myLinev.paths.item(0).entirePath = [ [x1,y2+clmngtline],[x2,y2+clmngtline] ];
    myLinev.paths.item(0).pathType=PathType.openPath;//オープンパスに。選択しやすくするため
}
//縦組み3段組み用の線
function CLMV3(){
    myDoc = app.activeWindow.activePage;
    myLinev = myDoc.rectangles.add();
    myLinev.strokeWeight ="0.1mm"//線幅
    myLinev.strokeColor=app.activeDocument.swatches.itemByName("Black");//[スウォッチ]パネルの黒を指定

    myLinev.paths.item(0).entirePath = [ [x1,(y2+txtfHeight)+(clmngt*1.5)],[x2,(y2+txtfHeight)+(clmngt*1.5)] ];
    myLinev.paths.item(0).pathType=PathType.openPath;//オープンパスに。選択しやすくするため
}

//4段組み用の線のために座標を求める
var CLMV4point=(y2+txtfHeight*2)+(clmngt*2*1.5);
//縦組み4段組み用の線
function CLMV4(){
    myDoc = app.activeWindow.activePage;
    myLinev = myDoc.rectangles.add();
    myLinev.strokeWeight ="0.1mm"//線幅
    myLinev.strokeColor=app.activeDocument.swatches.itemByName("Black");//[スウォッチ]パネルの黒を指定

    myLinev.paths.item(0).entirePath = [ [x1,CLMV4point-clmngtline],[x2,CLMV4point-clmngtline] ];
    myLinev.paths.item(0).pathType=PathType.openPath;//オープンパスに。選択しやすくするため
}

//縦組み2段組みの場合
if(CNList.selectedIndex==0)
{
    CLMV2();
}

//縦組み3段組みの場合
if(CNList.selectedIndex==1)
{
    CLMV2();
    CLMV3();
}

//縦組み4段組みの場合
if(CNList.selectedIndex==2)
{
    CLMV2();
    CLMV3();
    CLMV4();
}

}

動画

               

広告

コメントする

★マークのある項目が必須項目です。メールアドレスは公開されません。

CAPTCHA


内容を確認して、送信してください(プレビューはされません)。コメント内では<strong>、<code>、<em>のタグが使えます。

こちらもいかが

新しい投稿

【Illustrator】[グリッドに分割]を使った長方形の分割→結合→再分割

過去の投稿

【InDesign】[検索と置換]で文字をアンカー付きオブジェクトに一括置換
【InDesign】[検索と置換]で文字をアンカー付きオブジェクトに一括置換