文字と表罫線の色置換

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

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

わかる方がおられましたら、是非ともご教授いただきたいのでよろしくお願い致します。
» 1
[5364]Re: 文字と表罫線の色置換 | 投稿者:hide | 投稿日:2010/11/30(Tue) 13:06:43
色々調べて、以下のスクリプトを作って見ましたが変更されるのは、選択したテキストフレームの塗り色で、文字色が変わってくれません。
選択したテキストフレームは取得できているようなのですが・・・。

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
» 2
[5365]Re: 文字と表罫線の色置換 | 投稿者:小泉 | 投稿日:2010/11/30(Tue) 15:58:23
このスクリプトを実行する時に「テキスト」は選択状態に無いので
selectionに含まれません。
テキストフレーム内のテキストを取得するにはparent story を使います。

なので22行目を
set fill color of parent story of j to swatch "スペック白"
にすればとりあえずテキストの色を変えられると思います(未検証)。
» 3
[5366]Re: 文字と表罫線の色置換 | 投稿者:hide | 投稿日:2010/11/30(Tue) 17:44:18
小泉様
早速、ご返答頂きありがとうございます。
ご指摘の様にスクリプトを直しましたところ、文字の色が変更されるようになりました。
ただテキストフレーム内にある、表組に含まれる文字には適用されないようです。表組の文字の指定は、別の書き方が必要なのでしょうか?
» 4
[5367]Re: 文字と表罫線の色置換 | 投稿者:hide | 投稿日:2010/11/30(Tue) 18:30:04
文字色の変更ですが、
set fill color of text style ranges of stories whose name of fill color is "スペック" to "スペック白"
だと、一括で置換できました!今回は、こちらで進めようと思います。
ただ、やはり表の中にあるテキストには反映されないようです・・・。
» 5
[5368]Re: 文字と表罫線の色置換 | 投稿者:小泉 | 投稿日:2010/11/30(Tue) 20:58:18
画像のようになるべく単純なドキュメントを作って
用語説明を見ながら進めていくと分かりやすいと思います。

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 "スペック白"

これでいけると思います(未検証)。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)