変数って?

wikipediaにはこう書いてあります。

プログラミングにおいて、変数(へんすう、variable)とは、プログラムのソースコードにおいて、扱われるデータを一定期間記憶し必要なときに利用できるようにするために、データに固有の名前を与えたものである。

これを私は、「決まっていないモノをとりあえず入れておく箱」だと捉えています。

今まではA1セルに100を入れよう、など「決まっているモノ」しか扱ってきませんでしたが、「計算して値が変化するモノ」や「プログラムを使う人に入力してもらうモノ」など、いろんなモノが必要になってきますよね。そんな曖昧なモノを入れておく箱を用意しよう!それが変数宣言です。

例として

A1セルに○月という文字を入れるプログラムを考えてみましょう。○は、ユーザー(使う人)に入力してもらう形とします。

値を入力してもらう前に、入れておく箱を用意しなければなりません。ここでは、「UserMonth」という名前の変数にしてみようと思うので、

と記述します。Dimは「宣言」、integerは「整数型」という意味で、「UserMonth」という整数型の変数を宣言します(「UserMonth」という箱を用意します!)という意味になります。(「UserMonth」は文字列はでなく変数なので、「”」で括る必要はありません)

次に、ユーザーに入力してもらう準備です。方法はいろいろありますが、ここでは、一番簡単なInputBoxを使います。InputBoxは

のように書き、実行すると以下のようなウインドウが表示されます。

120125-1

プログラムの全容

これを使って、今回の目的のプログラムを書いてみると、以下のようになります。

第1回の記事を参考に、コピペして試してみて下さい!どうでしょう、うまくいきましたか?

120125-2

イメージとしては、こんな感じで動いています。

でもこのままだとエラーが…

上記のプログラム、数値以外のものを入力、又はキャンセルすると「型が一致しません」というエラーが出るのはお気づきでしょうか?これは、変数「UserMonth」は「Integer(整数)」だよ!と最初に宣言しているからなんです。

120125-3

変数にはいろんな型があり、それぞれ宣言した型に当てはまるモノを入れないと「カタチが違うから箱に入らないよ!」と言われてしまいます。ではなぜ「キャンセル」ではエラーが?と思いますよね。InputBoxは、キャンセルを「””(文字数0の文字列)」と捉えるという性質があります。ですので、キャンセルを押すと「この箱はInteger(整数)専用だから、String(文字列)は入らないよ!」と言われてしまうのです。

そのため、こういったエラーが起こらないように、エラー処理を含めてプログラミングをする、ということも大事になってきます。

上記のコードをエラー処理を含めて書いてみると、という例を以下の記事の最後に書いてありますので、読み進めてみてください(・ω・)ノ

よく使う変数のデータ型

  • Boolean … True/False のどちらかしか入らないが容量が軽いので条件分岐などに。
  • Integer … -32,768~32,767の範囲内の整数。
  • String … 文字列を扱う。「”」で括るのを忘れずに!
  • Date … 日付の他、時間も扱えます。

データ型とは変数に格納できるデータの種類で、こんな感じです。「Dim 変数 as データ型」 のように記述します。他にもたくさんありますので、調べてみてくださいね。

「なんでもOK」なデータ型

ちょっと融通が効かない印象ですが、どんな型にも対応できるバリアント型という便利なデータ型も存在します。宣言そのものを省略して(忘れて)しまった場合でも自動的にバリアント型になるという親切設計です。でもこれ、どんなものでも入れてしまえる懐の広さを持っている分、容量を食うのです。

120125-4

この型が必要なときももちろんあると思いますが、なんでもバリアント型にしてしまうとそれだけファイル容量も大きくなり、プログラムの速度も遅くなります。また、変数が多くなった時にエラーが見つけにくくなるというデメリットもあります。

宣言の仕方で使える範囲が違う

今まで、例としてDim ○ As Integerのように、Dimで宣言していましたが、他にもPrivatePublicというものがあります。

  • Dim ・・・ そのプロシージャ内のみ使える
  • Private ・・・ そのモジュール内のみ使える
  • Public ・・・ 全てのモジュールで使える

このように宣言の形で使える範囲が変わるので、違うプロシージャやモジュールを跨いで使ったり、ユーザーフォームなどを使うときには、その使い方に合った宣言方法をとるようにします。

こちらにもうちょっと詳しく書いています

こまめな変数宣言を心がける

変数は、使うモノに合ったカタチで宣言することによって、プログラムの速度も早くなるし、後々見たときに分かりやすくなります。自分が作ったプログラムを誰かが見るときもあるはずです。そんな時のために、是非きちんと変数宣言を行いましょう。

  • このエントリーをはてなブックマークに追加
  • follow us in feedly 646
  • RSSを登録

公開日:2012/01/25


コメントを残す




*印は必須項目です。コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にですがスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)


back to top