【AutoHotkey】キーに別の機能(キー)を割り当てるソフトの使い方

2021年12月29日AutoHotkey

AutoHotkeyのアイコン

この記事では、好きなキーに設定した操作を割り当てるフリーソフト「AutoHotkey」について書きます。

キー割り当ての変更から、アプリの実行など、考え方次第で無限の可能性が待っています。

AutoHotKeyのスクリーンショット

自分でキー割り当てを変更、新しいショートカットキーを作成するソフトです。AutoHotkey(以下、AHK)の独自コード(言語)を書き込むことで、それに従った操作を実行できます。

ざっくり以下のようなことができます。

こんなことができる具体的な説明
キー割り当ての変更Aを押したら、Bを押したことにする
新たなショートカットキーの作成Insertを押したら、パソコンをスリープする
特定のキーを押したら特定のアプリを起動Insertを押したら、ブラウザを起動
特定のキーを無効化Insertを押しても反応しないようにする
条件分岐やループでより複雑な操作If文など。Excelが起動している時だけ、Shift+マウスホイール回転で水平スクロールするようにする

キー割り当ての変更だけでなく、特定のキーを押したら、指定のアプリの起動、ショートカットアイコンの登録など、キー割り当てを超えた高度なことも設定可能です。一言でいうなら、Windowsの究極の効率化ツールです。

本記事では、AHKの基本的な使い方について書きます。初心者~中級者の方におすすめです。

Windows10、Windows11どちらでも利用できます。Windows10からWindows11にアップグレードしても、コードを書き換える必要はありません。そのまま使えます。

高度な操作になるにつれ、書き込むコードの難易度も上がりますが、「こういうことしたいなぁ~」が見事に解決できるソフトです。初心者のうちは、キー割り当て目的での利用がおすすめです。

本ソフトは、スクリプトを実行している時だけ有効になります。無効にしたい時は、いつでもタスクトレイから終了できます。スタートアップに登録して、自動起動することもできます。

提供元:Chris Mallet
記事執筆時のバージョン:1.1.34.02(2022年5月13日)

インストール方法

以下のサイトからダウンロードできます。

「Download」をクリックします。

AutoHotkeyのダウンロード Download

「Download Current Version」をクリックします。

AutoHotkeyのダウンロード Download Current Version

ダウンロードが完了したら、起動します。

セットアップファイルの右クリックメニュー

「Express Installation」をクリックします。

AutoHotkey Setup Express Installation

すぐインストールが終わるので、「Exit」をクリックします。

Installation complete.

インストールは完了です。

使い方

流れは、スクリプトの記述→実行の2ステップです。実行は、作成したファイルを起動するだけなので、メインの作業はスクリプトの記述になります。

AHKは独自の言語なので、一から学んでいきます。本ソフトは、ソフトで色々設定していくタイプではなく、テキストエディタ(Windows標準のメモ帳、Microsoftが提供しているVisual Studio Codeなど)から書き込んで作成するタイプです。

スクリプトの作成

デスクトップ、またはフォルダー内の空いているところを右クリック→新規作成→Autohotkey Scriptをクリックします。

新規作成→Autohotkey Script

専用の拡張子「.ahk」ファイルができるので、好きな名前を決めます。日本語でも英語でもOKです。

名前変更

右クリック→プログラムから開く→メモ帳をクリックします。

ahkファイルの右クリック プログラムから開く

AHKに慣れてきたorかなり頻繁にコードを編集するといった場合は、Microsoftが提供しているコードエディターソフト「Visual Studio Code」がおすすめです。

プラグインを導入して、ハイライト表示にすることで、コードが一気に見やすくなります。自動保存機能もあるので、いちいち保存する手間が省けます。

Visual Studio CodeでAHKファイルの編集

Macはよく分かりませんが、Windowsでコードエディターをするなら、コレ!ってくらい有名です。

参考:[AutoHotKey]メモ帳で編集とかありえない!VSCodeで編集するための準備

メモ帳が開くので、スクリプトを記述していきます。

最初に4行ほどの英文が書かれていますが、気にしなくてOKです。削除しても削除しなくても正常に動作します。

スクリプトを記述していく

記述

具体的にどうやってコードを書けばいいのかは、こちらで詳しく解説します。

