見出し画像

Keyboard MaestroでIllustratorの「プレビュー」チェックを自動で入れる

Illustratorでちょっとした効果(ドロップシャドウやぼかしなど)を付けたい時にダイアログが開きますが、その時、「プレビュー」という項目にチェックを入れるのが地味に面倒です。

今回は、この「プレビュー」を自動でチェックを入れるマクロを作ってみましょう。

今回作成するマクロ

今回作成するマクロはIllustratorのプレビューチェックを自動的にオンにしてくれるマクロです。

今までのマクロに比べると難易度は少し上がりますが基本的な考え方は変わりません。まずは毎回恒例の「どんな状況で」「何をしたら」「どうなる」の3つの要素を整理しましょう。

どんな状況で→Illustratorがアクティブな時
何をしたら(何が起きたら)→フォーカスするウインドウのタイトルが変わったら
どうなる→プレビューがあるか確認して、あればプレビュー部分をクリックしてチェックを入れる

今回は「どうなる」の部分が複雑ですが、まずは作っていきましょう。

1.グループの作成

まずはマクロを保存するグループの作成から。
グループの新規作成後「Available in all applications(全てのアプリケーションで実行)」をクリックして「Available in these applications(特定のアプリケーションで実行)」に変更します。
変更すると緑色のプラスボタンが表示されるので、それをクリックし、Illustratorを選択します。

これでまずは『どんな状況で→Illustratorがアクティブな時』はクリアです。

2.マクロのトリガー設定

次にグループ内にマクロを作成して、トリガーの設定をします。
トリガーは「Focused Window Trigger」というフォーカスしたウインドウに関するものを選択します。初めて使うトリガーですね。

設定は「The focused window title changes」にします。

「window title」というのはIllustratorのダイアログの上に出てくる「ドロップシャドウ」や「ぼかし」等の効果名の部分の事です。
この設定をする事によってダイアログが表示される度に、ウインドウタイトルの変更を感知してマクロが発火されます。

これで『何をしたら(何が起きたら)→フォーカスするウインドウのタイトルが変わったら』の部分もクリアですね。

3-1.マクロのアクション設定(使用するアクションの整理)

アクションの設定ですが、今回は幾つかのアクションを組み合わせて使います。

・if Then Else(条件分岐を行う)
・Click at Found Image(画像を探してその部分をクリックする)
・Type a Keystroke(キーをタイプする)

考え方としては、まずif Then Elseを使用してプレビューチェックがあるかどうかの条件分岐を行います。
プレビューチェックがあれば、Click at Found Imageでプレビューチェックをクリックして、Type a KeystrokeでTabキーを3回押します。

何故3回Tabを押すのかと言いますと、プレビューチェックをクリックするとプレビューの部分にフォーカスが当たってしまいます。
理想としては、プレビューにチェックが入ったあと、本来の最初にフォーカスが当たる一番上の項目にフォーカスを持ってきたいですよね?

Illustratorに限らず、macでダイアログの項目移動を行いたい時はTabキーを押せば次の項目に移動するので、
1回目のTab→「キャンセル」にフォーカス
2回目のTab→「完了」にフォーカス
3回目のTab→一番の項目にフォーカス
と、最初の項目にフォーカスを持っていくことが出来ます。

少し長くなりましたが、まずはIf Then Elseの設定からしてみましょう。

3-2.マクロのアクション設定(条件分岐)

まずは「If Then Else」アクションをマクロに登録しましょう。

その後、「New Condition」と書かれている緑のプラスボタンをクリックして「Found Image Condition」を選択します。

このConditionというのが、条件になります。
この条件に対してtrue(真)かfalse(偽)か判断してその結果に応じてtrueなら「execute the following actions」内のアクションを実行させ、falseなら「otherwise execute the following actions」を実行させます。

今回は画像を元にして画面上にそれと一致する場所が見つかるかどうかを条件に設定しましたが、他にも「アプリの状態」や「クリップボードの状態」を条件に設定する事が出来ます。

