Excel VBA | 「Option Explicit(変数宣言の強制)」を学べる 練習用マクロ付き Excel ファイル を作る

Excel VBA VBA
スポンサーリンク

Option Explicit(変数宣言の強制)」を学べる 練習用マクロ付き Excel ファイル の作り方を、
ステップ形式で 実際にクリックできる内容+サンプルコード付き でまとめます。

目的

この練習用ファイルでは次の3つを体験できます:

  1. Option Explicit を使う/使わないの違い
  2. 宣言忘れやタイプミスがエラーになること
  3. 正しい宣言で動くコードを書く練習

ステップ1:新しい Excel ファイルを作る

  1. Excel を開く
  2. 新しいブックを作る(Ctrl + N
  3. 名前をつけて保存(例:VBA_OptionExplicit_練習.xlsm
     📌 保存形式は 「マクロ有効ブック(.xlsm)」 にします。

ステップ2:VBA 開発環境を開く

  1. 「開発」タブを表示(ない場合は以下を実施)
     - [ファイル] → [オプション] → [リボンのユーザー設定]
     - 右側リストの「開発」にチェックを入れる → [OK]
  2. 「開発」タブ → 「Visual Basic」をクリック
     またはショートカット Alt + F11

ステップ3:Option Explicit 自動挿入を有効にする

  1. VBE(Visual Basic Editor)で上のメニューから
     「ツール」→「オプション」 をクリック
  2. 「編集」タブの中にある
     ✅ 「変数の宣言を強制する」 にチェックを入れる
  3. [OK] をクリック

これで、今後新しく作るモジュールには自動的に
Option Explicit が先頭に付きます。

ステップ4:標準モジュールを作る

  1. メニュー「挿入」→「標準モジュール」をクリック
  2. エディタ中央に「Module1」と表示されます

ステップ5:練習コードを貼り付ける

以下の3つのマクロを 同じモジュール にコピーします。
(それぞれ実行して違いを確かめられます 👇)

① Option Explicit なし(エラーが出ないがミスに気づけない)

'--- このマクロでは Option Explicit を意図的に付けていません ---
Sub NoOptionExplicit()
    total = 10
    tota1 = total + 5    ' ← "l" と "1" を見間違えたミス
    MsgBox "結果は " & tota1
End Sub
VB

🧠 解説:
totaltota1 も宣言していないけど、VBA は勝手に変数を作ってくれる。
ただし誤字(「L」→「1」など)に気づけないまま、変な結果になる危険があります。

② Option Explicit あり(宣言してない変数を使うとエラーになる)

Option Explicit

Sub WithOptionExplicit()
    Dim total As Long
    total = 10
    tota1 = total + 5    ' ← この行で「変数が定義されていません」とエラーが出る!
    MsgBox "結果は " & tota1
End Sub
VB

🧠 解説:
Option Explicit を書いたので、宣言していない tota1 に即エラー!
ここでミスにすぐ気づけます。

③ 正しい宣言をした安全版

Option Explicit

Sub FixedVersion()
    Dim total As Long
    Dim result As Long
    
    total = 10
    result = total + 5
    MsgBox "結果は " & result
End Sub
VB

🧠 解説:
変数を Dim で明確に宣言。ミスもなく安全に動作します。

ステップ6:実行して違いを体験

  1. Excel に戻る(Alt + Q)
  2. 「開発」タブ → 「マクロ」ボタンをクリック
  3. 一覧からそれぞれのマクロを選び、順に「実行」
マクロ名何が起こるか
NoOptionExplicitエラーなし。だが誤字(tota1)でも動く。結果は意図と違う。
WithOptionExplicit「変数が定義されていません」とエラー。安全!
FixedVersion正常動作。MsgBox に「結果は 15」と出る。

ステップ7:上級編(セルの値を使う例)

もう一歩進んで、セルの値を使う例も入れておきましょう。

Option Explicit

Sub DoubleCellValue()
    Dim inputValue As Variant
    Dim doubledValue As Double

    inputValue = Range("A1").Value
    If IsNumeric(inputValue) Then
        doubledValue = CDbl(inputValue) * 2
        Range("A2").Value = doubledValue
    Else
        Range("A2").Value = "数値を入れてね!"
    End If
End Sub
VB

使い方:

  1. Excel のシートで A1 に数値を入力(例:10)
  2. マクロ DoubleCellValue を実行
  3. A2 に「20」と表示されます

ステップ8:保存と確認

  1. ファイルを保存(Ctrl + S
  2. 閉じても .xlsm 形式ならマクロは保持されます。
  3. 再度開くときは「コンテンツの有効化」をクリック。

おまけ:自分専用テンプレートを作る

もし今後も VBA を書くなら、このファイルを「テンプレート」として保存しておくと便利です。

  1. .xlsm ファイルをコピーして「VBA_練習テンプレート.xlsm」として保存
  2. 新しい練習をするときはこのテンプレートを開いて「名前を付けて保存」で別名保存

まとめ(学びのポイント)

内容学べること
Option Explicit宣言忘れやタイプミスを防ぐ
Dim 宣言変数の型を決めて安全に使う
自動設定すべての新しいモジュールで Option Explicit が付く
実例宣言なし・あり・修正版を比較して理解
VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました