選択オブジェクトに合わせてアートボードを変更する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つにまとめたり、状況に応じて処理を分けられます。

Sketchのパス周りの基本操作|基本的な描画方法からベクターツールと直線ツールの違いまで
Figmaで企業やサービスのブランドロゴやカラーをすぐ参照できるプラグイン「Brandfetch」
Figmaのレイヤー周りの基本操作|グループ化やマスク、オブジェクトのロックや表示切り替えなどのレイヤーでできること
Figmaで画面遷移図やフローチャートをつくるときに線を自動で引いてくれるプラグイン「Autoflow」
Figmaの画像書き出し方法
Figmaのプロトタイプ機能の基本|作成したデザインに実際に画面遷移を設定する
ダミーデータ・ダミー画像を登録・生成してくれるFigmaプラグインまとめ
Figmaで画像からカラーパレットを生成するプラグイン「Image Palette」
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
ウェブサイトを作る上での基本「Macの画像圧縮方法」のまとめ
Figmaでロゴやアイコンなどのビットマップ画像をベクターデータにトレースするプラグイン「Image tracer」
Gitで最初に設定しておくユーザー名とメールアドレスのグローバル設定
Alfredと1Passwordの連携をもっと便利に使いこなすための1Passwordのカテゴリ管理方法
Google Maps APIを使ってGoogle Mapsをウェブサイトに表示させる方法
Path Finder 8で動作がおかしいと思ったときにチェックすること
1Passwordのアカウントを持っていない人にもログイン情報を共有する方法
高機能なスクリーンショットアプリ「CleanShot X」
Ulyssesがテーブルの作成やフォーマットを正式にサポート!
Macを使って、打ち合わで画面共有をする前にやっておきたい設定や確認事項まとめ