ここでは、とりあえず基本の形を紹介します。以下のコードをコピペで貼り付けてみましょう。キーボードのabに割り当てるコードです。

;aキーをbキーに割り当て
a::b

CtrlS、またはメモ帳上部のファイル→上書き保存をクリックします。保存できたら、メモ帳を「×」で閉じてOKです。後でまた書き込む場合は、そのままでOKです。

実行

コードを記述しただけだと、意味がありません。スクリプトを実行する必要があります。起動している間は、コードが有効になります。自分の好きなタイミングでオンオフできる点も便利ですね。

作成したスクリプトを右クリック→Run Scriptをクリックします。ダブルクリックでも起動できます。

ahk Run Script

タスクトレイ(通知領域)にAutoHotkeyのアイコンが表示されます。

タスクトレイアイコン

エラーが出た場合は、コードの記述に間違いがあるので、もう一度見直しましょう。

適当にメモ帳を開いて、キーボードのaを押すと、bが入力されます。

aをbに割り当てしたコードのサンプル動画

終了

タスクトレイのAHKアイコンを右クリック→Exitをクリックします。

タスクトレイアイコンの右クリック Exit

スタートアップに登録

Windows起動時に自動起動するようにスタートアップに登録しておくと便利です。エクスプローラーのアドレスバーに、以下のコードを貼り付けます。

shell:startup

スタートアップフォルダーが開くので、作成したAHKをAltを押しながらドラッグ&ドロップします。

ショートカットリンクが作成されます。本体のファイルは好きな場所に移動してOKです。

これでWindows起動時に、自動でAHKも起動します。やっぱりやめたい時は、スタートアップフォルダー(shell:startup)のショートカットリンクを削除します。

言語の書き方

基本的なコードの書き方、コメントアウト、通常のキー、スキャンコード(SC)、仮想キー(VK)、修飾キーの大きく6つに分けて説明します。

基本の書き方

AHKは、以下のような構成になっています。どれだけコードが複雑化しても、これだけは絶対に変わりません。

元のキー::割り当てたいキー、機能

変換前と変換後の間に、コロン記号(::)を2つ書くのがルールです。あとは、このルールに沿って書き換えていきます。

コメントアウト

;「セミコロン」記号は、コメントアウトだよ
実際のコード

セミコロン記号(;)は、コードとは関係ないただのコメントです。スクリプトを実行しても、ここの部分は実行されません。

コードだけだと、後から見返した時にどんな内容だったのか分からなくなるので、全部にコメントアウトで説明を書くことをおすすめします。

通常のキー

そのままキーを入力する方法です。まずはこの書き方をマスターしてみましょう。いくつか例を出しておきます。

;dをgに割り当て
d::g

;大文字のa(A)を大文字のc(C)に割り当て
A::C

;数字を別のキーに割り当て
1::k

;矢印を別のキーに割り当て
Left::a

;別のキーを矢印に割り当て
a::↓

;Insertを別のキーに割り当て
Insert::Delete

;AltをWindows(左)に置き換え
Alt::LWin

通常のキーは、そのまま入力することで認識されます。

大文字だけ認識させたい場合は、Shiftを押しながら大文字で登録します。通常の小文字はそのまま入力され、大文字(Shiftを押しながら)入力時は、割り当てたキーが実行されます。

矢印は、「Left、Right、Up、Down」や、「←、→、↑、↓(変換元のみ)」で指定できます。

InsertDelete、その他のキーについては、下記の公式サイトを参考にしてみましょう。

上記サイトにアクセスすると、キーボードが表示されるので、登録したいキーをクリックします。

キーリスト キーボード

ページがスクロールして、目的のキーが表示されます。コピペしましょう。

制御キー

スキャンコード(SC)

通常のキー指定だと、エラーがでちゃう、うまく動作しない場合は、スキャンコードで指定しましょう。

Note: The hotkey I will not be active because it does not exist in the current keyboard layout.
Note: The hotkey I will not be active because it does not exist in the current keyboard layout.
(注意:指定したホットキーは、現在のキーボードレイアウトに存在しないため、アクティブにはなりません。)

スキャンコードとは、キーボードを押した時にCPU(パソコンの頭脳)に伝達されるコードのことです。