「Found Image Condition」を選択すると、次にどの画像を元にして探すのかという設定をする必要があります。
Illustratorのダイアログを開いて、プレビューチェックのスクリーンショット(Command + Shift + 4)を撮影します。
この時、Controlキーを押しながら撮影を行うと、スクリーンショットをクリップボードに保存する事ができます。
そして、Keyboard Maestroの画面に戻って「If Then Elseのeの隣にある四角い枠」をクリックしてCommand + Vでペーストします。

四角い枠内に撮影したスクリーンショットが反映されれば成功です。

念の為、Keyboard Maestroがきちんと「プレビュー」を見つけてくれるのか確認してみましょう。

Conditionを設定した隣に灰色の文字で(currently false)と表示されているのが確認出来ますか?
この表示が、今現在マクロが発火した時にどちらの結果が返ってくるかを表示させたものになります。
Illustratorのダイアログボックスを表示させてプレビューチェックを画面上に表示させた時に、この表示が(currently true)となればきちんと認識されています。

もし、認識されない場合はスクリーンショットを撮影し直すか、conditionの設定の「e」マークのバーを調整してみると治ると思います。

このバーは左に行けばいくほど画像通り鮮明に判断し、右に行けばいくほど少し曖昧に判断してくれます。
左に設定しすぎるとうまく反応してくれなかったり、右に設定しすぎると関係ない部分に引っかかる事がありますのでいい具合に調整しましょう。

3-3.マクロのアクション設定(クリック設定)

画像が見つかった時(true)の時に画像をクリックさせたいので、「Click at Found Image」をIf Then Elseの「execute the following actions(true側)」にドラッグアンドドロップしましょう。

アクションの設定部分を見てみると、先程のIf Then Elseの「Found Image Condition」と何となく似ていますよね。
先程同様、スクリーンショットを四角い枠に設定すればOKです。
後はクリックの設定なので、その画像のどの部分をクリックするのか設定してあげる必要があるのですが、今回はデフォルトの「found image's center」で問題なさそうです。

ちなみに、その下にある「at →」と「↓」でそれぞれ右から何px、下に何pxの位置をクリックするのかという細かい設定が可能ですので、うまくクリックされない場合はここで少し調整してみると良いでしょう(マイナスの値で左・上に対応も可能です)。

あとはクリック後の処理ですが、このままの設定ではマウスカーソルがプレビューのところに移動してしまいます。
出来れば、マウスカーソルはクリック後にもとの位置に戻したいですよね。

そんな時には「Click at Found Image」の右上にある歯車アイコンをクリックして「Restore Mouse Location」にチェックを入れましょう(バツ印ではなくチェックマークが入っていればOKです)。

ここにチェックが入っていると、画像部分をクリックした後に自動で元の位置にマウスカーソルを戻しておいてくれます。

3-4.マクロのアクション設定(Tabを設定)

今の状態でも、プレビューにチェックを入れるという目的は達成しているのですが、フォーカスがプレビューの部分にあるままなので、これをデフォルトの一番上の部分に戻してあげたいですよね。

そこで「Type a Keystroke」というアクションを「Click at Found Image」の下に追加します。

そして、四角い枠にフォーカスを合わせて「Tab」キーを押します。すると「Tab」が登録されるのでそのアクション選択してコピー(Command + C)→ペースト(Command + V)を繰り返して3つにすれば設定完了です。

きちんと動作するかどうか確認してみて下さい。

まとめ

少し長かったですが、如何だったでしょうか?
毎回のようにわざわざクリックしにいっていた「プレビュー」が自動的にチェックされるようになりました。

「動作が重くなりそう」という声も聞こえそうですが、自分の場合特に問題なく使用できています。

「それでも完全自動というのは不安!」という方のために次回はショートカットキーで、このマクロのオン・オフを切り替えるマクロを作ってみましょう。

兵庫のWeb制作会社で働くWebデザイナーです。noteでは作業効率化をメインに取り扱っていきます。