プログラムの作成には欠かせない「変数」ですが、変数とは何かを知らないと、効果的に使うことが出来ません。
元エンジニアが、初めてVBAをやる方に分かりやすく教えます!
変数とは何か?
変数とは、プログラム中で値を格納するために使用される仮想的な入れ物のことです。
みなさんAmazonで商品を購入されると思いますが、それぞれ商品にあった段ボール(入れ物)に商品が入れられて届くと思います。
ここで言う、「商品」=「値」で「段ボール」=「変数」になります。
ZOZOTOWNの箱をイメージしてもらっても構いません。箱に商品が入れて届けられる。
プログラム上では、このZOZOTOWNの箱のことを「変数」と言います。
この「段ボール(変数)」に値を入れることで、プログラムの読みやすさやメンテナンスの向上に繋がります。
プログラミングでは、基本的にコードに直接的に数値を入れることは良くありません。
その数値に変更があった場合に、直すことが容易ではなくなるからです。
変数に値を入れることを「代入」すると言います。
変数って必要?
変数はプログラムには絶対に欠かせないのですが、プログラム入門したばかりの方は変数を使用しないといけない意味がはっきり分からないのではないでしょうか?
変数のメリットは、可読性の向上、繰り返し使える、保守性が高まるです。
可読性の向上
プログラムがどんな処理をするように書かれているかを、誰に対しても読みやすくなっているということです。変数を使ってシンプルにまとめることで、短いコードで済み、読みやすくなります。
繰り返し使える
例えば、「total_money」という変数に「100+200+300」を代入すれば、「total_money」と書くだけで「100+200+300」といちいち書く必要がなくなるのです。
保守性が高まる
可読性が上がることと似ていますが、読みやすく、維持管理しやすいことがプログラムでの保守性になります。変数の値を変えれば、同じ変数を使用している箇所は1度で変更が可能になります。
変数の宣言方法
変数を使用する前に、まず変数の宣言を行う必要があります。
変数の宣言には、データ型と変数名の2つが必要です。
データ型には、整数や小数などの数値型、文字列や真偽値などの非数値型があります。
例:Dim 変数名 As データ型
データ型も正しく指定しないと正常に動かなくなる可能性があるので、気をつけましょう!
- 整数型 (Integer)
16ビットの符号付き整数を表します。
範囲は-32,768から32,767までの整数です。 - 長整数型 (Long)
32ビットの符号付き整数を表します。
範囲は-2,147,483,648から2,147,483,647までの整数です。 - 単精度浮動小数点型 (Single)
32ビットの浮動小数点数を表します。
範囲は、-3.402823E+38から-1.401298E-45までの負の値、0、および1.401298E-45から3.402823E+38までの正の値です。 - 倍精度浮動小数点型 (Double)
64ビットの浮動小数点数を表します。
範囲は、-1.79769313486231E+308から-4.94065645841247E-324までの負の値、0、および4.94065645841247E-324から1.79769313486231E+308までの正の値です。 - 通貨型 (Currency)
通貨の値を表します。
64ビットの固定小数点数で、小数点以下4桁の精度を持ちます。 - 日付/時刻型 (Date/Time)
日付と時刻を表します。
64ビットの浮動小数点数で、整数部分は日付、小数部分は時刻を表します。 - 文字列型 (String)
テキスト文字列を表します。
最大長は2,147,483,647文字までです。 - 真偽値型 (Boolean)
真偽値を表します。
TrueまたはFalseのいずれかの値を取ります。 - Variant (バリアント型)
すべてのデータが入ります。型指定を省略するとこの型指定をしたことになります。
気づいた方はいるかも知れませんが、「Variant型」にすれば良いのではないかと思いませんでしたか?これを多用すると、処理の速度の低下につながり、保守性も悪くなります。
しっかり用途に応じた型を使用しましょう!
変数の命名規則
変数名は、プログラム中で唯一無二である必要があります。(プログラミングでは、「ユニーク」や「一意」であると言ったりします。)
変数名には、英数字とアンダースコアを使用することができますが、数字から始めることはできません。
変数名は、わかりやすく、かつ意味のある名前を付けることが望ましいです。
ただ、初めはどのような名前をつけたらよいか難しいと思うので、下記サイトもしくは、ChatGPTを使ってアイデアを出してもらっても良いと思います。
変数のネーミングに迷った場合は、下記のサイトを参考にしてみてください!!!
変数の初期化
変数を使用する前に、必ず初期化する必要があります。
Dim money As Integer ‘変数宣言
money = 0 ’初期化
初期化とは、変数に初期値を設定することです。初期化を行わない場合、変数には不定値が格納されるため、予期しない結果が生じる可能性があり、上手くいかずにイライラする原因にもなるので、変数を宣言した後は、初期化する処理を入れること心がけましょう!
変数の宣言をしたら、変数の初期化をする!
変数のスコープ
変数のスコープとは、変数が参照可能な範囲のことを指します。
*プロシージャー内で宣言した変数と引数は、そのプロシージャー内のみ使用可能
*モジュールの先頭でDimまたはPrivateで宣言した変数は、そのモジュール内でのみ使用可能
*モジュールの先頭でPublicで宣言した変数は、全てのモジュールで使用可能
サブルーチンを作成する際に、メインのプログラムで宣言した変数が使えるのかを理解していないと、予想していた結果にならない、可読性や保守性が失われる原因になります。
変数の演算
変数は、数値型の場合は数値演算、文字列型の場合は文字列演算を行うことができます。
数値型の演算子には、加算、減算、乗算、除算などがあります。
- 足し算 → + (例:c = a + b)
- 引き算 → ー (例:c = a – b)
- 掛け算 → * (例:c = a * b)
- 割り算 → / (例:c = a / b) 参考例、12 / 8 = 1.5
- 割り算の商 → \ (例:c = a \ b)参考例、12 \ 8 = 1
- 割り算の余り → Mod (例:c = a Mod b)
偶数、奇数判定の際に使える!
文字連結演算子
- 結合 → & (”123” & ”456”)
- 結合 → + (”あいう” + ”えお”)
実践しよう
変数の1通りの説明を終えました。知識だけで満足せずに実践してみてください!
変数(空の箱)を使いこなせると、可読性が上がり、プログラムを書いているのが楽しくなってきます。
変数を使えるようになることが、業務効率化への第一歩です。
一人では心細いという方は下記のURLをクリック!!
もっと詳しく覚えたい方はこちらへ!!
https://www.street-academy.com/myclass/156334
VBAに関する豆知識も発信中!!
https://www.instagram.com/yattyo_marketing/
コメント