表のセルの線幅を検索をして置換える方法

[4120]表のセルの線幅を検索をして置換える方法 | 投稿者:ちほ | 投稿日:2010/02/02(Tue) 20:51:24
いつもお世話になっております。
MacOSX10.5.8のInDesignCS4の質問です。

表のセルの線幅を検索をして置換える事はできないのでしょうか?

例えば、
単位はポイント
『0.808pt→0.5pt』『1.615pt→1pt
と指定をした線幅のみ変更をするといったものです。

ただ今一つ一つ手作業でしていますが、何十点も修正をしないといけなく、さらに修正漏れがありそうでとても困っています。

似た様な質問をいくつか見つける事はできたのですが、スクリプトが載っているリンク先がすでに切れていたり、
スクリプトを上手く活用できず、エラーばかりで使う事が出来ませんでした...

変換をする事が出来る方法やスクリプトを知っている方や、表自体にかけるスクリプトの作り方が載っているHPを知っている方がいましたら、教えて下さい。

よろしくお願い致します。
» 1
[4122]Re: 表のセルの線幅を検索をして置換える方法 | 投稿者:mg | 投稿日:2010/02/03(Wed) 00:42:36
>表自体にかけるスクリプトの作り方が載っているHP

amiza_retさんのブログで表組み関係のjsのことがまとめられてます。
http://ameblo.jp/amiza-ret/entry-10287937991.html


べたな書き方ですが、こんなので参考になりますでしょうか?
表を選択して実行。細かいエラー処理はしてません。
var sel=app.selection[0];

changeCellStrokeWeight (sel, 0.808, 0.5);
changeCellStrokeWeight (sel, 1.615, 1);

function changeCellStrokeWeight(sel, find , rep){
 var cell=sel.cells;
 for(var i=0; i< cell.length; i++){
  var t=cell[i].topEdgeStrokeWeight;
  var r=cell[i].rightEdgeStrokeWeight;
  var b=cell[i].bottomEdgeStrokeWeight;
  var l=cell[i].leftEdgeStrokeWeight;
 if(t==find){cell[i].topEdgeStrokeWeight=rep;}
 if(r==find){cell[i].rightEdgeStrokeWeight=rep;}
 if(b==find){cell[i].bottomEdgeStrokeWeight=rep;}
 if(l==find){cell[i].leftEdgeStrokeWeight=rep;}
 }
}
» 2
[4124]Re: 表のセルの線幅を検索をして置換える方法 | 投稿者:ちほ | 投稿日:2010/02/03(Wed) 15:46:57
mg様>>

早急に返信いただき、ありがとうございます。

>amiza_retさんのブログで...
表組のjavascriptがこんなにもあるんですね><
あまりの数の多さにビックリしました。
もっと勉強をして活用できるように致します♪

>べたな書き方ですが、...
本当にありがとうございます♪
ささっと作れるなんて...感動です☆
ただ...あたしの使い方が悪のか、実効をしてもエラーも出なければ線幅も変わりませんでした。。。
そのままコピペしたのを「ExtendScripot Toolkit」でスクリプトを作成したのが悪いのでしょうか???
自動処理...奥が深いです><
頭から煙を出しながら頑張らせていただきます!!
» 3
[4125]Re: 表のセルの線幅を検索をして置換える方法 | 投稿者:mg | 投稿日:2010/02/03(Wed) 17:37:39
>そのままコピペしたのを「ExtendScripot Toolkit」でスクリプトを作成したのが悪いのでしょうか???

ESTKの左上のプルダウンメニューから「InDesign」を選んでから実行してみてください。
» 4
[4126]Re: 表のセルの線幅を検索をして置換える方法 | 投稿者:ちほ | 投稿日:2010/02/03(Wed) 20:32:10
mg様>>

度々ありがとうございます♪

>ESTKの左上のプルダウンメニューから「InDesign」を選んでから実行してみてください。
画像の用にしたのですが、表全体を選択をしても、セルを選択をしても線幅に変化はありませんでした。
そして、エラーメッセージは何も出ては来なかったです。
» 5
[4127]Re: 表のセルの線幅を検索をして置換える方法 | 投稿者:五月 貴 | 投稿日:2010/02/03(Wed) 21:18:43
横からすみません。
該当のスクリプトを"名前.jsx"と拡張子を付けて,
InDesignアプリケーションがあるフォルダ内の「Script」フォルダに保存し,InDesignで「スクリプト」パネル(パレット)を出した上で実行してみると如何でしょうか?
» 6
[4128]Re: 表のセルの線幅を検索をして置換える方法 | 投稿者:ちほ | 投稿日:2010/02/03(Wed) 21:31:50
五月 貴様>>
ありがとうございます^^
>該当のスクリプトを"名前.jsx"と拡張子を付けて...
スクリプトパレットを出してでの実行でも何も反応無しでした...
表を触らずに実行をするともちろんエラーが出るのですが、表を触った状態ではエラーも出ませんでした。
» 7
[4129]Re: 表のセルの線幅を検索をして置換える方法 | 投稿者:PICTRIX | 投稿日:2010/02/03(Wed) 22:10:26
拾った線幅を小数点以下3桁に丸める必要はないのでしょうか。。。
関係なかったらごめんなさい。
» 8
[4130]Re: 表のセルの線幅を検索をして置換える方法 | 投稿者:mg | 投稿日:2010/02/03(Wed) 22:23:32
もしかして、
ドキュメントの単位系がmm,Q,Hとかになってたりしませんか?
» 9
[4131]Re: 表のセルの線幅を検索をして置換える方法 | 投稿者:五月 貴 | 投稿日:2010/02/03(Wed) 22:44:17
数値を単位付きの文字列扱いにしないとダメとか...
» 10
[4132]Re: 表のセルの線幅を検索をして置換える方法 | 投稿者:mg | 投稿日:2010/02/03(Wed) 23:09:30
続けざまにすいません
if と var と for のシンタックスカラーが変ですね。
行頭のスペースを除去してみてもダメかな?
» 11
[4139]Re: 表のセルの線幅を検索をして置換える方法 | 投稿者:ちほ | 投稿日:2010/02/04(Thu) 20:56:50
>>五月 貴様
自分も思いましたが、単位を付けてみてもやはりダメでした...
数値をポイントで認識をするスクリプトなのでしょうか??

>>mg様
>ドキュメントの単位系がmm,Q,Hとかになってたりしませんか?
環境設定を見てましたが、全て『ポイント』になっていました。

>行頭のスペースを除去してみてもダメかな?
スペースを除去してみたら、文字に色がつきました!!
この色は意味があったのですね...
てっきり、分かりやすく自動的についてくれるだけのものかと...

スペースを除去してみましたら、無事セルの線幅を変更する事ができました♪
色々と検証をしてみた結果、結合がされている表は選択の仕方を替えてあげるとエラーもなく変更可能でした^^
あまりにの凄さと便利さに感動しております☆
本当に本当にありがとうございました<(_ _)>
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)

このページをシェア