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

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

こんにちは!大阪市住之江区に拠点を置く会社『縁紡ぐ』の稲垣です。

当社は、Excel、ACCESS、RPAなどのシステム開発や既存ツールを使った業務効率化の提案、また、ITスキルアップのための教育に力を入れています。効率的なビジネス運営を目指している企業様、ITスキルの向上を図りたい企業や個人の方に、最適なご提案をさせていただきます。業務プロセスの改善とITスキルアップをサポートし、共に成長するパートナーでありたいと考えています。

目次

【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をするなら、変数宣言は必ずするようにしましょう!

記事を書いた人

稲垣

  • Excel、ACCESSでのシステム開発が得意
  • ITスキルを共有し実践的に学びながら成長する人を見るのが幸せ
  • 自家焙煎するほどのコーヒー好き
  • 使用言語 VBA、Python、Javascript、Java、HTML、CSS etc.
  • 保有資格 Kintoneアソシエイト、日商簿記検定2級、マンション管理士、管理業務主任者、情報セキュリティマネジメント、ExcelVBA etc.
  • 業務フロー図の作成や業務時間分析を通して、効率化ポイントを探る人
  • お客様にとって本当に良いことかを第一に考える人
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次