変数の代入


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%
と入れると、不思議なことが起こります!次回はこのへんを!