【22】VBAの変数宣言の必須化と定数について

記事で紹介しているエクセル
・エクセル2019 [64ビット版]

目次

変数宣言の必須化

これまでは入門編という事で、プログラミングの基本について学んできました。

今回からは初級編となり、少し難しくなりますが、基本的にはまだまだ「基本」の内容です。

何事も基本が大事なので、1つ1つキッチリとマスターしていきましょう。

今回、まずは変数宣言の必須化について説明します。

何の事かと言えば「変数宣言を必ずしないとエラーになる」という記述についてです。

サンプルコードを用意しました。

Option Explicit

Function test19()
    
    Message = "変数です。"
    
    MsgBox Message
    
End Function

これを実行すると以下のようなエラーになります。

画像1:コンパイル エラー: 変数が定義されていません

これまで紹介したサンプルコードと比べると、2つ大きな違いがあります。

1つ目は変数宣言をしていない事です。

実は、VBAは変数宣言をしなくても動作してしまいます。

現代のプログラミングでは、変数宣言しなくても動作する方が多いと思います。

VBAも同じで、変数宣言しなくても、代入した値に応じて、型を自動で判別してくれます。

しかし、VBAには変数宣言をしないとエラーになるとい記述が存在しています。

それが2つ目の「Option Explicit」です。

これは関数の外に記述されてますが、この記述は必ず変数を使う時には変数宣言をしなさいという意味です。

先程も言いましたが、現代のプログラミングでは変数宣言しない方が主流です。

VBAは、変数宣言が必要だった古い時代と現在との過渡期、中間的な時代でしたので、このような記述の名残が残っています。

当サイトではサンプルコードになるべく変数宣言をするようにして紹介します。

変数宣言は、データをどのように扱うかを考える上でも、最初のうちは使ってみることをオススメします。

変数の定数について

変数には定数を指定する事ができます。

以下のサンプルコードを見てみましょう。

Function test19a()
    
    Dim hankei As Integer
    Const pi As Double = 3.14 '定数による宣言
    Dim menseki As Double
    
    '円の半径
    hankei = 10
    
    '円の面積を求める
    menseki = hankei * hankei * pi
    
    MsgBox menseki
    
End Function

このサンプルコードでは、円の面積を求めています。

円の面積は、「半径 × 半径 × 3.14」で求める事が可能です。

定数とはその名の通り、固定値です。

今回のサンプルコードでは「Const pi As Double = 3.14 ‘定数による宣言」で「Dim」ではなく「Const」と指定する事で、定数の宣言が可能です。

円周率パイを、変数piにて定数にしました。

これのメリットは何でしょうか?

例えば円周率のように、決して変わらない値があると思います。

それがもし、プログラムの中で値が変わってしまえば、求めたい結果が違ってきてしまいます。

そこで、変わることの無い値には固定値である定数を用います。

そうする事で、プログラムの不備による結果ミスを防ぐ事ができます。

例えば、定数に改めて値を代入すると、以下のようなエラーになります。

画像2:定数に値を代入した場合のエラー

簡単なプログラムなら、定数に値を代入するようなミスは起きないかもしれませんが、大規模なプログラムになればなるほど、こうした指定は大事です。

現在のプログラミング言語には変数宣言しない事が主流と解説しましたが、定数の指定はよく使われています。

また、プログラミング言語Pythonには定数の機能がありませんが、変数名を全て大文字で書いたものを定数にするという、暗黙の命名規則ルールもあります。

定数の考え方は大事なので、必要に応じてしっかり使っていきましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次