選択オブジェクトに合わせてアートボードを変更するillustratorのスクリプト

illustratorを使っていると、「アートボードを選択したオブジェクトサイズに合わせたい」ときがあります。

これだけなら[オブジェクト]→[アートボード]→[選択オブジェクトに合わせる]で済むのですが、「オブジェクトサイズに合わせるときに、指定ピクセルだけ余白をあけたい」ときもあります。
また、オブジェクト全体に合わせてアートボードサイズを変えたいときもあります。
というわけでスクリプトの出番です。
やりたかったこと
やりたかったことを改めてまとめると下記のようになります。
- オブジェクトを選択していたら選択オブジェクトにアートボードサイズを合わせる
- オブジェクトを選択していなかったらオブジェクト全体にアートボードサイズを合わせる
- スクリプトを実行するとダイアログボックスが出てきて、上下の余白と左右の余白のピクセルを指定できる
- 0pxにすると、オブジェクトとアートボードがピッタリ合う
完成したコード
完成したコードは下記になります。
(function () {
var box = new Window('dialog', "周りの余白指定(px)");
box.panel = box.add('panel', undefined, '');
box.panel.group1 = box.panel.add('group', undefined);
box.panel.group1.orientation = 'row';
box.panel_text1 = box.panel.group1.add('statictext', undefined, '左右の余白 :');
box.panel_input1 = box.panel.group1.add('edittext', [0, 0, 40, 22], '0');
box.panel_input1.active = true;
box.panel.group2 = box.panel.add('group', undefined);
box.panel.group2.orientation = 'row';
box.panel_text2 = box.panel.group2.add('statictext', undefined, '上下の余白 :');
box.panel_input2 = box.panel.group2.add('edittext', [0, 0, 40, 22], '0');
box.group = box.add('group', undefined);
box.group.orientation = 'row';
box.group.closeBtn = box.group.add('button', undefined, 'キャンセル', { name: 'cancel' });
box.group.actionBtn = box.group.add('button', undefined, 'OK', { name: 'action' });
box.group.closeBtn.onClick = function () {
box.close();
}
box.group.actionBtn.onClick = function () {
changeArtboard([box.panel_input1.text], [box.panel_input2.text]);
box.close();
}
box.center();
box.show();
}());
function changeArtboard(leftRight, topBottom) {
var activeDoc = app.activeDocument;
var selection;
var artboardLeftRight = leftRight * 2;
var artboardTopBottom = topBottom * 2;
var artboardBounds;
app.executeMenuCommand('group');
if (selection != '') {
selection = activeDoc.selection;
artboardBounds = selection[0].visibleBounds;
} else {
artboardBounds = activeDoc.visibleBounds;
}
artboardBounds[0] -= artboardLeftRight;
artboardBounds[1] += artboardTopBottom;
artboardBounds[2] += artboardLeftRight;
artboardBounds[3] -= artboardTopBottom;
activeDoc.artboards[0].artboardRect = artboardBounds;
app.executeMenuCommand('ungroup');
return false;
}あとはKeyboard Maestroなりでこのスクリプトをショートカットキーで実行できるようにすれば完了です。

実行すると、下の画像のようなダイアログボックスが表示され、左右の余白と上下の余白が設定できます。

デフォルトは「0」なので余白が不要な場合はenterを押せばすぐ実行されます。
このように、スクリプトを使えばショートカットキーを1つにまとめたり、状況に応じて処理を分けられます。

Figmaでデザインを作成するときの基本的な操作方法
Figmaのパス周りの基本操作|基本的な描画方法からペンツールと直線ツールの細かい違いまで
Illustratorの「埋め込み」を行うスクリプトで、画像の埋め込みをショートカットで行う!
Figmaの画像周りの基本操作|画像の追加方法や色補正、切り抜き方法まで
Sketchの画像周りの基本操作|画像の追加方法や色補正、切り抜き方法まで
Figmaで画面遷移図やフローチャートをつくるときに線を自動で引いてくれるプラグイン「Autoflow」
Figmaプラグインのインストール方法とその管理方法
FigmaでAdobe XDやSketchのデータを開く方法
Illustratorで文字をオブジェクトの上下中央揃えにする2つの方法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Alfred 4のファイル検索時にプレビュー表示ができるPreviewsの設定項目まとめ
AlfredのTerminal機能を使って、すばやくターミナルコマンドを実行する
Nuxt.jsの基本と最初のセットアップ「プロジェクトの作成と起動をするまでの流れ」
iOSシミュレーターを使ってWebサイトを開発者ツールを見ながら実機表示で開発する方法
軽量で高速なターミナルエミュレーター「Ghostty」の設定方法
Hazelを使ってMacのファイル整理を自動化する
macOS Mojaveのログイン周りの設定まとめ(ゲストユーザのオフ、ログイン時の壁紙変更)
Figma × Keyboard Maestroでどこまで効率化できる?
【前編】Sync & Liveで取り回す Illustrator でのデータ作り!!CSS Nite in KOBE, Vol.26
Keyboard Maestroを使ってDropboxの「同期の無視」を簡単にできるようにする