はじめまして。
InDesignで罫線を一括で変更する方法についてアドバイスをいただきたく、投稿しました。
現在作成しているドキュメントのページ数が多いことや、2種類の罫線の太さを設定する必要があるため、セルスタイルなどを使うことが難しいと思い、Excelデータの段階であらかじめ罫線を引いておき、InDesignに配置後、罫線の太さをスクリプトで置換しようと考えました。
http://dtptemple.sblo.jp/article/110461642.html
上記に載っていたスクリプトを拝借したところ、表全体の外枠の罫線の太さは変わるのですが、中はそのままでした。
セルのみを選択すればいいのかと思い、1つのセルを選択し、スクリプトを使っても同じでした。
http://www4.tokai.or.jp/high-sea-fleet/
こちらの「組内部の罫線変更.jsx」を少し変えさせていただき、罫線の太さを拾ってこれるようにもしてみたのですが、全ての罫線の太さが変わってしまい、成功していない状態です。
どのようにすると、表内部の罫線を変更することができるでしょうか。
もしくは、スクリプト以外に効率よく2種類の罫線を引くことができる方法がありましたら、教えていただけると幸いです。
よろしくお願いします。
マシン環境:Windows 7 Professional 64bit メモリ4GB
ソフト:InDesign CS5.5 バージョン7.5.3
[18880] ミミホン◆CNCt1qGmq1 (2016/09/27 Tue 11:31) mail
表組の外枠と内部の罫の2種類の太さってことですよね?
mySel = app.selection[0];
with(mySel.cells.itemByRange(0, mySel.cells.length - 1)) {
leftEdgeStrokeWeight = rightEdgeStrokeWeight = topEdgeStrokeWeight = bottomEdgeStrokeWeight = "0.2mm";
innerRowStrokeWeight = innerColumnStrokeWeight = "0.1mm";
}
[18882] Subi (2016/09/27 Tue 12:31) web
> 表組の外枠と内部の罫の2種類の太さってことですよね?
アドバイスありがとうございます。
言葉足らずですみません…。
具体的な罫線の太さは
外枠…0.1mm
内部…0.1mmと0.25mmの罫線
です。
内部については、行・列ともに0.1mmと0.25mmの線が入り交じるイメージです。
規則性がない状態で太さの異なる線を引く必要があるため、インデザインの元々の機能で反復させることも難しいかと考えています。
[18883] ミミホン◆CNCt1qGmq1 (2016/09/27 Tue 13:57)
サンプルも規則性も無い物をどうすれば良いかなどと聞かれても答えようがないと思いますよ。
[18884] -e (2016/09/27 Tue 14:13)
完全にランダムなら、内側の線幅を配列に入れておいてMath.randomで呼び出せばいいかと。
本当に規則性がないんですか?内部のテキストによって変えたいとかじゃなくて?
[18885] Subi (2016/09/27 Tue 15:02) web
-e様、Subi様
たびたびの情報不足ですみません。
表のイメージとしては、このようなものになります。
なので、中のデータは適当なものです。
カテゴリーの境目に0.25mmの罫線を引くことになっています。
http://gazo.shitao.info/r/i/20160928115519_000.png
(掲示板に直接貼るつもりだったのですが、上手く行かなかったため、リンクで失礼します。)
[18889] ミミホン◆CNCt1qGmq1 (2016/09/28 Wed 13:49)
結合セルも使用されていますしスクリプトで自動判別は難しそうな感じですね。
ただ、読み込みデータがちゃんと太罫・細罫にわかれているようなので
dotさんのscriptを利用した方が良さそうです。
var changeWeigth = tmpChange.editValue;
の行の下に以下の行を追加。
var g=0.001;
if (sel.cells[i].leftEdgeStrokeWeight == findWeight) {
の行を以下の行に変更。
if (findWeight-g <sel.cells[i].leftEdgeStrokeWeight && sel.cells[i].leftEdgeStrokeWeight < findWeight+g) {
同様にrightEdgeStrokeWeight bottomEdgeStrokeWeight topEdgeStrokeWeightの箇所も変更すればできます。
[18893] -e (2016/09/28 Wed 16:04)
すみません。以下に修正です。
if (sel.cells[i].leftEdgeStrokeWeight == findWeigth) {
の行を以下の行に変更。
if (findWeigth-g <sel.cells[i].leftEdgeStrokeWeight && sel.cells[i].leftEdgeStrokeWeight < findWeigth+g) {
[18894] -e (2016/09/28 Wed 16:08)
> すみません。以下に修正です。
>
> if (sel.cells[i].leftEdgeStrokeWeight == findWeigth) {
> の行を以下の行に変更。
> if (findWeigth-g <sel.cells[i].leftEdgeStrokeWeight && sel.cells[i].leftEdgeStrokeWeight < findWeigth+g) {
-e様
dot様のスクリプトにこちらtop、bottom、left、rightそれぞれに入れて試したところ、無事に表内部の罫線も変更することができました。
本当にありがとうございます!!
[18895] ミミホン◆CNCt1qGmq1 (2016/09/28 Wed 18:43)
Excelを読み込んだ時点で、
太線・細線が分けられているのなら、
「表組み罫線幅の一括変更」
http://www.dtptemple.org/imgbbs/index.php?mode=article&id=17592&page=1
が該当しませんか?
[18886] dot (2016/09/27 Tue 16:43)
> Excelを読み込んだ時点で、
> 太線・細線が分けられているのなら、
>
> 「表組み罫線幅の一括変更」
> http://www.dtptemple.org/imgbbs/index.php?mode=article&id=17592&page=1
> が該当しませんか?
実はそちらの書き込みを拝見し、スクリプトを試したところ、表全体の外枠は変えることができました。
ただ、内部の罫線が変更されず、元々の太さのまま残ってしまいます…。
[18890] ミミホン◆CNCt1qGmq1 (2016/09/28 Wed 13:52)
変更されない罫線のあるセルだけ選択しても何も起こらないですか?
小数点以下が.0001とかの場合、InDesign側で表示がされませんので、
誤差分が設定されず処理できていない可能性があります。
変更されない罫線のあるセルだけ選択して、正常に動作しない場合、
スクリプトに問題がありそうです…
[18891] dot (2016/09/28 Wed 14:12)
なるほど、理解しました。
エクセルの線はポイント単位ですから、端数の差でスクリプト動かないというのはありそうです。
・いったん0mmに変更してから、0mmを0.1mmに変更するという2段階で処理する。
・環境設定で線の単位をポイントにして、0.75ptを0.283465pt(=0.1mm)に変更する。
[18892] Subi (2016/09/28 Wed 15:52)
> なるほど、理解しました。
> エクセルの線はポイント単位ですから、端数の差でスクリプト動かないというのはありそうです。
>
> ・いったん0mmに変更してから、0mmを0.1mmに変更するという2段階で処理する。
> ・環境設定で線の単位をポイントにして、0.75ptを0.283465pt(=0.1mm)に変更する。
Subi様
先ほど、-e様にアドバイスいただいた内容を反映したところ、無事に変更することができました。
最初にご助言いただき、その後も本当にありがとうございました…!
[18897] ミミホン◆CNCt1qGmq1 (2016/09/28 Wed 18:45)
> 変更されない罫線のあるセルだけ選択しても何も起こらないですか?
> 小数点以下が.0001とかの場合、InDesign側で表示がされませんので、
> 誤差分が設定されず処理できていない可能性があります。
>
> 変更されない罫線のあるセルだけ選択して、正常に動作しない場合、
> スクリプトに問題がありそうです…
dot様
変更されないセルだけを選んでも太さが変わりませんでした…。
先ほど、-e様にアドバイスいただいたものをdot様のスクリプトに反映したところ、無事に内部の罫線も変更することができました。
本当にありがとうございました…!
[18896] ミミホン◆CNCt1qGmq1 (2016/09/28 Wed 18:44)