Illustrator CS3〜CS6/CC編 選択された文字に図形をフィットさせる

今回のスクリプトは、選択された文字に図形をフィットさせるものです。テキストと図形の2つを選択してから実行します。ただし、四角形以外の図形ではスケーリングされてしまうため、図形がゆがんでしまいます。片方がテキストフレームであれば動作するようになっています。
また、2つのテキストフレームを選択してどちらかにフィットさせることもできます。


// 選択した2つのオブジェクトのうち図形を文字のサイズにフィットさせる
(function(){
var selObj = app.activeDocument.selection;
if (selObj.length != 2){
alert("文字と図形の2つを選択してください");
return;
}
var offsetLeft = 0;
var offsetTop = 0;
var offsetRight = 0;
var offsetBottom = 0;
var sel1 = 0;
var sel2 = 1;
if (sel2.typename == "TextFrame"){ // sel1が文字である事を前提にする
sel1 = 1;
sel2 = 0;
}
selObj[sel1].left = selObj[sel2].left - offsetLeft;
selObj[sel1].top = selObj[sel2].top + offsetTop;
selObj[sel1].width = selObj[sel2].width + offsetRight + offsetLeft;
selObj[sel1].height = selObj[sel2].height + offsetBottom + offsetTop;
})();

テキストに図形をフィットさせるようになっていますが、逆に図形にテキストをフィットさせる場合は、以下のように変更してください。

if (sel2.typename == "TextFrame")
 ↓
if (sel2.typename != "TextFrame")

テキストにフィットさせる際に、余白(オフセット)を指定する場合は、以下の行の数値を変更してください。

var offsetLeft = 0;
var offsetTop = 0;
var offsetRight = 0;
var offsetBottom = 0;

[サンプルをダウンロード]