さて、今回は HSP でスクリプトを組むに当たって、必ず知っておかなければならないもの、「変数」について、いろいろ書いていこうと思います。
	言ってしまえば、今回は変数だけです。
	※数学でいう「変数」とは同じ名前ですが、内容は違うので注意。
ではサンプルから。
	
	x = 100
	mes x
	以上です。
	では、上記のスクリプトをエディタに書いて、 [F5] キーで実行してみてください。
	
	さて、どうなりましたか?
	画面に、「100」という数字が表示されたと思います。mes で x の中身を表示したので。
	変数(variable)とは何か、そう教えるとき、ほとんどの講座で同じような例えを出します。
	
「変数とは、記憶するための、名前の付いた箱」※詳しい人には「変数はメモリの塊にアクセスするためのインターフェース」と言った方がいいかもしれないですが。
	
	※ var …… 変数を意味する英単語、variable の略
	もう一度、上記のサンプルを見てください。
	あれの一行目:
x = 100
	は、
	
	変数の名前には、分かりやすいものを付ける癖をつけましょう。
	上記のように、 x, y, z や a, b, c, d, e, ... など、ぱっと見ただけでは、その変数に何が入ってるのか分かりませんよね?
	そうすると、いちいちスクリプトの中から変数を使用している部分を探して、判断するしか無くなります。
	こんなんじゃ、ろくに開発できません。
	変数の名前は、しっかり内容を反映したものにしましょう。ある程度は長い方がいいです。
	
	変数の名前には、基本的に何でも付けられますが、59文字以下である必要があります。
	また、名前の始めは半角数字 (0, 1, 2 など)が使えません。
	ちなみに、大文字と小文字の区別はありません。「VAR」と「var」は全く同じです。
	ちなみに、日本語を含め、全角文字も変数名に使えます。
	変換がめんどくさいので、僕は使っていません。
	もっと変数を使ってみましょう。
	
	下のサンプルにある「; (セミコロン)」は、
	「この行の、; 以降は無視してください。」
	という意味で、コメントと言います。
	これを書いておくと、スクリプトの読みやすさがグッと上がります。出来れば書くようにしましょう。
	
	「;」と同じ意味で、「//」という記号も使えます。僕はもっぱらこちらを使います。
	
	たくさん説明が書きたいときは「/* 〜 */」という記号も使えます。
	これは、複数行に渡ってコメントに出来ます。エディタの色分けがちょっと変ですが、それは気にしなくてもかまいません。
; まずは代入から x = 50 y = 30 pos x, y ; 変数を使います mes "変数のテストです" pos x + 60, y + 50 ; 計算も出来ます mes "x = "+ x +" y = "+ y
	こんな感じです。
	また、変数の内容を変更することも出来ます。
	余談的な位置に書いていますが、重要なことです。
	上のサンプルの次のような式に、違和感があるかもしれません。
mes "x = "+ x +" y = "+ y
	この「"文字列" + 数値」という式ですが、文字列に数値を足すことは、普通に考えると出来ません (プログラマの考え方での「普通」ですが)。
	しかし、HSPには次のようなルールがあるので、可能なわけです。
	
式の最初の値と違う型の値は、すべて最初のと同じ型に変換される。どういうことかというと、「文字列+数値」は、後ろの数値を文字列に変換して、「文字列+文字列」になるのです。
	「変数」という名称では、数値しか代入できない気がします。
	これは数学から持ってきた言葉なので、こんな名称なのですが、英語では「variable = 変わることのできるもの」という意味で、数値はあんまり関係ありません。
	というわけで、当然 "文字列" のようなデータも代入できます。
	以下、そのサンプル。
; まずは代入から Posx = 20 Posy = 30 message = "Posx = "+ Posx +"、Posy = "+ Posy ; 表示する文字列 pos Posx, Posy mes message Posx = Posx + 100 ; Posx + 100 すなわち 20 + 100 = 120 を Posx に代入 Posy = Posy * 3 ; Posy * 3 すなわち 30 * 3 = 90 を Posy に代入 message = "Posx = "+ Posx +"、Posy = "+ Posy pos Posx, Posy mes message Posx += 20 ; a += b は、a = a + b の略。つまり Posx = Posx + 20 Posy -= -20 ; -= も同じ。-20 を引く、つまり +20 する。 message = "Posx = "+ Posx +"、Posy = "+ Posy pos Posx, Posy mes message Posx ++ ; 特殊な書き方。Posx = Posx + 1 と同じ。 Posy -- ; マイナスのバージョン。 message = "Posx = "+ Posx +"、Posy = "+ Posy mes message
※pos 命令については無視すること!
	いろいろ演算子についても説明をいれておきました。
	さて、次から若干ランクアップです!
	変数にも、性格があります。性格と言っても、
	
| 型名 | 内容 | 
|---|---|
| *label (ラベル型) | ラベル位置(後述) | 
| str (文字列型) | "文字列" | 
| double (実数型) | 数値 (実数値) | 
| int (整数型) | 数値 (整数値) | 
| struct (モジュール型) | (当分知らなくていい) | 
| comobj (COMオブジェクト型)  | 
			(知らなくていい) | 
| variant (ヴァリアント型)  | 
			(知らない Σ(@o@) ) | 
	この、「型名」 が 「変数の性格」 です。( struct 型以降の3つは後述 )
	性格というよりかは、性質といったほうが近そうです。
	
	見ての通り、性質(型)によって、代入できるものが違いますね。
	当然のごとく int型変数に"文字列"を代入することは出来ません。
	
	しかし HSP では:
	number = 100
	number = "test"
	これでもエラーを起こしません。何故でしょう?
	※エラーが起きる……スクリプトに間違いがあって、実行できないこと。たまに「HSPに怒られる」ともいう。
	
	すごいことに、HSP では変数にものを代入するとき、代入先の変数の型が違えば、自動的に修正してくれます。
	このおかげで、僕たちはあまり型を気にする必要がないのです! (気にした方がいいかも)
	うれしいですね〜
	
	ただ、修正されるのが「代入時だけ」ということに注意してください。
	引数に文字列型の変数を指定しなければいけないのに
	数値型の変数を指定していた場合、当然エラーが出ます。
	気をつけてください。
	
	……と思いきや、HSPの標準命令では、エラーを起こさないことがあります。
	恐ろしいまでの親切心ですね。
	
	最後に、数値型変数を指定してエラーにならなかったサンプルです。
a = 100 ; 数値型変数 (int型) dialog a, 1, "Error" ; エラー (error) が出るはず
	dialog 命令が出てきちゃってます。
	こんなぎりぎりに。
	→ 第三章へ goto
	by 上大