見出し画像

Illustratorで同じファイル名のリンク画像を一括置換するスクリプト

スクリプトを使うと、次を一瞬で解決できます。

  • 同じリンク画像が複数配置されている

  • ひとつだけ選択している

  • ダイアログボックスで置換したいファイルを指定し、一括置換(拡張子は異なっていてもOK)

ユースケース

DTP Transitのオンラインセミナーで使うカバー画像は、使用用途ごとにアートボードを用意しています。別のイベント用に制作するとき、一括置換できるとはかどります。もちろん、大きさや位置の微調整は必要ですが…

追記(2024/10/01)

一括置換の機能は、次期バージョンのIllustrator(Illustrator 2025)にて標準機能として実装されそうです。

スクリプト

ChatGPTに依頼しました。

// 選択された配置画像のファイル名を取得し、同じ名前のリンク画像をすべて見つけ、ユーザーが選択したファイルで置換するスクリプト

// ドキュメントが開かれているかチェック
if (app.documents.length > 0) {
    var doc = app.activeDocument;
    
    // 選択されているアイテムがあるかチェック
    if (doc.selection.length > 0) {
        var selectedItem = doc.selection[0];
        
        // 選択されたアイテムが配置画像かどうかをチェック
        if (selectedItem.typename == "PlacedItem") {
            var fileName = selectedItem.file.name; // ファイル名を取得

            // 同じ名前のリンク画像をすべて見つける
            var linkedItems = doc.placedItems;
            var selectedItems = [];
            for (var i = 0; i < linkedItems.length; i++) {
                if (linkedItems[i].file.name == fileName) {
                    selectedItems.push(linkedItems[i]);
                }
            }

            // 置換するファイルをユーザーに選択させるダイアログボックスを表示
            var fileToReplace = File.openDialog("置換するファイルを選択してください");
            
            if (fileToReplace != null) {
                // 選択されたファイルで置換
                for (var j = 0; j < selectedItems.length; j++) {
                    selectedItems[j].file = fileToReplace;
                }
                // 既存の選択をクリア
                doc.selection = null;
            } else {
                alert("ファイルの選択がキャンセルされました。");
            }
        } else {
            alert("選択されたアイテムは配置画像ではありません。");
        }
    } else {
        alert("アイテムが選択されていません。");
    }
} else {
    alert("ドキュメントが開かれていません。");
}

ダウンロード

ここから先は

0字 / 1ファイル

¥ 100

期間限定!Amazon Payで支払うと抽選で
Amazonギフトカード5,000円分が当たる

定期マガジンを購読されるとサンプルファイルをダウンロードいただけます。 https://note.com/dtp_tranist/m/mebd7eab21ea5