Excel VBA | 変数の宣言を強制する

Excel VBA VBA
スポンサーリンク

以下では、

  • 「Option Explicit を使う理由」
  • 「誤字ミスでエラーになる例」
  • 「実践的な使い方」
    を初心者向けに、図解イメージとサンプルコード付きで解説します。

1. Option Explicit を使う理由

VBA では、変数を宣言しなくても動くため、一見ラクに見えます。
でも実際には次のようなバグを引き起こします。

例:スペルミスが見つからないケース

Sub Sample_NoExplicit()
    Dim total As Integer
    total = 100

    ' ↓ タイプミスしている!
    toatl = total + 10

    MsgBox "合計は " & toatl
End Sub
VB

結果:

  • 「toatl」という新しい変数が自動的に作られてしまう
  • 中身は空(初期値 0)のままなので、
    表示結果は「合計は 0」となる

つまり、スペルミスしてもエラーにならず、気づかないまま計算が狂う

Option Explicit を使うとどうなる?

Option Explicit

Sub Sample_WithExplicit()
    Dim total As Integer
    total = 100

    toatl = total + 10   ' ← ここでエラー!
End Sub
VB

実行結果:

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

つまり、宣言していない変数は使えないため、タイプミスをすぐ発見できます。

3. 実践的な使い方(設定方法)

新しく作るモジュールすべてに自動で Option Explicit を入れたい場合:

  1. VBA エディタを開く(Alt + F11
  2. メニューから「ツール」→「オプション」を選択
  3. 「編集」タブを開く
  4. 「変数の宣言を強制する」にチェックを入れる ✅
  5. OK を押す

これで、以後の新しいモジュールには自動で

Option Explicit
VB

が先頭に入ります。

4. 実際の現場での使い方

実務でのおすすめパターン:

Option Explicit

Sub CalculatePrice()
    Dim unitPrice As Double
    Dim quantity As Integer
    Dim totalPrice As Double

    unitPrice = 1200
    quantity = 5
    totalPrice = unitPrice * quantity

    MsgBox "合計金額は " & totalPrice & " 円です。"
End Sub
VB

ポイント

  • 全ての変数を Dim で宣言しておくことで、
    データ型のチェックもできる(数値・文字など)
  • 変数名を一覧で把握でき、可読性が向上
  • チーム開発や他人が読むときも理解しやすい

5. 練習課題(初心者向け)

問題:

Option Explicit

Sub PriceCalc()
    Dim price As Integer
    Dim quantity As Integer
    Dim total As Integer

    price = 500
    quantity = 3

    totl = price * quantity  ' ← わざとミス
    MsgBox "合計は " & total
End Sub
VB

実行してみよう!

  • どの行でエラーが出る?
  • どの変数が間違っている?
    → 修正して、正しく結果を表示してみましょう!
VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました