変数の使い方


変数を使うには、次の3ステップがあります。

  1. 変数を宣言する
  2. 変数にデータを入れる
  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"という文字列」になってしまいます。中にどんなデータが入っていても、変数名は絶対にダブルコーテーション("")で囲まないという大原則を忘れないでください。

変数に入れるデータのことを「値(あたい)」と呼ぶことがあります。また、変数にデータを入れることを「格納する」「代入する」と表すこともあります。