キーボードは、Aを押した時に、そのままAが送られるわけではありません。sc01Eといったように特殊なコードに置き換えられてCPUに送られています。目に見えない第二のキーボードって感じです。

「sc〇〇〇」といったように、頭文字がsc(スキャンコード)で始まります。調べる方法はいくつかありますが、先人たちが残したものがあるので、そのままコピペするのが一番楽です。

下記サイトにスキャンコードの一覧があります。

書き方は、以下のようになっています。

;数字の「1」をWindowsに割り当て
sc002::sc15B

仮想キー(VK)

スキャンコードと同じで目に見えないキーボードです。キーボードには、それぞれ16進数の数字が割り当てられています。キーを識別するためです。これが仮想キーです。

通常キーとスキャンコードさえ覚えておけば、全てのキーをカバーできるので、仮想キーを無理に理解する必要はありません。まずは通常キー、スキャンコード、修飾キーを使えるようになりましょう。

「VK」で始まるのが特徴です。本記事では、頭がこんがらがるだけだと判断し、詳しくは説明しません。今後記載するコードも仮想キー以外で記述します。

;セミコロンを数字の「0」に割り当て
vkBB::vk30

参考:代表的な仮想キーコード一覧 – BizRobo! ナレッジベース

修飾キー

CtrlShiftAltWindowsなどの単体では機能しないキーのことです。(Windowsは例外)

CtrlCでコピー、AltTabでウィンドウスイッチャー、WindowsShiftSで切り取りツールといったように、他のキーを組み合わせることで使えるキーです。

これ単体では機能しないので、他のキーと組み合わせて使いましょう。

修飾キーの書き方
Win#
Ctrl^
Shift+
Alt!

いくつか例を出しておきます。

;Insertに切り取りツール(Windows+Shift+S)を割り当て
Insert::#+s

;Windows+Tabに全選択(Ctrl+a)を割り当て
#Tab::^a

;Ctrl+Qにプレーンテキストの貼り付け(Ctrl+T)を割り当て
^q::^t

既存のショートカットキーを置換することもできますし、全く新しいショートカットキーを作ることもできます。とりあえず、AHKに触れたら、通常キーと修飾キーの2つは押さえておきたいです。

修飾キーについて、より詳しく知りたい場合は、下記サイトが参考になります。

実用編、応用編

上記で解説したコードの書き方を活用して、より実用的なコードを紹介します。

キー割り当て

スキャンコード、複数キーを指定する時は、「Send,」と{}記号を活用します。特にスキャンコードを複数指定する時は、{}で囲むのが重要になってきます。

{}は変換後のキーを囲みます。変換元には、何も付ける必要はありません。

いくつか実用的なコードを紹介します。

;CapsLookをDelete割り当て
sc03A::Send, {sc153}

;無変換にEnter割り当て
sc07B::Send, {sc01C}

単一のスキャンコードは、「Send,」や、{}で囲む必要はないのですが、こんがらないように統一して付けるほうがおすすめです。

;単一キーの場合は、囲まなくても動作する
;CapsLookをDelete割り当て
sc03A::sc153

;無変換にEnter割り当て
sc07B::sc01C

複数キー割り当て

;複数キーの基本的な形
〇〇::Send, {〇〇}

;かな変換にモニター間移動
sc070::Send, {RWin Down}{Shift Down}{left}{Shift Up}{RWin Up}

;Ctrl+gに「こんにちは」の文字を割り当て
^g::Send,こんにちは

かな変換にモニター間移動がかなり便利です。

参考:【AutoHotkey】デュアルモニター間のウィンドウ移動のやり方【ショートカットキー】 | オカメJP|あるドイツ在住日本語教師のブログ

修飾キーと通常キーの組み合わせの場合、{}やSend,をつける必要はありません。つけても動作するので、よく分からない場合はつけておきましょう。

「”こんにちは”の文字を割り当て」のように、日本語や英単語も指定できます。よく使う挨拶文を登録しておくといったことができます。

修飾キー以外の複数キー割り当て

;a+bにcを割り当て
a & b::Send, c

WindowsAltなどの修飾キー以外のキーを組み合わせる場合は「」を使います。

&の前後には、半角空白を入れます。こうしないと動作しません。

