今回から実際に僕たちが作ったシステムをユーザーが使用すると仮定してユーザーフォームを何個か作っていきたいと思います。
プログラムの知識やスマートなコードの書き方などは上には上がいるものでいくらでも凄い方たちはいます。
しかし、僕たちがExcelVBAでプログラムを書くのは自分が楽する為でもありますが、ユーザーに使用してもらって更に価値が上がります。そしてその「ユーザー」を意識したプログラムを作れる人はアマチュアレベルでは中々いないのではないかと思います。(かくいう僕はアマチュアレベルですが、ユーザーインターフェースを作りあげるという意味ではそれなりの自信を持っています)
例えば僕らが一生懸命組み上げた数式でもセルにロックをかけていなければ(色を変えたりコメントを入れたりしたくてロックされるのを嫌う方もいるので)簡単にデリートされてしまったりします。
そこで他の方と差をつける為に工夫を凝らして使いやすいものを作っていければ、普通にプログラムが凄い方と肩を並べて戦えるのではないかと思うわけです。
ユーザーを意識するとは!?
例えばパソコンにかなり疎い方に使ってもらうとして、それでも視覚的・感覚的に使えるものが本当に良いプログラムなのではないかと思います。
余計な所をクリックしない仕組みやセルをあっちこっち選択しなくてもよい仕組みを意識してみましょう。
そして、実際にそういった方に使ってもらって僕らが意図しなかった所でデバッグが出る。そういった所がきっと使いにくかったりエラートラップが足りていなかった部分だと思うんです。
ユーザーフォームのパーツをお勉強
という事でより良いユーザーフォームを作るためには今までお勉強してこなかったユーザーフォームのパーツをお勉強していきましょう。
まず、TextBox・CommandButton・Label・Frameについては前回のユーザーフォームを作成する回で行いましたので割愛します。ご覧になってない方はユーザーフォーム(1)からの回を参照して下さい。
今回は上記に加えて僕が良く使うパーツを紹介していきます。
■コンボボックス(ComboBox)
Excel上でリストを使用した時の様な動作が可能です。アイテム(中に入れる値)を追加する事が可能で右側の▼を押すとリストを展開させる事が出来ます。
■リストボックス(ListBox)
コンボボックスがもう少し広めに展開しているようなイメージです。コンボボックスの様にアイテムを追加する事が出来ます。
■マルチページ(MultiPage)
いわゆるサイトを開いている時とかのタブの様なイメージです。一つのユーザーフォームの限られたスペースの中に分類ごとに一気にボタン等を一気に展開する必要がない時にタブの名前を付けてページを切り替えられるようにすることができます。
■チェックボックス(CheckBox)
どこかのサイトによくあるようなアンケート形式のものとかに使用しやすいです。
クリックする事で左側にある四角にチェックが入ります。同じユーザーフォームの中に複数存在していても複数チェックを入れる事が出来ます。
■オプションボタン(OptionButton)
チェックボックスと似たようなものですが、同じユーザーフォームの中に複数あっても一つにしかチェックを入れる事ができません。
■トグルボタン(ToggleButton)
ボタンを押すとValueがTrue、押されていない状態だとValueがFalseになります。
ボタンが押されていたら何かしらのイベント発動みたいな時に使用できます。
前回やったものに加えてこれらを覚えておけば大体の望んだ動作はさせる事が出来るのではないでしょうか?
という事で次回はコンボボックスとリストボックスの使用方法からお勉強していきましょう。