変数を使うには、次の3ステップがあります。
変数は必ず宣言します。もう一度言います。必ず宣言してください。
VBAでは、宣言しないで変数を使うこともできます。てか、Excelをインストールすると、標準では宣言しないでも変数が使えるようになっています。しかし、VBAを使いこなせるようになりたいのでしたら、迷わずに設定を変更して、宣言しないと変数が使えないようにしてください。変数の宣言に関しては、次のページで詳しく解説します。
変数にデータを入れるには「=」という記号を使います。これは、数学で"等しい"を表すイコール記号ではありません。「=」の右側(右辺)を、「=」の左側(左辺)に代入するための記号です。たとえば、変数tmpがあったとき、
tmp = 100
は、「変数tmpと100が等しい」ではなく「変数tmpに100を代入する」という意味です。いわば「tmp ← 100」のようなイメージです。上記の命令を実行すると、変数tmpに100が入りますので、結果的に「変数tmpの中身と数値の100は等しく」なりますが、それでも「右辺を左辺に代入する」というイメージが大事です。そうでないと
tmp = tmp + 1
という命令を見たときに混乱します。
「=」は"右辺"を"左辺"に代入するのですから、先に右辺を解決(計算)しなければなりません。その結果を"左辺"のtmpに入れるのですから、結果的に「変数tmpの中身が1だけ増加する」ことになります。
変数の中身を利用するのに難しい手順はありません。ただ変数名を書くだけです。
tmp = 100 Range("A1") = tmp
は、1行目で変数tmpに数値の100を入れ、2行目で、変数に入っている数値の100をセルA1(Range("A1"))に入力します。
変数を扱うときに注意しなければならないのは、変数の名前は絶対にダブルコーテーション("")で囲ってはいけないということです。次の例をご覧ください。
tmp = "田中" Range("A1") = tmp
1行目では、変数tmpに文字列の"田中"というデータを入れています。VBAでは「文字列はダブルコーテーション("")で囲む」のが原則です。しかし、たとえ文字列が入っているとしても、変数の名前をダブルコーテーション("")で囲ってはいけません。
tmp = "田中" Range("A1") = "tmp"
とすると、これは「変数tmp」ではなく「"tmp"という文字列」になってしまいます。中にどんなデータが入っていても、変数名は絶対にダブルコーテーション("")で囲まないという大原則を忘れないでください。
変数に入れるデータのことを「値(あたい)」と呼ぶことがあります。また、変数にデータを入れることを「格納する」「代入する」と表すこともあります。