注意点ですが、上記コードだと単体キーのaが機能しなくなります。

単一キーが動作しなくなる
最初に指定したキーが反応しなくなる

単一キーも有効にするには、以下のようにします。

;a+bにcを割り当て(a単体も使えるようにする)
~a & b::Send, c

最初に「~」を入れるだけです。これでa単体も機能するようになります。

マウス操作の割り当て

キーだけでなく、マウス操作も組み込められます。

マウス操作書き込むコード
ホイール上回転WheelUp
ホイール下回転WheelDown
左クリックLButton
右クリックRButton
サイドボタン1(進む)XButton1
サイドボタン2(戻る)XButton2

例として、左Alt+ホイールの上下回転でウィンドウスイッチャー(AltTab)を表示するコードを紹介します。

;左Alt+ホイール回転でAlt+Tab
LAlt & WheelDown::AltTab
LAlt & WheelUp::ShiftAltTab

参考:ホットキー AutoHotkey Wiki

Shift+ホイール回転で、水平(横)スクロールさせるといったこともできます。

特定のキーを無効化

Returnコマンドで、キーを無効化できます。押しても反応しなくなります。

;特定のキーを無効化するコードの書き方
〇::Return

;Windows11のウィジェットショートカットキーを無効化
^w::Return

個人的には、無効化よりも別の機能を割り当てる方がいいかなと思います。

この方法を活用して、Ctrl+マウスホイール回転のアイコン拡大縮小を無効化することもできます。

;Ctrl+マウスホイール回転を無効化
^WheelUp::return	;マウスホイール上回転
^WheelDown::return	;マウスホイール下回転

特定のキーでアプリ起動

Runコマンドで、指定したアプリを起動できます。

;特定のキーでアプリ起動するコードの基本的な形
〇〇::Run, "アプリの場所"

;右Alt+aでMutant(とあるゲーム)起動
!a::Run, "D:\デスクトップ\ゲーム\Mutant Year Zero Road to Eden.url"

;Windows+1でChrome起動
#1::Run, "C:\Program Files\Google\Chrome\Application\chrome.exe"

;Windows+3でChromeを開いて、特定のサイトにアクセス
#1::Run, "C:\Program Files\Google\Chrome\Application\chrome.exe""https://www.naporitansushi.com"

;Alt+fでデスクトップ起動
!f::Run, "D:\デスクトップ"

;Alt+Spaceで、好きなフォルダーを起動
!sc039::Run, "D:\デスクトップ\素材\アイキャッチ素材"

アプリ、ショートカットアイコン、フォルダーなど自由に設定できます。

僕の一押しは、CtrlInsertにスリープ(ショートカット)の割り当てです。詳しくは下記記事を参考にしてみてください。

複数アプリの同時起動もできます。

;Windows+5でChromeとデスクトップ起動
#1::
Run, "C:\Program Files\Google\Chrome\Application\chrome.exe"
Sleep 500
Run, "D:\デスクトップ"
Return

上記コードは、Chromeを起動→500ミリ秒(0.5秒)待機→デスクトップフォルダーを起動するという意味です。

Runと、Sleepコマンドを活用していきます。改行して、Runで追加したいアプリを記述します。Sleepは、「次のコマンドまで〇ミリ秒待機する」という意味です。単位はミリ秒なので、1秒=1000になります。

特定のアプリでだけ発動

特定のアプリが起動(アクティブ)している時だけ、コードを発動させるといったこともできます。

;特定のアプリでだけ動作するように制限
#IfWinActive 〇〇〇 ;実行ファイル名
ここにコードを書く
#IfWinActive

条件分岐(If)の「WinActive」コマンドを使います。ここらへんから、ちょっと高度になります。

Excel、Vivaldi(僕一押しのブラウザ)でだけ発動するようにしたコードを貼っておきます。参考にしてみてください。

;------------------
;Excel
;------------------
#IfWinActive ahk_exe EXCEL.EXE

  ;Shift+マウスホイールで水平スクロール
  ~+WheelUp:: ;Shift+マウスホイール上
	  SetScrollLockState, On
	  SendInput {Left}
	  SetScrollLockState, Off
	Return

  ~+WheelDown:: ;Shift+マウスホイール下
	  SetScrollLockState, On
	  SendInput {Right}
	  SetScrollLockState, Off
	Return

  ;Shift+Enter→Alt+Enterに割り当て
  +sc01C::
	  Send, !{sc01C}
	Return

