表の行のみ結合するスクリプト

[3316]表の行のみ結合するスクリプト | 投稿者:ジンギスカン | 投稿日:2009/07/08(Wed) 00:02:12
Mac10.5.6 indesign CS3で表の作成をしています。
CS2を使っていたときに「表の一部分を選択し、行のみ結合するスクリプト」をどこかから頂きました。

3行×4列 選択

スクリプト実行

4列 になる

CS2のそのスクリプトがあれば良かったのですが、再インストールしてから使わなかったので無くなってしまいました。。。スクリプト名は「Merge○○○」だったような気がします。
このようなスクリプトを作っていらっしゃる方をご存じでしたら教えて頂きたいです。
よろしくお願い致します。
» 1
[3318]Re: 表の行のみ結合するスクリプト | 投稿者:いき | 投稿日:2009/07/08(Wed) 02:05:44
CS3を普通にインストールしたなら、Javascriptであれば

MergeTableCells.jsx

というサンプルが添付されていると思います。
それを少し改変すればお望みのスクリプトになります。
» 2
[3320]Re: 表の行のみ結合するスクリプト | 投稿者:いき | 投稿日:2009/07/08(Wed) 10:18:27
> CS3を普通にインストールしたなら、
ごめんなさい、コンテンツDVDの中でした(^^;
» 3
[3322]Re: 表の行のみ結合するスクリプト | 投稿者:いき | 投稿日:2009/07/08(Wed) 12:27:23
確認です。
>3行×4列 選択
>↓
>スクリプト実行
>↓
>4列 になる
これって、1行×4列になるという意味ですよね?
そうなら、
http://kstation2.blog10.fc2.com/blog-entry-361.html
でいかがでしょうか。
» 4
[3325]Re: 表の行のみ結合するスクリプト | 投稿者:ジンギスカン | 投稿日:2009/07/08(Wed) 13:17:03
いき様

ありがとうございます。HPを拝見させて頂きました。
当方お恥ずかしいことですが、スクリプトに関しては全くの無知なのです。。。申し訳ございません。

画像のような結果になるスクリプトがあると嬉しいのですが。。。
attached image
» 5
[3326]Re: 表の行のみ結合するスクリプト | 投稿者:いき | 投稿日:2009/07/08(Wed) 13:21:04
それだったら私が書いた奴がそのまま使えますよ。
表全体を選択して実行してください。

【追記】自ブログに誘導するのも気が引けるので、追記しておきます。



(function (){
var tableObj = app.activeDocument.selection[0];
for (var i=0; i<tableObj.columns.length; i++)
{
var cell1 = tableObj.columns[i].cells[0];
var cell2 = tableObj.columns[i];
cell1.merge(cell2);
}
}) ();
» 6
[3328]Re: 表の行のみ結合するスクリプト | 投稿者:ジンギスカン | 投稿日:2009/07/09(Thu) 11:07:53
いき様

ご親切に本当にありがとうございます!!!
Macでも大丈夫でしょうか?これが出来れば作業効率もかなりあがるので助かります。
スクリプト実行の仕方すらわからないので、週末調べてやってみます。
またご報告します。
» 7
[3333]Re: 表の行のみ結合するスクリプト | 投稿者:ジンギスカン | 投稿日:2009/07/13(Mon) 15:02:34
スクリプトを試してみました。
結合のない表では、選択した列が綺麗に結合されました。
ありがとうございます。

すでに結合した部分がある表では、表の一部分を選択しても行は全て結合されてしまいました。
(画像ではブルーを選択した結果、下図のようになりました)

大変あつかましいお話ですが、ブルーの範囲だけ行結合・・・というのは難しいでしょうか?
attached image
» 8
[3334]Re: 表の行のみ結合するスクリプト | 投稿者:梅花藻 | 投稿日:2009/07/13(Mon) 16:56:51
いきさんのスクリプトをちょっと(でもないか……)弄ってみました。
動作チェックが十分でないので、うまく動かない場合にはゴメンナサイ。

(function (){
   var tableObj = app.activeDocument.selection[0];
   for (var i=tableObj.cells.length-2; i>=0; i--){
       c1 = tableObj.cells[i].name.split(":");
       for (var j=tableObj.cells.length-1;j>i;j-- ){
           c2 = tableObj.cells[j].name.split(":");
           if (c1[0] == c2[0])    tableObj.cells[i].merge(tableObj.cells[j]);
       }
   }
}) ();
» 9
[3379]Re: 表の行のみ結合するスクリプト | 投稿者:ジンギスカン | 投稿日:2009/07/16(Thu) 16:10:30
梅花藻様

返信が遅くなり申し訳ありません。

スクリプトを試してみました。
バッチリ!!!でした。
仕事が5倍くらい速くできそうです。スクリプトって改めてすごいなあと思いました。大変感謝しております。本当にありがとうございます。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)

このページをシェア