【VBAで感動する瞬間⑫】エラーの対処法その2 〜黄色いバーの正体と、成長のステップ〜
記事
学び
こんにちは。
ごんた@VBAレッスン です。
今日は、私自身が実務で積み重ねてきた
VBAデバッグの成長段階 をまとめてお話しします。
特に、ほとんどの人が知らない
“黄色いバーを動かす”という裏技的デバッグの位置づけについて。
これは、知った瞬間に世界が変わるレベルの話です。
■ ① 最初の状態(多くの人が通る道)
● やっていたこと
- ブレークポイントを置く
- 実行してエラーが出る
- 修正する
- 最初から再実行
- エラーが消えるまで繰り返す
● このやり方の特徴
- 正しい
- 真面目
- 教本通り
- でも エラー対処に時間がかかる
● 問題点
- 毎回初期化からやり直し
- 同じ状態を作るのが大変
- 途中状態を比較できない
- 「直った」が「理解」になりにくい
👉 労力で殴るデバッグ
■ ② 中級:ブレークポイント+F8
● できるようになったこと
- エラーの手前で止める
- F8で1行ずつ実行
- 変数値をその場で確認
- エラー行だけでなく「前後を見る」
● このレベルの強み
- 原因特定の精度が上がる
- 推測ではなく事実で確認
- VBAでは王道かつ必須
👉 状態を見るデバッグ
■ ③ 転換点:黄色いバーがドラッグできると知る
● 知る前
- ブレークポイントまで毎回最初から走らせるしかない
● 知った瞬間
- 今の状態のまま
- 実行位置を戻せる/変えられる
● 起きる認識の変化
- コード実行は「一方向ではない」
- 実行フローは 実験対象
- デバッグが「検証」から「実験」に変わる
👉 衝撃を受けるのが普通
■ ④ 黄色いバー操作の本質(重要)
● できること
- 同じ行をもう一度通す
- If の手前に戻す
- 代入前後を比較する
- 条件違いをその場で試す
● これは何か?
- ✅ デバッグ用の裏技
- ❌ 通常運用の手段ではない
■ ⑤ なぜ「ほぼ知られていない」のか
- 公式ドキュメントにほぼ記載なし
- 初心者が使うと事故る
- 説明が難しい(状態が壊れる)
👉 現場で偶然知る人しか辿り着かない
■ ⑥ 教えるなら必ずセットで伝える注意点
● 使ってよい場面
- 値の比較
- If条件確認
- 計算結果の変化
- 副作用の少ない行
● 絶対に戻してはいけない行
- Set ws = ...
- Workbooks.Open
- Add / Create
- Raise
- 初期化など「状態を作る行」
👉 状態を壊す覚悟がある時だけ使う
■ ⑦ 上のレベルで教える内容の本質
操作ではなく、これを教える。
- 壊れやすい行の分類
- 境界値(0 / 1 / Nothing)
- 「次に壊れる行」を予測する視点
- Stop文・ウォッチ・ログの考え方
- F8は「調査」ではなく「仮説確認」
👉 壊れ方の地図を持たせる
■ ⑧ 結論(この話の核)
- 繰り返し実行していたのは間違いではない
- 黄色いバー操作は
- 強力
- 危険
- 教えられていない
🌱 まとめ(ごんた式)
VBAデバッグは
「止める」→「見る」→「戻して試す」で一段進化する。
私自身が苦労して辿り着いた知見ですが、
同じ道を歩く方の助けになれば嬉しいです。
🌱 VBAを学び始めた方へ。
“黄色いバーの正しい使い方”まで丁寧に教えるレッスンはこちら!