またまた、過去にいろいろと探って集めて作った、表関連のInDesign Javascript。
先日と同様に動かないのもあるかも…です。
基本的に今までの表関連のJavascriptはInDesign CS2で動作確認しております(た、たぶん…)
これらのJavascriptに関して、一切の責任は負えませんので、ご了承ください。
(参考程度として考えて頂けるとありがたい。しかし、Javascript関連のネタが尽きてきたなぁ…(笑))
//●セルをマージする
//あらかじめ、ドキュメントを作成しておいて下さい。
//テキストフレームを作成。
//テキストフレームの位置を設定。
//テーブルを作成。
//列と行を設定。
//セルをマージ。
//テキストフレーム作成
txtObj = app.activeDocument.textFrames.add();
//テキストフレームの位置 [y,x,]
txtObj.visibleBounds = ["20mm","20mm","110mm","190mm"];
//テーブルを追加
tblObj = txtObj.tables.add();
//行数と列数 column=列 Row=行
tblObj.columnCount = 4
tblObj.bodyRowCount = 8;
//全セルの列幅設定
tblObj.width = "150mm"; //よこ
//全セルの行高さ設定
tblObj.height = "70mm"; //たて
sel = app.activeDocument.textFrames;
sel[0].tables[0].cells[12].merge(sel[0].tables[0].cells[16]); //縦のセルにマージ
sel[0].tables[0].cells[8].merge(sel[0].tables[0].cells[11]); //横のセルにマージ
sel[0].tables[0].cells[1].merge(sel[0].tables[0].cells[2]); //横のセルにマージ
//●行を追加する
//あらかじめ、ドキュメントを作成しておいて下さい。
//テキストフレームを作成。
//テキストフレームの位置を設定。
//テーブルを作成。
//列と行(2行)を設定。
//行を1行追加。結果3行になる。
//テキストフレーム作成
txtObj = app.activeDocument.textFrames.add();
//テキストフレームの位置 [y,x,]
txtObj.visibleBounds = ["20mm","20mm","110mm","190mm"];
//テーブルを追加
tblObj = txtObj.tables.add();
//行数と列数 column=列 Row=行
tblObj.columnCount = 4
tblObj.bodyRowCount = 2;
//全セルの列幅設定
tblObj.width = "150mm"; //よこ
//全セルの行高さ設定
tblObj.height = "40mm"; //たて
sel = app.activeDocument.textFrames;
//行追加
sel[0].tables[0].rows.add();
//●文字スタイルをかける
//あらかじめ、ドキュメントを作成しておいて下さい。
//あらかじめ、文字スタイルを作成しておいて下さい。この例は「新ゴM-20q」
//テキストフレームを作成。
//テキストフレームの位置を設定。
//テーブルを作成。
//列と行を設定。
//文字入力。
//セルの3番目(0から始まるので、[2]となる)にスタイルをかける。
//テキストフレーム作成
txtObj = app.activeDocument.textFrames.add();
//テキストフレームの位置 [y,x,]
txtObj.visibleBounds = ["20mm","20mm","110mm","190mm"];
//テーブルを追加
tblObj = txtObj.tables.add();
//行数と列数 column=列 Row=行
tblObj.columnCount = 4
tblObj.bodyRowCount = 2;
//全セルの列幅設定
tblObj.width = "150mm"; //よこ
//全セルの行高さ設定
tblObj.height = "40mm"; //たて
sel = app.activeDocument.textFrames;
sel[0].tables[0].contents = ["1","あ","いうえ","お"];
//文字スタイルをかける
sel[0].tables[0].cells[2].texts.item(0).appliedCharacterStyle= "新ゴM-20q";
//●ドキュメント内のテーブル数を取得する
//ドキュメントをアクティブ(最前面にする)にします。
//テーブル数
iCnt = 0;
//最前面のドキュメントを取得
objDoc = app.activeDocument;
//ドキュメント内のテキストフレーム数分繰り返し
for ( i = 0; i < objDoc.textFrames.length; i++ ){
//テキストフレームを取得
objTxt = objDoc.textFrames[i];
//テキストフレーム内のテーブル数を取得
iCnt = iCnt + objTxt.tables.length;
}
alert("テーブル数:" + iCnt);
//●テーブルのセル数、列数、行数を取得する
//ドキュメントをアクティブ(最前面にする)にします。
//最前面のドキュメントを取得
objDoc = app.activeDocument;
//ドキュメント内のテキストフレーム数分繰り返し
for ( i = 0; i < objDoc.textFrames.length; i++ ){
//テキストフレームを取得
objTxt = objDoc.textFrames[i];
//テキストフレーム内のテーブル数分繰り返し
for ( n = 0; n < objTxt.tables.length; n++ ){
//テーブルオブジェクトを取得
objTable = objTxt.tables[n];
//全セル数
cellCnt = objTable.cells.length;
//列数
columnCnt = objTable.columns.length;
//行数
rowCnt = objTable.rows.length;
alert("全セル数:" + cellCnt + "/列数:" + columnCnt + "/行数:" + rowCnt);
}
}
//●セルの横結合数を取得する
//ドキュメントをアクティブ(最前面にする)にします。
//最前面のドキュメントを取得
objDoc = app.activeDocument;
//ドキュメント内のテキストフレーム数分繰り返し
for ( i = 0; i < objDoc.textFrames.length; i++ ){
//テキストフレームを取得
objTxt = objDoc.textFrames[i];
//テキストフレーム内のテーブル数分繰り返し
for ( n = 0; n < objTxt.tables.length; n++ ){
//テーブルオブジェクトを取得
objTable = objTxt.tables[n];
//全セル数
cellCnt = objTable.cells.length;
alert("全セル数:" + cellCnt);
cell = 0;
while ( cell < cellCnt ) {
alert("セル[" + cell +"] 横結合数:" + objTable.cells[cell].columnSpan);
cell++;
}
}
}
//●セルの縦結合数を取得する
//ドキュメントをアクティブ(最前面にする)にします。
//最前面のドキュメントを取得
objDoc = app.activeDocument;
//ドキュメント内のテキストフレーム数分繰り返し
for ( i = 0; i < objDoc.textFrames.length; i++ ){
//テキストフレームを取得
objTxt = objDoc.textFrames[i];
//テキストフレーム内のテーブル数分繰り返し
for ( n = 0; n < objTxt.tables.length; n++ ){
//テーブルオブジェクトを取得
objTable = objTxt.tables[n];
//全セル数
cellCnt = objTable.cells.length;
alert("全セル数:" + cellCnt);
cell = 0;
while ( cell < cellCnt ) {
alert("セル[" + cell +"] 縦結合数:" + objTable.cells[cell].rowSpan);
cell++;
}
}
}