色々なツールを使う上で誰もが間違えないようにあらかじめ設定しておくことというのはとても重要なのですが、それが本当にコストに見合うのかというお話です。
Accessでフォームを作ってみました。
それぞれの入力ボックスをクリックして入力していくのですが、どこに入力していくのかはっきり画面上分からないので一つ一つに目立たせるということがもしかしたら必要になるのかもしれません。
そこで、それぞれの入力できるボックスに対して、入力できる状態になったら周りの線を赤くして入力が確定してそのボックスの入力モードが外れたら黒い線になるということを仕掛けてみました。
これなら目立つのでどこに入力しているか見失うことはないでしょう。
今入力できるボックスが4つあったので、それに対して入力できる状態になった動きと、入力できなくなった状態の動きと二つずつ必要なので8個のイベントを作らなければいけません。
Private Sub 商品ID_GotFocus() 商品ID.BorderColor = vbRed 商品ID.BorderWidth = 2 End Sub Private Sub 商品ID_LostFocus() 商品ID.BorderColor = vbBlack 商品ID.BorderWidth = 1 End Sub Private Sub 商品カテゴリID_GotFocus() 商品カテゴリID.BorderColor = vbRed 商品カテゴリID.BorderWidth = 2 End Sub Private Sub 商品カテゴリID_LostFocus() 商品カテゴリID.BorderColor = vbBlack 商品カテゴリID.BorderWidth = 1 End Sub Private Sub 商品名_GotFocus() 商品名.BorderColor = vbRed 商品名.BorderWidth = 2 End Sub Private Sub 商品名_LostFocus() 商品名.BorderColor = vbBlack 商品名.BorderWidth = 1 End Sub Private Sub 定価_GotFocus() 定価.BorderColor = vbRed 定価.BorderWidth = 2 End Sub Private Sub 定価_LostFocus() 定価.BorderColor = vbBlack 定価.BorderWidth = 1 End Sub
今回は色を変更して線の太さを変えるということをしたのですがこれに合わせて背景色を変えるだったり文字の大きさを変えるだったりするとどんどんどんどん一つ一つが増えていきます。
実際今回作ってみてわかったのですが、はじめに設定するぶんには一つ作ってコピーすればいいのでそんなに手間ではないのです。色や線の太さを変えるというのもそれほど難しくありません。ですが、後から変化させるものを増やすという時は全ての動きに対してその動作を入れなければいけないのでコピーするにしてもとんでもなく時間がかかります。
また、新しい部品を増やしたと同時にこの動きが発生するので入力するところもヘタに増やすことができなくなります。
このような入力もしやすい仕組みは、全てが決まって全員の同意が得られたところでその後にやっていくとかにしないととんでもない無駄になるということです。
この話の延長が仕様変更が、表面上は簡単なんだけど工数がとんでもなくかかるという一つの理由です。
コメント