#IfWinActive
;------------------
;Excel終了
;------------------

;---------------------
;Vivaldi
;---------------------
#IfWinActive,ahk_exe vivaldi.exe

  ;右Shift2回押しで左右に並べて表示
  RShift::
  Keywait, RShift, U
  Keywait, RShift, D T0.2
    If (ErrorLevel=1) {
      Send, {RShift}
    }
    else {
      Send, ^{F9}
    }
  Return

  ;「\」キー2回押しでタイリング解除
  sc073::
  Keywait, sc073, U
  Keywait, sc073, D T0.2
    If (ErrorLevel=1) {
      Send, {sc073}
    }
    else {
      Send, ^{F6}
    }
  Return

#IfWinActive
;---------------------
;Vivaldi終了
;---------------------

最初と最後を、「#IfWinActive」で囲むというルールになっています。最初の「#IfWinActive」の後に実行ファイル名を記述します。

AHKに搭載されているWindow spy機能を使います。適当にahkファイルを実行します。中身は何でもOKです。

タスクトレイのAHKアイコンを右クリック→Window Spyをクリックします。

タスクトレイアイコンの右クリック Window Spy

専用のウィンドウが表示されます。このウィンドウを表示した状態で、調べたいアプリウィンドウをクリックします。

Window Spy

例として、メモ帳をクリックします。アプリ情報がWindow spy上に表示されます。

ウィンドウタイトルが表示される

ファイル名の構成は以下のようになっています。

*タイトルなし メモ帳
ahk_class Notepad
ahk_exe Notepad.exe
ahk_pid 14728

上から順に、タイトル、ウィンドウクラス、プロセス名、プロセスIDです。基本的には、3行目のプロセス名(メモ帳だと「ahk_exe Notepad.exe」)を使えばOKです。

メモ帳で、なおかつ名前が「タイトルなし」とつくファイルだけで動作させたい場合は、1行目のタイトル(メモ帳だと「タイトルなし メモ帳」)をコピペします。

;【メモ帳】「タイトルなし」というファイル名を開いている時、aをbに割り当て
#IfWinActive タイトルなし メモ帳
	a::b
	Return
#IfWinActive

プロセス名と違って、タイトルは「ahk_〇〇」といったコードは必要ありません。「#IfWinActive」の後に半角空白を開けて、そのまま記述します。

参考:[AutoHotKey]#IfWinActiveで対象ウインドウを指定する

Returnは、無効化の意味もありますが、区切りという意味も持っています。コードを複数行書く時には、末尾にReturnを書いて、区切るようにします。

そうしないと、Aのコマンドを実行した後に、後述しているBのコマンドも一緒に実行されるという思わぬ事故が起きます。とりあえず、複数行になる時は最後に「Return」をつける習慣をつけましょう。

特定のアプリ以外で実行

上記とは逆で、特定のアプリが起動していない時だけ発動するといったこともできます。

;特定のアプリでだけ動作するように制限
#IfWinNotActive 〇〇〇 ;実行ファイル名
  コードを書く
#IfWinNotActive

今度は、「#IfWinNotActive」で囲むってことです。実行ファイル名は「#IfWinActive」と同じ書き方です。

例として、Vivaldiが起動していない時だけ、Ctrl+マウスホイール回転を無効にするコードを紹介します。

;ブラウザがアクティブではない時に発動
#IfWinNotActive ahk_exe vivaldi.exe
  ^WheelUp::return	;マウスホイール上回転を無効
  ^WheelDown::return	;マウスホイール下回転を無効
#IfWinNotActive

ブラウザは拡大縮小が使えるけど、デスクトップでは拡大縮小が使えなくなります。

余談ですが、最後の「#IfWinNotActive」は、「#If」だけでも動作します。初心者のうちは、最初と最後を同じコードで統一した方が見やすいかなと思います。

;最後は、「#If」で閉じてもOK
#IfWinActive ahk_exe vivaldi.exe
  a::b
#If

特定のウィンドウ名だけで発動

