【Excel VBA】VBEでは「変数の宣言を強制」にする方法とした方がよい理由

ExcelVBA変数の宣言を強制する方法とおすすめする理由
目次

【Excel VBA】VBEで「変数の宣言を強制」にする方法

VBAをやり始めると、変数は宣言しなくても使えることに気づくと思います。まずは、『変数の宣言を強制』する設定方法をご紹介します。

VBAで「変数の宣言を強制」に設定する方法

STEP
ツール ⇒ オプション
STEP
「変数の宣言を強制する」にチェックを入れる
STEP
OK で完了

これで設定は完了です。

Option Explicit が追加されるようにる

宣言を強制的にすると、Moduleなどの最初にOption Explicitが追加されるようになります。

OptionoExplicitで変数強制宣言

Option Explicitが記述されている状態で、変数Aは「宣言⇒代入⇒メッセージボックスで表示」ですが、変数Bは「代入⇒メッセージボックスで表示」です。

Option Explicit

Sub testSengenAri()
    Dim A As String
    
    A = "あり"
    MsgBox A
    
End Sub
Sub testSengenNashi()

    B = "なし"
    MsgBox B

End Sub

ちなみに、Option Explicitがない状態で実行しようとすると、次のように実行が出来ます。

Option Explicitで実行しようとすると、下のように宣言していな変数が青くなり、エラーメッセージが表示されるようになります。

『変数宣言を強制的する』を設定することで、変数の宣言し忘れを防ぐことができます。

ツールのオプションにある『変数の宣言を強制する』にチェックを入れいていても、モジュールの先頭にある『Option Explicit』を削除すると、宣言しなくても変数が使えるようになるので、間違って消さないように注意しましょう

変数は、なぜ、宣言する方がいいのか?

VBAでもそうですが、Pythonなどいくつかの言語は、変数を宣言しなくても使えるようになっています。じゃあ、なぜわざわざ変数は宣言した方がよいかの理由をいくつか考えてみましょう。

タイプミスの防止

変数名を入力するときに、タイプミスした時にすぐに気づけるようになります。

例えば、次のコードのような場合、強制宣言していないとタイプミスに気付くのは、計算結果が自分が思っている結果ではないことに気づいてからと、なってしまいます。

Option Explicit

Sub smaple()

    Dim sumTotal As Double
    
    sumToatl = 100
    
    
    Dim Average As Double
    
    Average = sutotal / 5
    MsgBox Average
End Sub

実際、Option Explicit を消して実行してた結果です。

VBA変数目のタイプミス

変数の宣言を強制していないと、どこが間違っているのか、コードを順番に見ていく必要があります。

では、Option Explicitがあればどうでしょうか。

「sumTotal」を「sumToatl」てタイプミスしていることが、すぐにわかりましたね!

『変数の宣言を強制する』に設定したことによって、予期せぬエラーやバグの原因となるタイプミスを防ぐことができます。

リソースの無駄遣い防止

VBAでは、明示的に宣言されていない変数は、VBAによって自動的に『Variant型』という、配列でもなんでも入る型として作成されます。Variant型は、他のデータ型よりメモリ消費量が多く、パフォーマンスに影響を与える可能性が増えてしまいます。

コードの可読性の向上

すべての変数が明示的に宣言されている場合、コードを読む人はどの変数がどのような目的で使用されているかを容易に理解することができます。

これにより、コードのメンテナンスが容易になり、チームでの開発効率も向上します。

VBAをするなら、変数宣言は必ずするようにしましょう!

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

コメント

コメントする

目次