AutoHotkeyでWindowsのあらゆる操作を自動化する方法【初心者向け入門ガイド】

AutoHotkeyは「他人が作ったスクリプトを実行するプラットフォーム」という印象を持たれがちですが、その本質は自分専用のソリューションを構築できるスクリプト言語です。既成のスクリプトに頼るだけでなく、Windowsデスクトップ上で行うあらゆる操作を、自分のニーズに合わせて自動化できます。現在のAutoHotkeyは本格的なプログラミング言語へと進化しており、アプリ開発まで可能になっています。その全機能を網羅するには、シリーズものの書籍が必要なくらいです。
このチュートリアルでは、複数ステップの作業をたった1回のキー入力に変えるために必要な、最も基本的な部分から順に解説していきます。
インストール
AutoHotkeyの公式サイトからダウンロードしてインストールしましょう。バージョンは「current(現行版)」を選択してください。残りの2つの選択肢は無視して構いません。「V2」は新バージョンですが、既存スクリプトとの互換性がなく構文もやや異なります。「V1.0 Deprecated」は旧式で機能制限の多いバージョンです。
空のスクリプトを作成する
インストール後、AutoHotkeyは拡張子「.ahk」のファイルを開く既定アプリとして登録されます。AHKファイルが実行ファイルのように動作するのはこのためで、AutoHotkeyが内容をリアルタイムに解析して実行しているのです。とはいえ、AHKファイルの正体はテキストエディタで開ける普通のスクリプトファイルにすぎません。

まず好きな場所に新しいフォルダを作成し、その中で右クリックして「新規作成 → AutoHotkey Script」を選択します。ファイル名は自由につけてください。
スクリプト編集環境を選ぶ
完成済みスクリプトを実行するときのようにAHKファイルをダブルクリックするのではなく、右クリックして「Edit(編集)」を選びましょう。AHKファイルはどのテキストエディタでも編集できますが、スクリプティングは簡易版のプログラミングなので、専用ツールを使うのがおすすめです。Atom、Sublime Text、VS Codeなど、どれでも問題ありません。こうしたツールをまだ導入していない場合でも、最初のうちは簡単なスクリプトばかりなので、Windows標準のメモ帳で十分間に合います。
参考までに筆者の場合、HTML・CSS・簡単なJavaScript/PHP/Pythonなどには各種エディタを使い分けていますが、AHKスクリプトの編集に限れば、定番のNotepad++に落ち着いています。
特定のアプリやウィンドウを対象にする
スクリプトを作る前に、まず対象となるプログラムを確認しておきましょう。
AutoHotkeyでは、すべてのアプリとWindowsデスクトップ全体で有効なグローバルスクリプトも作成できますが、特定のアプリだけを対象にすることも可能です。これにより、例えば同じショートカットキーでも、プログラムごとにまったく違う動作を割り当てられます。

新規スクリプトには最初から基本設定が書き込まれています。ここは変更せず、その下に入力してください。Enterを1〜2回押して行を空けます。
次のコードを入力します:
#IfWinActive ahk_class Notepad
#if
これは「IfWinActive以降の処理は、Notepadクラスのウィンドウ(ahk_class Notepad)でのみ有効にする」という指定です。直後の#Ifでセクションが閉じられるため、それ以降に記述した内容はNotepadクラスのウィンドウに限定されなくなります。
Window Spyを使いこなそう
空のスクリプトを実行すると、タスクトレイにAHKのアイコンが表示されます。アイコンを右クリックし、ポップアップメニューから「Window Spy」を選択しましょう。以降、他のウィンドウをクリックするたびに、Window Spyがそのウィンドウの詳細情報を表示してくれます。

一番上には、タイトル・クラス・実行ファイルという3つの方法でウィンドウを特定できる情報が並んでいます。試しにFirefoxを起動し、Window Spyを表示したままFirefoxのウィンドウをクリックしてみてください。実行ファイル名が「firefox.exe」と表示されるはずです。そこでスクリプト内のNotepadの記述を #IfWinActive ahk_exe firefox.exe に書き換えます。他のウィンドウも同様に、Window Spyでタイトル・クラス・実行ファイルを調べれば、いずれかを指定できます。要点をまとめると次の通りです。
#IfWinActive+ ウィンドウタイトル:タイトルでウィンドウを指定#IfWinActive ahk_class+ クラス名:Window Spyが認識したクラスで指定#IfWinActive ahk_exe+ 実行ファイル名:プログラムの全ウィンドウが対象になる(特定の1ウィンドウではない点に注意)
マウス座標を確認する
Window Spyを開いたまま、「Mouse Position」の変数グループに注目してください。ここにはマウスの正確な位置が表示されます。
- Absolute:画面全体の解像度に対する絶対的な位置
- Relative:アクティブウィンドウ内の相対的な位置。画面上のウィンドウ配置に影響されません。既定値であり、多くの場面でこちらを使うことになります。
- Client:Relativeとほぼ同じですが、タイトルバーや枠線などのウィンドウ装飾を含みません。
マウスの移動とクリックを再現する
新しいAHKスクリプトの作り方とウィンドウの指定方法は分かりました。次は、先ほどのマウス座標を実際に使ってみましょう。Window Spyで読み取ったX・Y座標へマウスを移動するには MouseMove, X, Y ; を使用します。相対座標が既定である点は忘れないでください。
また、コード内では ; 以降にコメントを記述できます。複数行コメントは「/*」で始まり「*/」で終わります(引用符は不要)。マウス移動はこれでOK。クリックについては、事前にマウスを特定位置へ移動しておく必要はありません。次のように書くだけです:
Click, X, Y ;左クリックの場合、または…
Click, right, X, Y ;右クリックの場合

