忍者ブログ

ぼんぷろぐ

InDesign、イラレ、フォトショ(CS6 Win)の勉強中。。。(旧まとめいみブログ)

[InDesign]
フレームグリッドではグリッドフォーマットを適用せずにペーストするスクリプト

inDesignのフレームグリッドは世間でどういう使われ方してるんだろう。

自分が使ってる限りだと、段組みで行が完璧に揃うのは便利。というかこれだけのためにプレーンテキストフレームじゃなくフレームグリッドを使わざるを得ない。

でもグリッドフォーマットは有効な使い道を思い浮かばないどころか、勝手に適用されて迷惑な機能でしかない。書式は基本的に段落スタイルで制御したいものだもん。世の中にはグリッドフォーマットを便利に使いこなしてる人もいるんだろうか。もしかしたら別のソフトでフレームで書式を決めるのが主流のがあって、そこからindesignに移行してきた人向けなのかなあ…と思えるような取ってつけた感があります。

てなわけで、「ペーストするとき、そこがフレームグリッド内なら『フレームグリッドを適用せずにペースト』を、そうでなければ普通にペーストするスクリプト」を作って、Ctrl+Vに登録することにしました。

使い方

Scripts Panelフォルダに下のスクリプトをぶち込んで、キーボードショートカットのカスタマイズでそのスクリプトにキーを割り当てます。このとき、「内容」をデフォルトじゃなく「テキスト」にします。そうしないとテキスト編集中以外にコマンドを実行したらエラーになります。

以下ソース

//(2014.07.24 表のセルを選択してた場合にエラーが出てたのを修正)

var Sel0=app.activeDocument.selection[0];
if(Sel0.hasOwnProperty("parentStory")  && Sel0.parentStory.storyPreferences.frameType == FrameTypes.FRAME_GRID_TYPE) {
    if(doMA('$ID/Paste Without Grid Format')==false) doMA('$ID/Paste');
} else {
    doMA('$ID/Paste');
}

function doMA(MAname){//メニューアクションが使えるか調べて使えるなら実行してture使えないならfalseを返す関数
    if (app.menuActions.item(MAname).enabled) {
        app.menuActions.item(MAname).invoke();
        return true;
    } else {
        return false;
    }
}
PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

プロフィール

あるふぁ(仮)
InDesignで新聞組版のようなことをしてる人です。

InDesignスクリプトについて

つくったInDesignスクリプトのまとめ

twitter

フリーエリア