「Option Explicit(変数宣言の強制)」を学べる 練習用マクロ付き Excel ファイル の作り方を、
ステップ形式で 実際にクリックできる内容+サンプルコード付き でまとめます。
目的
この練習用ファイルでは次の3つを体験できます:
Option Explicitを使う/使わないの違い- 宣言忘れやタイプミスがエラーになること
- 正しい宣言で動くコードを書く練習
ステップ1:新しい Excel ファイルを作る
- Excel を開く
- 新しいブックを作る(
Ctrl + N) - 名前をつけて保存(例:VBA_OptionExplicit_練習.xlsm)
📌 保存形式は 「マクロ有効ブック(.xlsm)」 にします。
ステップ2:VBA 開発環境を開く
- 「開発」タブを表示(ない場合は以下を実施)
- [ファイル] → [オプション] → [リボンのユーザー設定]
- 右側リストの「開発」にチェックを入れる → [OK] - 「開発」タブ → 「Visual Basic」をクリック
またはショートカットAlt + F11
ステップ3:Option Explicit 自動挿入を有効にする
- VBE(Visual Basic Editor)で上のメニューから
「ツール」→「オプション」 をクリック - 「編集」タブの中にある
✅ 「変数の宣言を強制する」 にチェックを入れる - [OK] をクリック
これで、今後新しく作るモジュールには自動的にOption Explicit が先頭に付きます。
ステップ4:標準モジュールを作る
- メニュー「挿入」→「標準モジュール」をクリック
- エディタ中央に「Module1」と表示されます
ステップ5:練習コードを貼り付ける
以下の3つのマクロを 同じモジュール にコピーします。
(それぞれ実行して違いを確かめられます 👇)
① Option Explicit なし(エラーが出ないがミスに気づけない)
'--- このマクロでは Option Explicit を意図的に付けていません ---
Sub NoOptionExplicit()
total = 10
tota1 = total + 5 ' ← "l" と "1" を見間違えたミス
MsgBox "結果は " & tota1
End Sub
VB🧠 解説:total も tota1 も宣言していないけど、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:実行して違いを体験
- Excel に戻る(Alt + Q)
- 「開発」タブ → 「マクロ」ボタンをクリック
- 一覧からそれぞれのマクロを選び、順に「実行」
| マクロ名 | 何が起こるか |
|---|---|
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使い方:
- Excel のシートで A1 に数値を入力(例:10)
- マクロ
DoubleCellValueを実行 - A2 に「20」と表示されます
ステップ8:保存と確認
- ファイルを保存(
Ctrl + S) - 閉じても
.xlsm形式ならマクロは保持されます。 - 再度開くときは「コンテンツの有効化」をクリック。
おまけ:自分専用テンプレートを作る
もし今後も VBA を書くなら、このファイルを「テンプレート」として保存しておくと便利です。
.xlsmファイルをコピーして「VBA_練習テンプレート.xlsm」として保存- 新しい練習をするときはこのテンプレートを開いて「名前を付けて保存」で別名保存
まとめ(学びのポイント)
| 内容 | 学べること |
|---|---|
Option Explicit | 宣言忘れやタイプミスを防ぐ |
Dim 宣言 | 変数の型を決めて安全に使う |
| 自動設定 | すべての新しいモジュールで Option Explicit が付く |
| 実例 | 宣言なし・あり・修正版を比較して理解 |