なお、座標を省略した場合は、現在マウスカーソルがある位置でそのままクリックが発生します。
あらゆるキー入力を再現する
そして最重要ポイントが SendKeys コマンドです。これはAutoHotkeyでキー入力を再現するためのもので、これを使えば任意のキー列を、まるで自分で打鍵したかのようにプログラムへ送信できます。例えば次のコードは:
sendkeys, Make Tech Easier
「Make Tech Easier」という文字列を構成するキー入力を送るよう指示しています。英数字はそのまま記述でき、特殊キーは専用のショートコードを波括弧 {} で囲んで指定します。主なものは以下の通りです。
- {Tab}
- {Shift}
- {Control} または {Ctrl}
- {Alt}
- {F1}〜{F12}
- {LWin}{RWin}:左右のWindowsキー
- {Enter}
- {Space}
- {Backspace}
- {Delete}
- {Up}{Down}{Left}{Right}:カーソルキーの上下左右
- {Home}
- {End}
- {PgUp}{PgDown}:Page Up/Page Down
- {Volume_Up}{Volume_Down}{Volume_Mute}:音量を操作するメディアキー
数字を組み合わせれば、同一キーの連続入力もシミュレートできます。次の例では、スペースを5回入力し、「Make Tech Easier」と入力、続けてTabを2回、Enterを1回押したのと同じ動作になります。
Send, {Space 5}Make Tech Easier{Tab 2}{Enter}さらにAutoHotkeyには、ショートカットキーの組み合わせを送信するための4つの修飾記号が用意されています。これらは直後の1文字にのみ作用します。
- ! : Alt
- + : Shift
- ^ : Ctrl
- # : Windowsキー
例えば次のコードは、アクティブウィンドウに対して Ctrl+A(全選択)、続けて Ctrl+C(クリップボードへコピー)を送信します:
Send, ^A^C
初めてのスクリプトを作ってみよう
ここまで学んだ内容を、実際の例で確かめてみましょう。Make Tech Easierの検索機能へのショートカットを作成するスクリプトです。ホットキーを押すと、マウスが移動してサイトの検索アイコンをクリックし、クリップボードの中身を検索フィールドに入力、Enterで検索を開始します。

まずWindow Spyで確認すると、1920×1080の画面でFirefoxを最大化した状態における検索アイコンの座標は、およそX=1835、Y=135付近だと分かりました。アイコンは1ピクセルより大きいため数値は多少前後してもよく、X=1830、Y=140でもカーソルはアイコン上に乗っています。これを踏まえると、次のように書けます:
#IfWinActive, ahk_exe firefox.exe ;firefox.exeのウィンドウでのみ有効化
!+M:: ;Alt+Shift+Mを押すたびにスクリプトが起動
Click, 1830, 140
Sleep, 50 ;検索フィールドが表示されるまでの短い待機時間
Send, {Clipboard}{Enter} ;クリップボードの内容を検索フィールドへ送り、Enterで検索を実行
return ;ホットキー設定部分の終了
#If ;特定アプリ/ウィンドウへの限定を解除
そうです、これだけシンプルで、ほぼ英語を読むような感覚で記述できます。考えてみれば、これによってPC上のほぼあらゆる操作を自動化できるのです。
- 5つのアプリの起動や、ストリートファイターの「波動拳」コマンドを1つのキーに割り当てたい?
- ウィンドウ内の特定地点へカーソルを移動し、人間業とは思えない速さで50回連続クリックしたい?
- Caps Lockキーを、マウスに存在しない中クリックボタンに変えて活用したい?
どれもまったく同じ方法で実現できます!毎日繰り返している手順を思い浮かべ、それを要素ごとに分解し、各パーツをAutoHotkeyで再現すれば、PCの使い方は劇的にシンプルになり、生産性も大きく向上します。さあ、自動化の世界へ踏み出しましょう!
-
Windows 11/10でMicrosoft Wi-Fiを使う方法|有料Wi-Fiの購入から接続まで
Windows 11/10では、Microsoft Wi-Fiアプリを使って、Windowsストア経由で有料Wi-Fiを購入できるようになりました。Microsoft Wi-Fiは、ホテル、空港、コンベンションセンターなど、多くの人が集まるWi-Fiスポットで有料インターネット接続を提供するサービスです。 Windows 11/10におけるMicrosoft Wi-Fiの使い方 Microsoft Wi-Fiを利用するには、まずタスクバー右側にあるネットワークアイコンをクリックします。表示された利用可能なWi-Fiネットワークの一覧の中に「Windows ストアから Wi-Fi を購入」とい
-
Windows 10カレンダーアプリの使い方と基本設定ガイド
Windows 10では、カレンダーアプリのデザインと操作性が大きく刷新されました。中でも注目すべき変更点は、Googleカレンダーの同期と表示に対応したことです。これはWindows 8.1の同名アプリでは実現できなかった機能であり、利便性が大幅に向上しています。ここでは、新しいWindows 10カレンダーアプリの主な機能について詳しく解説します。 Windows 11をご利用の方へ:Windows 11でカレンダーアプリを使う方法は、別記事「Windows 11カレンダーアプリの使い方」をご参照ください。 Windows 10カレンダーアプリの初期設定 アプリを使用するには、まず自分の