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