特定のウィンドウ名で制限することもできます。例えば、以下のようにブラウザで特定のタブを開いている時だけ動作させるといったことができます。

  • TweetDeckのページをブラウザで開いている時だけ
  • Googleで調べものをしている時だけ

サービス独自のショートカットキーを、使いやすいようカスタマイズする時に便利です。マイナーだとは思いますが、使いこなせると結構便利です。

;------------------
;特定のタイトルだけに制限するコードの書き方
;------------------
#If ウィンドウ名_IsMyWindow()

  ;実際にコードを記述
  〇〇〇
  Return

#If

ウィンドウ名_IsMyWindow() {
  WinGetActiveTitle title
  Return InStr(title, "ウィンドウ名")
}

;------------------
;特定のタイトルだけに制限するコードの書き方終了
;------------------

インデントやコメントアウトは、僕が見やすいように付けているだけです。一切なくても動作します。まぁ、見やすいようにあったほうがいいかなとは思います。

「ウィンドウ名」の部分に、使いたいサービス名を入力します。全部を入力する必要はなくて、一部だけでもOKです。

例えば、ツイートデックなら「Tweet」でも「TweetDeck」でもOKです。「ツイートデック」といったように正式名称じゃない場合はダメです。ただし、「Tweet」だけだと、ツイートデックではなく、「Tweet」が含まれるウィンドウ全てが対象になるので気を付けましょう。

ウィンドウ名を調べるには、登録したいサービス(サイト)をブラウザで開いて、タブ名をそのまま書くだけです。当サイトなら「ナポリタン寿司のPC日記」ですね。

ウィンドウタイトルの調べ方

例として、ツイートデックで、マウスのサイドボタン+ホイールを使って水平スクロールするコードを紹介します。

;------------------
;ツイートデック
;------------------
#If TweetDeck_IsMyWindow()

  ;水平スクロール
  ~XButton1 & WheelUp::	;マウスのサイドボタン(進む)+ホイール下回転で右に動かす
  MouseGetPos,,,id, fcontrol,1
  Loop 2			;数字を大きくすると速くなる
  SendMessage, 0x114, 0, 0, %fcontrol%, ahk_id %id%
  Return

  ~XButton1 & WheelDown::	;マウスのサイドボタン(進む)+ホイール上回転で左に動かす
  MouseGetPos,,,id, fcontrol,1
  Loop 2			;数字を大きくすると速くなる
  SendMessage, 0x114, 1, 0, %fcontrol%, ahk_id %id%
  Return

#If

TweetDeck_IsMyWindow() {
  WinGetActiveTitle title
  Return InStr(title, "TweetDeck")
}

;------------------
;ツイートデック終了
;------------------

「#IfWinActive」がうまくいかない時は、「#If」を使ってみてください。こちらのほうが成功しやすいイメージです。「#IfWinActive」だと、正確に実行ファイル名を入力しないといけませんが、「#If」だと一部タイトルに含まれていればOKなので、成功しやすいです。

実際に僕が使っているコード

実際に僕が使っているコードを一部紹介します。以下のコード全てを1つのahkファイルに記述して、スタートアップに登録しています。

;おまじない。とりあえず書いておくと便利コード
#SingleInstance, Force
SendMode Input
SetWorkingDir, %A_ScriptDir%

;Insertキーにスリープ割り当て
^Insert::Run, "D:\デスクトップ\ショートカット\スリープ.lnk"

;Windows+VでClibor呼び出し
#V::Send, ^9

;右Ctrlでウィンドウをモニター間移動
Rctrl::
Send, {RWin Down}{Shift Down}{left}{Shift Up}{RWin Up}
Return


