スクリプト

スクリプトファイル

ファイルの指定

既定ではMy DocumentsフォルダにAutoHotkey.ahkというファイルが作成され、それがスクリプトのファイルとなります。例外として作業ディレクトリにスクリプトファイル名のファイルがある場合には、そちらが読み込まれます。これを任意のファイルとするには、起動時にコマンドラインから

AutoHotkey.exe C:\myScript.ahk

のように指定します。この方法の詳細については、コマンドライン パラメータで解説しています。

またスクリプト内から別のスクリプトを読み込むには、#Includeを用います。

ファイルの文字エンコーディング

スクリプト ファイルの文字エンコーディングは、インストールしたバージョンのそれに合わせる必要があります。

エディタの変更

AutoHotKeyのタスクトレイのメニューで「Edit This Script」を実行したときに起動するエディタを、メモ帳から任意のものに変更できます。

設定の変更にはレジストリエディタを使用します。

[HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Edit\Command]へ移動し、既定のキーの値にエディタのパスを設定します。

もしレジストリにこのキーがなく設定できないならば、スクリプトによって対処します。それには、

Menu, Tray, Add, Edit This Script by My Editor, Menu_EditScript

のようにメニューに新しい項目を追加し、その処理で指定のエディタで現在のスクリプト ファイルを開きます。

Menu_EditScript:
    Run, C:\myNotepad.exe %A_ScriptFullPath%
return

記述方法

空白文字 (space character)

組み込み変数A_Spaceか、" "で指定します。文字列を要求される文脈ではこれらがそのまま文字列と解釈されてしまうため、% A_Space% " "と記述します。

エスケープ文字

既定でバッククォート (`) です。

改行文字 (linefeed character)

改行文字は「\n」ではなく「`n」とします。これは既定でバッククォート (`) がエスケープ文字として利用されているからであり、不満ならば#EscapeCharにより変更できます。Splitting a Long Line into a Series of Shorter Ones - AutoHotkey Scripts and Macros

これは他の制御文字も同様です。

  • `t … tab
  • `n … linefeed
  • `r … carriage return
Escape Sequences - Definition & Usage | AutoHotkey

ラベル (label)

ラベルには次の3つがあり、それぞれラベル名の前後のコロンにより区別されます。

ラベルの種類 書式 用途
ラベル Labels
LabelName:
GotoやGosubの目的地
ホットキー ラベル
LabelName::
キーの押下によるスクリプトの起動
ホットストリング ラベル
::LabelName::
※1
文字列の入力によるスクリプトの起動
※1 オプションを指定しないときの書式

ホットキーとホットストリングはラベル名に続けてスクリプトを記述できますが、ただのラベルはラベル名の後で改行する必要があります。

ラベルに使用できる文字は、

  • すべての文字 (日本語などを含む)
  • スペース
  • タブ
  • カンマ
  • エスケープ文字

です。またアルファベットは、大文字/小文字の区別はされません。

コメント (Comments)

次の条件を満たすものが、コメントとみなされます。Comments in Scripts - AutoHotkey Scripts and Macros

  • セミコロンから始まる行
  • 1つ以上のスペースまたはタブに続くセミコロンから行末まで
  • /*から始まる行から、*/で始まる行まで (スペースまたはタブが先行しても良い)

以下に例を挙げます。

スクリプト例 有効/無効 理由
MsgBox,TEST;comment
× セミコロンの前にスペースがない
MsgBox,TEST ;comment
 
MsgBox,TEST /*comment*/
× /*が行頭にない
/*comment*/
× */が行頭にない
/*
comment*/
× */が行頭にない
/*comment
*/
 

自動実行セクション (Auto-execute Section)

スクリプトは読み込まれると、先頭の行から実行されます。そして、

  • Return
  • Exit
  • ホットキーやホットストリングの、ラベルが記述されている位置
  • スクリプトの最後

のいずれかに達するまで実行されます。この最初に実行されるスクリプトの部分を、自動実行セクションと呼称します。

The Top of the Script (the Auto-execute Section)