読者です 読者をやめる 読者になる 読者になる

t-hom’s diary

主にVBAネタを扱っているブログです。

VBA コンボボックスを使いやすくするテクニック

VBA ユーザーフォーム

コンボボックスといえば、私がこの世で最も嫌いなユーザーインターフェースの一つである。

皆さんも一度くらいこういう使われ方をしているコンボボックスを見たことがあるだろう。
f:id:t-hom:20151217004442p:plain

例えば紙のアンケート用紙10,000枚を手渡されて、このインターフェースで都道府県を入力しろと言われたら発狂しそうになる。

コンボボックスってのは、そもそもそんなに沢山の選択肢を詰め込むものではない。せいぜい7~8個だ。

私が以前にいた現場(社内コールセンターのようなところ)では、ひっきりなしに電話が掛かってきて受け付けた内容をシステムに登録しなければならなかった。
しかし、そこで使われていた受付システムは、まさにこの手のコンボボックスが大量に配置されたイケてないシステムだった。
かくして私はコンボボックスをことさらに嫌うようになったわけだ。

ちなみにリストボックス(以下)に恨みはない。
f:id:t-hom:20151217005029p:plain

同じように見えてもコンボボックスはまず▼で展開するというひと手間がかかるうえに、スクロールせずに見える範囲も狭い。
広々としたリストボックスと比べると使いやすさは雲泥の差である。

ただしスペースの都合等で、どうしてもコンボボックスにしたい場合もあるだろう。
そういう時は、項目側で工夫してやると良い。

たとえばこういう風に3桁の入力用コードをつけてやる。(AKBみたいに、なんとなく読める感じのコード)
f:id:t-hom:20151217005614p:plain

すると、手入力でoskといれた時点で候補が大阪に定まるので、Tabキーでボタンにフォーカスを移すと大阪に確定する。
f:id:t-hom:20151217005708p:plain

最初はコードを間違えたりするだろうけど、使っているうちに勝手に覚えて極めて高速に入力できるようになる。

多少見栄えは悪くなるかもしれないが、見た目のこだわりよりもシステムの利便性の方が優先度が高い。
誰だってさっさと仕事を済ませて早く家に帰りたいのだ。

良いユーザーインターフェースは、使い慣れるにしたがって入力スピードも向上するものだ。
一方、悪いユーザーインターフェースは誰が使っても一様に遅い。

「初めて使う人でも簡単に使えるように」なんて注文してしまうと、この手の苛立たしいインターフェースが出来上がる。

この手のシステムでイライラしたくなければ、注文するときに、「最初多少難しくても良いから、慣れたら高速に入力できるようにして欲しい」とお願いしたほうが良い。毎日使うものだったら、どうせすぐ覚える。

まあとにかく、見栄えが良いからという理由で安易にコンボボックスを使うのはやめたほうが良い。
例えば以下のようにA,D,Cを選ぼうと思ったとき、リストボックスなら3クリックで済むのに、コンボボックスなら6クリック必要になるのだ。
f:id:t-hom:20151217011355p:plain

画面を広々と使えるなら、確実にリストボックスの方が良い。

当ブログは、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、 Amazonアソシエイト・プログラムの参加者です。