Skip to main content
Inspiring
March 8, 2024
Answered

【Javascript】イラレのバージョンによって動かないコピペするスクリプトについて

  • March 8, 2024
  • 1 reply
  • 626 views

お世話になります。

複数のデータにコピペするスクリプトが突然機能しなくなってしまいました。

 

まずペーストしたいデータは複数開いている状態でスクリプトを使用します。

一つのデータ(コピーしたいもの)を開いてコピーし閉じます。

そして、開いているデータ全てにペーストしていくというものです。

 

//コピー元のデータ
var initialFolderPath = '~/Documents/フォルダ';
var aFile = File.openDialog("ファイルを選択してください", "*.ai", false, initialFolderPath);

copy();

function copy() {
    app.open(aFile); //コピー元データを開く
    app.executeMenuCommand("selectall"); //全て選択
    app.copy(); //コピー
    app.activeDocument.close(SaveOptions.DONOTSAVECHANGES); //コピー元ファイルを閉じる
}

var doc = app.documents; //現在開いてあるペーストしたいデータ

for (j = 0; j < doc.length; j++) { 
    app.activeDocument = doc[j];
    app.executeMenuCommand("pasteInPlace"); //ペースト
}

 

コピー元のデータは、

レイヤー内にオブジェクトがなくてもレイヤーだけコピペする方法 

こちらで教えていただいたことを参考にして、レイヤー内にオブジェクトがないレイヤーもコピペできるようにサブレイヤーを2階層にしています。

 

イラレ2022 バージョン26.5.3と、イラレ2024 バージョン28.3では動きました。

ただイラレ2023 バージョン27.4では、コピー元のレイヤーを無視してアクティブレイヤーに全てまとめてペーストしているようでした。

 

スクリプトではなく普通にペーストするとコピー元のレイヤーにペーストしてくれるのですが、スクリプトを介すると上手くできません。

 

最近まで2023で普通に機能していたものなのですが、何故か突然出来なくなっています・・・。何か問題はありますでしょうか?

 

This topic has been closed for replies.
Correct answer nekkoneko

すみません、2023だけ「コピー元のレイヤーにペースト」がうまく機能していなかったっぽいです(多分自作の別スクリプトが悪い動きしてた)。

一度コピー元のレイヤーにペーストをオンオフやり直してみたらちゃんと動きました・・・。

ちゃんと調べる前にここに助けを求める癖やめます・・・。本当に申し訳ないです・・・。

1 reply

nekkonekoAuthorCorrect answer
Inspiring
March 8, 2024

すみません、2023だけ「コピー元のレイヤーにペースト」がうまく機能していなかったっぽいです(多分自作の別スクリプトが悪い動きしてた)。

一度コピー元のレイヤーにペーストをオンオフやり直してみたらちゃんと動きました・・・。

ちゃんと調べる前にここに助けを求める癖やめます・・・。本当に申し訳ないです・・・。

Uske_S
Community Expert
Community Expert
March 8, 2024

解決されたようで何よりです!

ご自身で原因究明できたことは素晴らしいと思いますよ。

今回はたまたま自己解決できたというだけのことですから,あまり気に病まず,気軽に書き込んでいただければ嬉しいです!(今後の情報共有にもつながりますしね)

Uske_S
nekkonekoAuthor
Inspiring
March 12, 2024

わざわざありがとうございます!

 

「コピー元のレイヤーにペースト」も原因の一つでしたが、コピペするオブジェクト内にガイドがあるのにガイドロックになっていたり、コピー先のファイルがガイドロックやガイド非表示になっているとダメっていうのも分かりました。

・・・というのも書き記しておきます。