WebDesigner's Memorandumウェブデザイナーの備忘録

Illustratorの「埋め込み」を行うスクリプトで、画像の埋め込みをショートカットで行う!

Illustratorの画像埋め込みをショートカットキーで行う

Illustratorに画像を配置したとき、その画像はリンク状態(パスで紐付いた状態)になっています。

それを解除してIllustratorのファイルに埋め込みたい場合は「埋め込み」ボタンを押す必要があるのですが、マウスをわざわざ画面上の方へ持っていかないといけないので面倒です。

Illustratorの埋め込み

この「埋め込み」にショートカットキーを割り当てるためにIllustratorのスクリプトを書いたので、今回はその紹介をします。

完成したコード

完成したコードは下記になります。

var selectItem = app.activeDocument.selection;

(function () {
  var selectImage = [];
  for (var i = 0; i < selectItem.length; i++){
    if (selectItem[i].constructor.name == 'PlacedItem') {
      selectImage.push(selectItem[i]);
    }
  }
  if (selectImage.length == 0) {
    alert('[埋め込み]ができる画像が選択されていません');
    return false;
  }
  for (var i = 0; i < selectImage.length; i++){
    selectImage[i].embed();
  }
  return false;
}());

あとはKeyboard Maestroなりでこのスクリプトをショートカットキーで実行できるようにすればOK。

Keyboard Maestroでスクリプトを指定する

画像を選択してショートカットキーを押せば「埋め込み」が完了します(画像が選択されていない場合はアラートが表示されます)。

コードの解説

やっている事(ポイント)は2つあります。

まず、現在選択しているオブジェクトをfor文でループし、.constructor.name'PlacedItem'のものを別の配列へ入れていること。

if (selectItem[i].constructor.name == 'PlacedItem') {
}

PlacedItemはリンクで配置されているもので、この条件分岐によって今選択しているオブジェクトの中に、リンク画像があるかどうか選別しています(リンク画像であればselectImage配列へプッシュする)。

次に、画像の埋め込み自体は.embed()だけで済むので、先ほど選別したselectImage配列をもう一度for文でループして、中のオブジェクトに対して埋め込み処理をしていけば完成です。

for (var i = 0; i < selectImage.length; i++){
  selectImage[i].embed();
}

あと、途中にselectImage配列がカラだった場合にアラートを出して終了する条件分岐も入れていますが、これは正直あってもなくても問題はありません。
念のためのおまけで付けました。

「埋め込みボタンなんてクリックすればいいだけじゃないか」と思うかもしれませんが、こういうのも積み重ねです。
少しでもラクに制作ができるように、こういったスクリプトもちょくちょく書けるようになりたいですね。

著者について

プロフィール画像

サイトウ マサカズ@31mskz10

1997年生まれ。2016年から専門学校でデザインについて勉強。卒業後は神戸の制作会社「N'sCreates」にウェブデザイナーとして入社。このブログでは自分の備忘録も兼ねて、ウェブに関する記事や制作環境を効率的に行うための記事を書いています。

Twitterをフォロー Facebookでいいね