フォームにテキストボックスやらチェックボックスやらリストボックスやら、OKボタンやらキャンセルボタンやらを配置する。この際、テキストボックスの入力を8文字に制限したい。

この場合、テキストボックスのプロパティを変更し、MaxLengthを8とするのが一般的かもしれないし、が、あまり推奨しない。なぜなら、VBAのソースコードを追いかけてもその制限は見えないからだ。保守性が落ちる原因のひとつといってもいいだろう。


この場合は

・OKボタンが押された時にテキストボックスの文字列の長さをチェックする

・フォームにフォームの定義をVBAで設定するコードを書いておき、リリース前に実行しておく

のいずれかをお薦めする。


前者は画面と処理とを分離しようという考え方で、オブジェクト指向の言語で提唱されている方法のひとつである。チェックする処理も共通化できる。

後者はコードを可視化するためのものである。併せてタブ順なども指定するようにしておけば画面項目の追加や削除の時にも対応が早い。


・他人のコードをチェックするときの効率

・テスト項目をプログラムから抽出するときの漏れを防ぎやすい

・保守性が上がる

・ソースの検索の対象になる

などのメリットもある。


ただ、これにはごく小規模なものであれば不要だと反感を覚える方もいらっしゃるだろう。そこは臨機応変に、しかしやり方だけはきちんと決めておくことで保守性は確保するよう考えておく必要がある。