;---------------------
;Vivaldi
;---------------------
#IfWinActive,ahk_exe vivaldi.exe

  ;右Shift2回押しで左右に並べて表示
  RShift::
  Keywait, RShift, U
  Keywait, RShift, D T0.2
    If (ErrorLevel=1) {
      Send, {RShift}
    }
    else {
      Send, ^{F9}
    }
  Return

  ;「\」キー2回押しでタイリング解除
  sc073::
  Keywait, sc073, U
  Keywait, sc073, D T0.2
    If (ErrorLevel=1) {
      Send, {sc073}
    }
    else {
      Send, ^{F6}
    }
  Return

  ;Shift+マウスホイールで水平スクロール
  ~+WheelUp::			;Shift+上回転で右に動かす
    MouseGetPos,,,id, fcontrol,1
    SendMessage, 0x114, 0, 0, %fcontrol%, ahk_id %id%
  Return

  ~+WheelDown::			;Shift+下回転で左に動かす
    MouseGetPos,,,id, fcontrol,1
    SendMessage, 0x114, 1, 0, %fcontrol%, ahk_id %id%
  Return

  ;Ctrl+Qにプレーンテキストの貼り付け
  ^q::
    Send, ^t
  Return

#IfWinActive
;---------------------
;Vivaldi終了
;---------------------


;---------------------
;ブログ関連
;---------------------
#If ナポリタン寿司_IsMyWindow()

  ;Tabで次の表項目に移動
  ~Tab::sc14D
  Return

  ;Shift+Tabで一つ前の表項目に戻る
  ~!Tab::sc14B
  Return
#If

ナポリタン寿司_IsMyWindow() {
  WinGetActiveTitle title
  Return InStr(title, "ナポリタン寿司")
}
;---------------------
;ブログ関連終了
;---------------------


;【Monosnap】Insert2回押しでドロップゾーン表示切り替え
Insert::
  Keywait, Insert, U
  Keywait, Insert, D T0.2
  If (ErrorLevel=1) {
	  Send, {Insert}
  }
  else {
	  Send, ^!f
  }
Return



;------------------
;Excel
;------------------
#IfWinActive ahk_exe EXCEL.EXE

  ;Shift+マウスホイールで水平スクロール
  ~+WheelUp:: ;Shift+マウスホイール上
	  SetScrollLockState, On
	  SendInput {Left}
	  SetScrollLockState, Off
	Return

  ~+WheelDown:: ;Shift+マウスホイール下
	  SetScrollLockState, On
	  SendInput {Right}
	  SetScrollLockState, Off
	Return

  ;Shift+Enter→Alt+Enterに割り当て
  +sc01C::
	  Send, !{sc01C}
	Return

#IfWinActive
;------------------
;Excel終了
;------------------



;------------------
;ツイートデック
;------------------
#If TweetDeck_IsMyWindow()

  ;サイドボタン有効化
  ~XButton2::Enter ;進むボタンにEnter割り当て
  ~XButton1::BS	;戻るボタンにBackSpace割り当て
  Return

  ;水平スクロール
  ~XButton1 & WheelUp::	;マウスのサイドボタン(進む)+ホイール下回転で右に動かす
  MouseGetPos,,,id, fcontrol,1
  Loop 2			;数字を大きくすると速くなる
  SendMessage, 0x114, 0, 0, %fcontrol%, ahk_id %id%
  Return

  ~XButton1 & WheelDown::	;マウスのサイドボタン(進む)+ホイール上回転で左に動かす
  MouseGetPos,,,id, fcontrol,1
  Loop 2			;数字を大きくすると速くなる
  SendMessage, 0x114, 1, 0, %fcontrol%, ahk_id %id%
  Return

#If

TweetDeck_IsMyWindow() {
  WinGetActiveTitle title
  Return InStr(title, "TweetDeck")
}

;------------------
;ツイートデック終了
;------------------

最初の3行は、おまじない的コードです。特に1行目の「SingleInstance, Force」はあると便利なので、最初に記述しておきましょう。

既にスクリプトが起動している状態で、同じスクリプトを実行した時に、自動で既存のスクリプトを終了するよという意味です。スクリプトをリロードする時に、以下の確認画面が表示されなくなります。

既に同じスクリプトが実行されています。上書きで起動しますか?
意味:既に同じスクリプトが実行されています。上書きで起動しますか?

参考:AutoHotKeyの開発(デバッグ込)環境の構築手順 Qiita

上記コードたちの詳しい説明は、当サイトのカテゴリーAutoHotkey内に書いています。気になった方は、参考にしてみてください。

参考:AutoHotkey

感想

以上、スクリプトを記述してキーに別の機能を割り当てるソフト「AutoHotkey」についてでした。

ぜひ、自分だけの最強環境を構築してみてください。

Posted by ナポリタン寿司