[ 掲示板に戻る ]

記事No.5368に関するスレッドです

文字と表罫線の色置換 / hide
InDesign CS4をMac OS10.5.8で使用しています。
ドキュメント内の選択したオブジェクトに含まれる、文字の色および表の罫線の色を一括置換がしたいのです。
なんとなくスクリプトで組むのかな?と思いAppleScriptに挑戦しようとしているのですが、スクリプトに関しては素人の為、まったくわかりません。

具体的には、文字色はスウォッチで“スペック黒”の場合のみ“スペック白”にしたいのです。

わかる方がおられましたら、是非ともご教授いただきたいのでよろしくお願い致します。

No.5363 2010/11/30(Tue) 11:04:03
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.6; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

Re: 文字と表罫線の色置換 / hide
色々調べて、以下のスクリプトを作って見ましたが変更されるのは、選択したテキストフレームの塗り色で、文字色が変わってくれません。
選択したテキストフレームは取得できているようなのですが・・・。

tell application "Adobe InDesign CS4"
tell active document
repeat with i in selection
if class of i = text frame then
my chenge_color(i)
else if class of i = group then
repeat with ii in all page items of i
if class of ii = text frame then
my chenge_color(ii)
end if
end repeat
end if
end repeat
end tell
end tell

--文字色変更
to chenge_color(obj)
tell application "Adobe InDesign CS4"
tell active document
repeat with j in obj
set fill color of j to swatch "スペック白"
end repeat
end tell
end tell
end chenge_color

No.5364 2010/11/30(Tue) 13:06:43
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; ja-jp) AppleWebKit/531.22.7 (KHTML, like Gecko) Version/4.0.5 Safari/531.22.7

Re: 文字と表罫線の色置換 / 小泉 URL
このスクリプトを実行する時に「テキスト」は選択状態に無いので
selectionに含まれません。
テキストフレーム内のテキストを取得するにはparent story を使います。

なので22行目を
set fill color of parent story of j to swatch "スペック白"
にすればとりあえずテキストの色を変えられると思います(未検証)。

No.5365 2010/11/30(Tue) 15:58:23
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4

Re: 文字と表罫線の色置換 / hide
小泉様
早速、ご返答頂きありがとうございます。
ご指摘の様にスクリプトを直しましたところ、文字の色が変更されるようになりました。
ただテキストフレーム内にある、表組に含まれる文字には適用されないようです。表組の文字の指定は、別の書き方が必要なのでしょうか?

No.5366 2010/11/30(Tue) 17:44:18
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; ja-jp) AppleWebKit/531.22.7 (KHTML, like Gecko) Version/4.0.5 Safari/531.22.7

Re: 文字と表罫線の色置換 / hide
文字色の変更ですが、
set fill color of text style ranges of stories whose name of fill color is "スペック" to "スペック白"
だと、一括で置換できました!今回は、こちらで進めようと思います。
ただ、やはり表の中にあるテキストには反映されないようです・・・。

No.5367 2010/11/30(Tue) 18:30:04
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; ja-jp) AppleWebKit/531.22.7 (KHTML, like Gecko) Version/4.0.5 Safari/531.22.7

Re: 文字と表罫線の色置換 / 小泉 URL
画像のようになるべく単純なドキュメントを作って
用語説明を見ながら進めていくと分かりやすいと思います。

tell document 1 of application "Adobe InDesign CS2_J"
contents of stories
contents of text style ranges of cells of tables of text frames
object reference of text style ranges of cells of tables of text frames
end tell

なので

set fill color of text style ranges of cells of tables of text frames whose name of fill color is "スペック" to "スペック白"

これでいけると思います(未検証)。

No.5368 2010/11/30(Tue) 20:58:18
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4