【AHK】Word以外から「右クリックでGoogle!」を起動する方法 | みんなのワードマクロ

みんなのワードマクロ

ワードマクロで、文書作成とオフィス事務を効率化!!

先日の勉強会でAutoHotKey (フリーウェア)の登録方法や使い方を勉強しました。

そのときに、私はWindowsのWord以外のアプリケーションから「右クリックでGoogle! 」を起動するマクロをつくりました。

Wordで翻訳をする場合の調べものは右クリックでGoogle!を使っているので、他のアプリケーションでも右クリックでGoogle!を使えると便利だなと思ってました。

まだ、マクロとしては不十分かもしれませんが、とりあえず使えるようなので紹介します。

なお、AHKにマクロを登録する方法については、この記事では触れておりませんので、ネット検索をして調べてみてください。


▼このAHKでできること

Wordを起動した状態でこのAHKを実行します。Wordが起動していない場合には自動でWordを起動できたらいいのですが、私にはまだその方法がわかっておりません。。。

もちろん、「右クリックでGoogle!」もインストールしてください。

文字列を選択して[Windows]キー+[S]を押すと、右クリックでGoogle!の詳細検索ダイアログボックスが表示されます。

選択されている文字列が検索窓に自動入力されますので、あとは自由に検索条件の設定変更をして検索して下さい。

Word画面を表示させたくない方(または、Wordを普段使っていない方)は、Wordを最小化しておけば、以下のようにWebブラウザ上に「右クリックでGoogle!」のダイアログを表示できます。


(画像は公開準備中のVer. 3.1です。公開中のバージョンでも同じことができます)

Wordを最小化していない場合には、Wordにフォーカスが移動したときにWord画面が表示されます。


▼AHKスクリプトの解説

AHKでも、オブジェクト変数を使えます。

Wordをオブジェクト変数に入れることができるので、他のアプリケーションからWordのマクロ実行もできますし、AHKのプログラム文に直接Wordマクロを記述することも可能みたいですね。

今回は、Wordに登録されているアドインの特定のマクロを呼び出して実行だけしています。

私が実行するWordマクロの名称は、vct_Google_詳細検索 です。


さて、1行ずつみていきます。

#InstallKeybdHook
#UseHook

この2行は、先頭に書いた方がいいことがあるらしいので書きました(笑)。

#s::

この1行により、[Windows]キー+[S]のショートカットキーでこのスクリプトを実行すると宣言しています。
ショートカットキーも同時に設定できてしまうところが便利です。

Ctrl + C (send, ^c)にて、選択中の文字列をクリップボードに入れます。

Wordマクロだと、Selection.Text ですね。これに相当するものを探したのですが、選択中の文字列を直接読み込むような方法がWeb上で見つかりませんでした。

どうやら文字列の受け渡し時は、クリップボードを経由するようです。

oWord := ComObjActive("Word.Application")
oWord.activate


これで、現在起動中のWordをオブジェクト変数のoWordに設定します。
Wordをactivateして、Wordを最前面に表示します。

そして、try oWord.Run("vct_Google_詳細検索") でマクロを実行して、右クリックでGoogle!のダイアログボックスを表示します。

sleep 200 にて、右クリックでGoogle!の起動のために0.2秒(200ミリ秒)まってから、Ctrl + V(send, ^v) にてクリップボードの文字列を検索窓に貼り付けています。

returnで終了の意味です。

サブルーチンの場合、元の呼び出し元のルーチンに戻りますが、今回のように呼び出し先のメインルーチンがないのでExitと同じ役割(スクリプトの終了)になります。


▼AHKスクリプト

;Win + S で右クリックでGoogle!
#InstallKeybdHook
#UseHook
#s::
send, ^c
oWord := ComObjActive("Word.Application")
oWord.activate
try oWord.Run("vct_Google_詳細検索")
sleep 200
send, ^v
return



▼関連記事

【AHK】AutoHotKeyの紹介


※:スクリプトといったりマクロといったり用語が統一されていなくてすみません。。。