リンクをクリップボードにコピー
コピー完了
置換機能を利用して表中の塗りや線、テキストの色を変更することは可能でしょうか?
多数のドキュメントを一括して変更したいので、
置換機能が最適化と考えました。
それとも、置換機能を使って変更できるのは、オブジェクトの状態でないと無理でしょうか?
また、無理な場合、そんな処理ができるスクリプトなど、ないでしょうか?
スウォッチのカラー変更ですが、以下のような書き方で可能です。
app.activeDocument.swatches[4].colorValue = [100,0,0,0];
上記の右辺はCMYKのカラー値の配列として与えます。この例ではスウォッチの5番目の項目をC100に再指定しています。ここで名称がわかっているならば以下のように出来ます。
app.activeDocument.swatches.itemByName("変更したいカラーの名前").colorValue = [100,0,0,0];
この例では「変更したいカラーの名前」というスウォッチのカラー値をC100に変更します。この形で必要なカラーを変更するスクリプトが書けます。
あとはドキュメント毎に繰り返すためにforループを利用しましょう。
この様に基本的には単純な機能と繰り返し処理でスウォッチの変更は可能です。また、新しい項目を生成して入れ替えることも可能です。スクリプトを利用すると手作業を延々と繰り返す事から開放される事はご存知かと思います。
この機会に学ばれてはいかがでしょう。
また、スクリプトについての質問は以下のフォーラムを利用
...リンクをクリップボードにコピー
コピー完了
具体的にどういうことをやりたいのか(何をどう置換するのか)と、作業環境の情報(InDesignのバージョンなど)をお願いします。
リンクをクリップボードにコピー
コピー完了
返信ありがとうございます。
具体的には、カラー(CMYK)の表組みを単色(特色)にすることを考えています。
ただし、グレースケールなどで、濃淡が自動に調整されるのではなく、
背景色(色の入っている部分)は特色20%、罫線・表内テキストは特色100%。
といった具合に固定にしたいです。
表組みは、多くても8色ぐらいのスウォッチで管理されていますので、
8色のスウォッチを削除して、定義されたスウォッチに置換。
で、よいのですが、この作業がおびただしいファイル数を繰り返さなければならないのが、難点でした。
検索と置換の機能で対応できれば、一気にファイルを開いて”すべてのドキュメント”に対して処理できるのになぁ。
と、素人なりに考えた次第でした。
ちなみに、作業環境は、macOS10.14.4 InDesignCC2019です。
これで、お伺いしていただいたことに答えられているのかが、分かりませんがこんな感じです。
まだ回答が足りない部分などあれば、ご指摘ください。
よろしくお願いします。
リンクをクリップボードにコピー
コピー完了
まず、色を変えたい表が表スタイルやセルスタイルを適用されているか、また表内のテキストに専用の段落スタイルや文字スタイルが適用されているかを確認してください。
それでしたらそのスタイルの設定の色を特色に変えるだけですので非常に簡単です。
「スタイルの読み込み」で他のドキュメントにも反映させられます。開いているファイルに一気に反映するスクリプトも簡単に済みます。
次に簡単なのはスウォッチの置換です。こちらはスクリプトも難しくありません。
ただし、スウォッチの色がファイル内の表以外の場所に使われていて意図しないところまで色が変わってしまう恐れがあります。
また、こちらはスウォッチを変えても濃度は変更できません。
まずは上の二つを手動でやってみて、うまく行くかどうかと、どういう点がうまくいかないかを試してみてください。
その結果でどういうスクリプトが必要なのかわかります。
リンクをクリップボードにコピー
コピー完了
ご返信ありがとうございます。
まず、ご提案いただいた内容、確認させていただきました。
表には、表スタイルも、段落・文字スタイルなど、一切スタイルシート的な機能を使用していませんでした。
スウォッチの置換での対応は全て可能でした。
リスクとしてあげていただいた、表以外の場所という部分も大丈夫でした。
スウォッチを変えても濃度変更ができないことについても、
置き換える色を2種類にすることで、対応可能でした。
実際としては:
スウォッチNAME:A〜Lを、C100に置換し、
スウォッチNAME:X〜Zを、M100Y100に置換すれば完了です。
この処理を開いているinddを一気に処理したいです。
ただ、データ上にはC100とM100Y100のスウォッチが存在していないので、
その2色のスウォッチを設定するところからスタートすれば、
1ファイルにつきこの2処理を行うだけで問題なく進みました。
あとは、一気にファイルを開いて”すべてのドキュメント”に対して処理できれば、満足です。
長々と、こまごまとすいません。
何か、ご教示いただけると、助かります。
よろしくお願いします。
リンクをクリップボードにコピー
コピー完了
スウォッチのカラー変更ですが、以下のような書き方で可能です。
app.activeDocument.swatches[4].colorValue = [100,0,0,0];
上記の右辺はCMYKのカラー値の配列として与えます。この例ではスウォッチの5番目の項目をC100に再指定しています。ここで名称がわかっているならば以下のように出来ます。
app.activeDocument.swatches.itemByName("変更したいカラーの名前").colorValue = [100,0,0,0];
この例では「変更したいカラーの名前」というスウォッチのカラー値をC100に変更します。この形で必要なカラーを変更するスクリプトが書けます。
あとはドキュメント毎に繰り返すためにforループを利用しましょう。
この様に基本的には単純な機能と繰り返し処理でスウォッチの変更は可能です。また、新しい項目を生成して入れ替えることも可能です。スクリプトを利用すると手作業を延々と繰り返す事から開放される事はご存知かと思います。
この機会に学ばれてはいかがでしょう。
また、スクリプトについての質問は以下のフォーラムを利用可能です。ぜひご利用いただきたいと思います。