スウォッチの置き換え

[6306]スウォッチの置き換え | 投稿者:やまかわ | 投稿日:2011/11/18(Fri) 09:40:38
10.5.8 InDesignCS3の作業で、スウォッチの置き換えをしたいのですが、読み込ます方、元ファイルも色の名前は同じですが、読み込ます方の色はCMYK%値が違います。

そうすると必然的に、名前+2になるのですが、数が多く一個一個なおしていくのが大変で何かいい方法がないでしょうか?
もしくは、スウォッチパレットのソートなどはできないでしょうか?

何か方法等がありましたらご教授の程よろしくお願いします。
» 1
[6307]Re: スウォッチの置き換え | 投稿者:Subi | 投稿日:2011/11/18(Fri) 11:53:32
こちらのスクリプトはどうでしょうか。

*http://d.hatena.ne.jp/chalcedony_htn/20100323
» 2
[6308]Re: スウォッチの置き換え | 投稿者:やまかわ | 投稿日:2011/11/18(Fri) 12:57:59
Subiさん
ありがとうございます。
早速試し、使わさせていただきます。
» 3
[6310]Re: スウォッチの置き換え | 投稿者:オメガ | 投稿日:2011/11/18(Fri) 13:00:08
ブックを使えば(同期オプションで)スウォッチの同期は出来ますけど、弊害としてページ番号が変わってしまいますね(汗)端物であればあまり支障はなさそうですし、一つずつ道に重複を直していくよりはマシですけど。

他にいい方法をご存知の方がいれば、私もぜひ教えていただきたいです。
» 4
[6311]Re: スウォッチの置き換え | 投稿者:(z-) | 投稿日:2011/11/18(Fri) 13:57:36
ちょっと書いてみました。CS3で動作確認。
オケツに「 2」の付いた同名スウォッチと結合します
色の成分は「 2」の方を使います。「 2 じゃない方」が名前として残ります。


var doc=app.activeDocument;
var myLength=doc.swatches.length;
var mySwatches=[];
for(var i=0; i<doc.swatches.length; i++){
if(doc.swatches[i].name.match(/ 2$/)){
mySwatches.push(doc.swatches[i].name.slice(0,-2));
}
}
for(i=0; i<mySwatches.length; i++){
var myswatchObj=doc.swatches.item(mySwatches[i]+" 2");
try{
myswatchObj.merge(doc.swatches.item(mySwatches[i]));
myswatchObj.name=mySwatches[i];
}
catch(e){
continue;
}
}
alert(myLength-doc.swatches.length+"個のスウォッチを結合しました");
» 5
[6315]Re: スウォッチの置き換え | 投稿者:オメガ | 投稿日:2011/11/22(Tue) 01:37:18
>(z-)さん
素敵なスクリプトありがとうございます。CS5でも動作確認できました。
まぁ、" 2"だけでなく" 3"や"のコピー"の場合もありますし、元のカラー値を使いたい場合も...とはいえ、このスクリプトは便利ですね。感謝します。

>やまかわさん、オメガさん(←自己レスです)
『ブックを使えば(同期オプションで)スウォッチの同期は出来ますけど、弊害としてページ番号が変わってしまいます』と書きましたが、間違いです。ページ番号を変えずにできました。自戒の為に手順を書いておきます。

【スウォッチ同期用ブックの作成】
1.ブックを新規作成(名前は『スウォッチ同期用』とします)→2.ブックのパネルメニューで[ブックのページ番号設定...]を選ぶ→3.ブックオプションの一番下[ページとセクション番号を自動更新]のチェックをオフ→4.ブックにドキュメントを何か一つ登録→5.ブックのパネルメニューで[同期オプション...]を選ぶ→6.[スタイルとスウォッチ]の中の[スウォッチ]以外の全ての項目をチェックオフ→7.4で登録したドキュメントをブックから削除→8.ブックを保存

【スウォッチの同期手順】
1.上記手順で作ったスウォッチ同期用ブックに、同期させたいドキュメントを登録→2.登録ドキュメントを全て開く(※)→3.親ドキュメントをスタイルソースに設定(ドキュメントアイコン左のマス)→4.ブックパネル下部の同期アイコンorパネルメニューから[ブックを同期]を実行→5.同期が完了すると「シンクロナイゼーションは正常に終了しました~」でOKを押す→6.スウォッチが正しく置き換わっているか各ドキュメントをチェック→7.問題がなければ各ドキュメントを保存→8.(次回以降のために)ブックから全てのドキュメントを削除orブックを保存せずに閉じる
(※開いておかないと同期後にドキュメントを自動保存してしまうので、スタイルソースの指定を間違えた時、『大惨事』になります。事前にバックアップをとる等、くれぐれもご注意下さい。)

・スウォッチのソートについて
[スウォッチを読み込み...]や[ブックの同期]で新規に追加されたスウォッチは名前順に並びます。新規ドキュメントを作成して未使用スウォッチを全て削除→スウォッチの読み込みor一旦保存してブックで他のドキュメントと同期させると名前順にソートされたスウォッチができます。でもそこからの使い道があるような、ないような...。

そもそもInDesignがスウォッチの読み込み時に勝手に名前変えたりせず、確認ダイアログを出せば、こんなに悩まずに済むんでしょうね。必死にスクリプト探して、見つからず自分で作って途中まで出来たところで、ブックで自己解決してしまいました。スクリプトなど考えていただいた方には大変申し訳ないです。お騒がせしました。(スクリプトでの実装はかなり難しい気がします)
» 6
[6317]Re: スウォッチの置き換え | 投稿者:(z-) | 投稿日:2011/11/22(Tue) 12:18:21
スクリプトの走り書きについては自己研磨と自己顕示の一環なのでお気になららず。

ええと、やまかわさん===オメガさんという事なのですか?(そう読めます)
» 7
[6318]Re: スウォッチの置き換え | 投稿者:オメガ | 投稿日:2011/11/22(Tue) 13:41:00
いえ、やまかわさんとは別人です。よろしくお願いします。
十分な検証もせずに間違った情報を流してしまってやまかわさんにはすみませんでした。自分も勉強させていただきました。ありがとうございます。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)