AutoHotKeyの変数操作は多少クセがあります。
今回は代入の方法です。
AutoHotKeyでは、データを代入する方法が2通りあります。
=(イコール)で代入する方法
:=(コロンイコール)で代入する方法です。
具体的に見て行きましょう。
以下のプログラムは、
- A:数式をイコールで代入したもの
- B:コロンイコールで代入したもの
です。
サンプルプログラム:2種類の代入
#CommentFlag //
#EscapeChar \
A = 1+1
B := 1+1
msgbox A\:%A% \nB\: %B%
実行結果
A:1+1
B:2
変数をイコールで結ぶと、文字列のままに変数へ格納します。(ホントはちょっと違うんですが…)
コロンイコールで結ぶと、(数式と)解釈をして変数へ格納します。
次のサンプルを見てみましょう。
前半は全く同じです。
サンプルプログラム:代入結果の比較
#CommentFlag //
#EscapeChar \
A = 1+1 //Aは文字
B := 1+1 //Bは数式
AA = A //文字Aを代入
AB = B //文字Bを代入
BA := A //Aを解釈して代入 → Aに格納された文字列を代入
BB := B //数式Bを代入
MsgBox AA\: %AA% \nAB\: %AB% \nBA\: %BA% \nBB\: %BB%
実行結果
AA: A
AB: B
BA: 1+1
BB: 2
ABは"B"という文字を代入したので、Bとなります。
BBはBの数式を代入したので、2となります。
このあたりは誤解が生じやすいので、
変数名にintとか数で管理できるようにしておくと良いでしょう。
追記
上記のプログラムの一番下に、
MsgBox %B% %AB% = A msgbox %B%
と入れると、不思議なことが起こります!次回はこのへんを!