忍者ブログ

ぼんぷろぐ

InDesignとかイラレとかのスクリプトよもやま話

新しいブログに引っ越しました。

こちらのブログはもう更新しませんが、コメント欄は生きてますので疑問、ご指摘などありましたらどうぞ。

[イラレ]
AutoHotkeyでイラレのスクリプトにショートカットキーを割り当ててみる(1)

※昨日ぐぐって見つけたばかりのソフトについて知ったようなことを書きますのであまりあてにしないでね

AutoHotkeyは、独自の言語で記述したスクリプトに従って、特定のキーが押された時などに様々な処理を自動実行できるWindows用のフリーソフトです。wikiなどには、AutoHotkeyとAutoHotkey_Lを区別して書いてあるのですが、現在は統合されているようです。最新版のAutoHotkeyをインストールすればAutoHotkey_Lの機能も使えます。

AutoHotkey(公式、英語)
AutoHotkey Wiki(日本語Wiki)

マイドキュメントにAutohotkey.ahkという名前のスクリプトを記述したファイルを置いて、AutoHotkey.exeを起動するというのが基本的な使い方になります。スクリプトを更新したら、タスクトレイの「H」アイコンを右クリックして「Reload This Script」を選びます。

ではではイラレスクリプト(jsx)をキーボードショートカットで実行するスクリプトを書いてみましょう。

1.イラレのウィンドウがアクティブなときだけ有効にする

#IfWinActive ahk_class illustrator
1行目にこのおまじないを書いておくと、それ以降の行は(次の#If…が出てくるまで)アクティブなウィンドウのクラス名がillustratorのときのみ実行されるようになる。

2.ホットキーを指定

「(キーを指定する文字列)::」から「Return」までの間に、なんらかの処理を記述することで、そのキーが押された時にその処理が実行されるようになる。たとえば、Ctrl+Shift+Aが押されたとき、猫が「にゃー」と鳴くには、次のように書く。

^+a::
    MsgBox , 0, 猫, にゃー,
Return

ここで「+」はShift、「^」はCtrlキーを表す。その他のキー指定方法はこちらhttp://ahkwiki.net/Hotkeys)を参照 。Windowsキーやテンキーも使える。

3.イラレをコントロールするCOMオブジェクトを作って、スクリプトを実行する

app:=ComObjCreate("Illustrator.Application.CS6")
app.DoJavaScriptFile("C:\Program Files\Adobe\Adobe Illustrator CS6 (64 Bit)\Presets\ja_JP\スクリプト\ドキュメントを PDF として保存.jsx")

おそらく上の行は「app:=ComObjCreate("Illustrator.Application")」だけで良いと思うのですが、うちの環境ではなぜか「.CS6」をつけないと動きませんでした。使用してるバージョンに合わせて適宜書き換えて下さい。
言うまでもありませんが、下の行は実行したいスクリプトのパスに書き換えて下さい。

そもそもイラレはExtendScript(javascript)以外にVBスクリプトにも対応しています。VBスクリプトはvbsファイルのダブルクリックで実行でき、VBスクリプトからExtendScriptを呼び出すこともできるので、別にAutoHotkeyでなくても、適当なランチャーソフトやホットキーソフトでもイラレスクリプトは実行できるのです。
私がAutoHotkeyが良いと思ったのは、このようにCOMオブジェクトに対応しているため、vbsファイルを経由する必要がないこと、および次回書く?ようなちょっと複雑な処理もできることです。


ここまでをまとめるとこんな感じ(;以降はコメントです)

#IfWinActive ahk_class illustrator
;Ctrl+Shift+A
^+a::
    app:=ComObjActive("Illustrator.Application.CS6")
    app.DoJavaScriptFile("スクリプトのフルパス1")
Return
;Ctrl+Shift+Q
^+q::
    app:=ComObjActive("Illustrator.Application.CS6")
    app.DoJavaScriptFile("スクリプトのフルパス2")
Return


次回は
・「プレーンテキストとしてペースト」を実装
・簡単なイラレ上の処理をjsxファイルなしで実行
・テキスト編集中かどうかで分岐することで、「Shift+Z」みたいなのもショートカットキーに使う
という話が書けたらイイナ!
PR

コメント

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

プロフィール

kawamoto_α
(あるふぁ(仮))


InDesignで新聞組版のようなことをしています。

ツイッタ

※ブラウザによっては当ブログからDLしたzipファイルが拡張子なしになることがあるようですが、.zipを補って開いてください。



イラレ用トーンカーブスクリプト(¥1500)



クロソイド式角丸長方形スクリプト(¥500)
Illustrator用
InDesign用



イラレスクリプトをキーボードショートカットで実行するやつ(Win用)