EXCELでDIY |
Excelで競馬分析をしよう | |||
Home > DIYしよう!> ExcelでDIY |
お知らせ | ソフトウェア | 競馬研究 | DIYしよう | 出馬表 | 開催情報 | BLOG | リンク | モバイル |
■変数ってなんだ?今回は前回でもちょこっと触れた変数について。はっきり言ってつまらん内容ですが、データを自由自在に扱うためにはどうしても必要なことなので、理解できなくても使える様になりましょう。普段パソコンを利用していると、様々な形式のデータに触れると思います。画像であったり、音楽であったり、テキストであったり…。これらは形式が違えど、HDDやメモリ上に読み込まれます。HDDは一度書きこむと、電源を落としてもデータが残っていますが、メモリ上のデータは、電源を落とすと消えてしまいます。HDDにはデータベースの様な消えては困るデータを、メモリには一時的に利用したいデータをと言うのが、パソコンの基本思想ですね(すごく乱暴な言い方ですが…)。 代わりにプログラム中では、変数という記憶領域を必要に応じて定義し、データの一時格納を行います。メモリにデータを保存する際には、メモリアドレスを意識しなければなりませんが、変数を利用すれば意識する必要がなくなります。 ■変数のルール変数は必要に応じで、メモリ上に領域を確保し、使い終わった時にアプリケーションが解放してくれる便利なものです。ただ、利用する上でいくつか守らなければならないルールがあるので、注意が必要です。
上記ルールの中で重要なポイントは、名前を付けることと、使用する前に宣言することです。出来れば併せて変数の型も指定したほうがいいでしょう。VBは初心者向きに設計されているので、変数の宣言や型の指定を省いてもプログラムは動きます。でも、変数にまつわるバグは分かりづらい上に、後々まで残るので宣言をした方がいいです。 ■変数の宣言使用する変数をあらかじめ、登録する作業のことを「変数の宣言」と言います。この作業は、VBに○○という名前の変数を使うので、メモリを確保してくださいと言う意味です。だから、未使用の変数があっても、メモリは消費されます。変数の宣言は、Dimステートメントを使います。 Dim szTxt 上記は、szTxtと言う名前の変数を宣言すると言う意味です。これをプログラムやプロシジャーの初めに記入するだけです。ただし、変数にはグローバル変数とローカル変数があり、変数が有効になる範囲が違います。変数の有効範囲(スコープ)とは、宣言の有効範囲のことであり、範囲の外では宣言は無効です。分かりずらいと思うので、こう考えてください。
図2.変数の有効範囲(スコープ)
変数にはもう1つ重要なルールが有ります。それが型です。変数は数字や文字を入れるための入れ物にすぎず、実際にデータを入れるまでどんなデータが入るか分かりません。作っている本人には分かっていても、あなたの書いたソースコードを動かす立場(PC)にしてみたら、たまったものでは有りません。好き放題データをほおりこまれて、効率よく仕事なんぞできるはずもないですね。しかも、PCは人間ほどの柔軟性が無いので、1cmのものを図るのに1mの物差しを持ってくるかもしれません。 |
宣言型 | 型名 | 使用メモリ | 説明 |
Integer | 整数型 | 2バイト | -32,768〜32,767の範囲の整数 |
Long | 長整数型 | 4バイト | -2,147,483,648〜2,147,483,647の範囲の整数 |
Single | 単精度浮動小数点数 | 4バイト | -3.402823E38〜-1.401298E-45(負) 1.401298E-45 〜 3.402823E38 (正)の範囲の実数 |
Double | 倍精度浮動小数点数型 | 8バイト | -1.79769313486232E308〜-4.94065645841247E-324(負) 4.94065645841247E-324〜1.79769313486232E308(正) の範囲の実数 |
Date | 日付型 | 8バイト | 西暦100年01月01日〜9999年12月31日までの日付 |
String | 可変長文字列 | 10+文字数 | 0〜2GBまでの可変長文字列 |
String*n | 固定長文字列 | 文字列の長さ | 0〜2GBまでの固定長 |
Variant | バリアント | 内容による | 中に代入されたデータにより変数の型が変化 |
注)他にも変数の型は存在しますが、ここでは省略します
数字が苦手な人が見れば発狂しそうな数値が出ていますね(笑)。ざっと挙げるだけでも以上のような型が存在します。面倒ならVariant型を宣言すればいいのですが(VBでは何も変数の型を書かなければ自動的にVariantになる)、その場合バグの見つけずらい出来の悪いソースコードになるので、初めから変数の型を意識してコードを書くようにしましょう。続けて宣言したい場合には、
Dim szTxt as String,i as Integer
カンマ(,)で区切れば複数の変数の宣言が行えます。
今回はここまで。面白くない話しを長々と説明してすみません。
次回は今回出てきた変数を使って、ワークシートのちょっとした分析をします。