マクロをテストしたり、不具合を探したりする際、
Debug.Printをはじめとした表示機能を使ったり、
最後に削除する作業シートを残したりします。
Debug.Print 対象セル.Address ' ← 処理セルの表示 ' 作業シート.Delete ' ← 一時的なコメントアウト
先日紹介した「配列の中身を新規シートに表示するコード」など、
デバッグ用の自作関数をCallするのもよくありますね。
Call 二次元配列を新規シートに出力する(Arrデータ)
さてこういった作業の規模が大きくなってくると、
これらのコードのONOFFが面倒になってきます。
コメントアウトを取ったり外したり、忘れてマクロが遅くなったり、
外し忘れてログがユーザーに出てしまったり。。。
このような「テストコードが増えてきた問題」の対策として、
「テストコードの実行を管理するフラグ定数を作る」
というテクニックがあります。
やり方はとても簡単で、↓のようなPublicのフラグ定数をひとつ用意しておき、
Public Const Isデバッグモード = False
各テストをこの定数で分岐するだけでOKです。
If Isデバッグモード Then Debug.Print 対象セル.Address If Isデバッグモード = False Then 作業シート.Delete If Isデバッグモード Then Call 二次元配列を新規シートに出力する(Arrデータ)
あとはこの定数のTrue/Falseを切り替えるだけで、
テスト用コードの実行を一括で管理できるというわけですね。
ひとつの改修で複数のテストコードをONOFFしなければいけない時など、
規模が大きくなると割と重宝するテクニックです。
気に入ったら使ってみてください。