これまでたくさんマクロを書いてきたのでよくわかりますが、モジュールレベル変数はデメリットばかりで嫌いですw
デメリット
■汎用性が低い
サブルーチンがたくさんある場合、
グローバル変数を参照されまくります。
グローバル変数が参照されればされるほどエラーがでやすくなっちゃいますよ(>_<)
オブジェクト型を使用してたら、処理対象ではないシートやブックに処理が行われる可能性あり!
計算がうまく行われない可能性あり!
■保守性が低い
このサブルーチンのグローバル変数はこれ、あのサブルーチンのグローバル変数の動きはこう、、、などなど
変数の後追いが面倒!
また、変数の型が変わればまたコードの書き直し、、、
めんどくせぇw
などなどの理由で自分はグローバル変数が嫌いです。
デメリットばかり言っても仕方ないので、
あえてメリットも言います
メリット
■初級者がとっつきやすい
最大の要素がこれだと思います。
モジュールレベル変数を使う人は、 Functionプロシージャ や 引数付きSubプロシージャ が扱えないからでしょう。
例えばブックとブックで計算や転記処理をする場合、
モジュールレベル変数でブックとブックの処理を強引にがちゃがちゃ実行させているのかと思います。
■コードの少ないモジュールなら変数がスッキリ?
強引にあえて言えば何度も変数を宣言しなくていいのでコードがスッキリ?する。かもしれません、、、
構造体使えばよくね?って思いますがw
こんな感じでモジュールレベル変数をディスってしまいましたw
是非、モジュールレベル変数の使用は控えましょうw
ではでは♪
コメント