川村渇真の「知性の泉」

ボタンを利用した使い勝手の向上


 データベース内のレイアウトを切り替える操作は、できるだけ簡単に使えることが望ましい。画面上にボタンを追加する方法で、全体の使い勝手を大幅に向上できる。初心者でも迷わずに使えるためには、いろいろな点で考慮する必要がある。また、ボタンを用いた機能追加では、後で変更しやすいように作ることも重要だ。使い勝手と変更での柔軟性の2点を考慮しながら、データベース全体を設計する。
 ボタンに割り当てる機能は、データベース・ソフトが持つプログラミング機能(マクロやスクリプトと呼ぶこともある)に依存する。かなり複雑な処理を作れるなら問題ないが、簡単な機能しか持たないソフトでは、できないことも多い。可能な範囲内で作成するのが、現実的な対応だ。レイアウトの切り替えをボタンで操作できるだけでも、使い勝手はかなり向上できる。


●メニューを避けてボタンを用いる

【内容】独自に作成した機能を、ボタンとメニューの両方で実現可能な場合は、できるだけボタンとして付ける。機能が多すぎて、すべてをボタンとして付けられないときだけ、使用頻度の低いものをメニューに回す。
【理由】ボタンとメニューでの一番の違いは、ユーザーの見付けやすさだ。ボタンであれば、レイアウトの表示で画面に現れるので、その機能があると気付く。ところがメニューは、メニューバーを操作してメニュー項目を表示させなければ、どんな機能があるのか分からない。また、いくつかのメニューが最初から付いているので、追加したメニューがあることに気付きにくい。この差は非常に大きい。データベースを始めて使うときには、メニューの機能では気付かない可能性が高い。
【作成上の注意点】ほとんどのそふとでは、レイアウト上に貼り付ける形でボタンを用意する。この方式なら、レイアウトごとに必要なボタンを付けられるので、スペースを有効に活用できる。同時に、不要なボタンを動作させてトラブルを引き起こす心配もない。

●メニューをまったく使わないようにボタンを用意

【内容】新規レコードの追加、レコードの削除、前後のレコードへの移動、ソート、検索、印刷、データベースの終了など、メニューから実行できる機能のすべてを、レイアウト上にボタンとして用意する。そのレイアウト上で行う全部の操作が、ボタンから実行できるように作る。
【理由】データベースの一般的な使用では、独自に追加した機能だけでなく、メニューに最初から用意してある機能(レコードの追加など)も利用する。これらの機能をメニューから操作すると、ボタンとの使い分けが必要で、ユーザーが混乱しやすい。より使いやすいデータベースを求めるなら、基本的な機能も含めて、全部をボタン操作で統一すべき。
【作成上の注意点】レイアウト上に加えるボタンは、そのレイアウトで使う可能性がある機能に限定する。すべてをボタンから実行することに慣れたユーザーは、メニューを選んで実行することはしない。そのため、必要な機能だけをレイアウト上に配置することは、余計な機能の実行を防止する効果もある。

●ボタンだとわかるデザインを採用

【内容】レイアウトを表示したとき、ボタンだと素早く認識できるデザインを採用する。ボタンの内側が少し浮き上がった立体的な絵が、もっとも適している。システム(OS)の標準的なボタンのデザインでも構わない。
【理由】レイアウトを見たとき、どれがボタンなのか区別できなければ、その機能があると分からない。ボタンかなと迷うようなデザインも失格だ。誰が見てもボタンだと思うようなデザインが、ボタンには必須である。
【作成上の注意点】立体的なボタンを描く機能を持つソフトでは、その機能を利用する。それ以外は、グラフィックス・ソフトで描いたボタンの絵をペーストし、ボタンとして利用する。ボタンの絵をまとめたレイアウトを用意して、そこからコピーする方法が、レイアウト作成の効率化に役立つ。ボタンの絵は、大きさや色の違うものを何種類か用意して、状況に応じて使い分ける。サイズに関しては、高さが同じで、横幅が異なるものを2または3種類ほど用意する。これらのボタンは、上に文字や絵を加えて利用するため、文字のないボタンの絵だけで十分だ。
【Mac上の注意点】カラーの256色表示では、システムパレットと呼ばれる256色が用いられる。ボタンとして描く絵では、この中から色を選んだほうがよい。そうすればボタンにディザが加わらず、美しく表示できる。

図1、立体的なデザインの絵を採用すると、ボタンだと簡単に分かる。

図1

図2、何種類かのボタンの絵をまとめて貼り付けておくと、そこからコピーして使えるので、作業効率が向上する。

図2

●ボタンの機能を明確に伝える

【内容】各ボタンに割り当てられている機能は、できるだけ明確に伝える。アイコンのような絵で表す方法と、文字で表す方法の2種類があり、両方を組み合わせることも可能。アイコン方式では、印刷する機能なら、ボタンの絵の中にプリンタのアイコンを入れる。この方法の利点は、文字だけの場合に比べて、機能が素早く見分けられることだ。ただし、機能を的確に伝えるアイコンのデザインは意外と難しい。文字方式では、機能を言葉で表現して、ボタンの上に文字を加える。言葉を用いるので、どんな内容でも表せる点が最大の特徴だ。アイコンと言葉を併用するときは、アイコンで大まかな意味を伝え、細かな違いを言葉で補う。
【理由】ボタンの機能が正確に分からないと、試しに動かす人も現れる。実行する機能によっては、大切なデータを失うこともある。そんなトラブルを発生させないためには、ボタンを見ただけで機能が理解できなければならない。ボタンの数が増えると、似たような機能を持つ可能性が高くなる。たとえば、印刷のボタンが1つだけなら、印刷であることを伝えれば済むが、印刷が2つ以上あると、その違いを表す必要性が出てくる。どこまで細かく説明すべきかは、ボタンの数に依存するわけだ。
【作成上の注意点】アイコンでも文字でも、ボタンの絵の上に描く方式が可能なソフトでは、ボタンの絵を共通で使える。作成の手間を減らすためには、アイコンの絵も含めて使い回したい。どれだけ共通で使えるかがポイントだ。また、レイアウト上のスペースは有限なので、できるだけサイズの小さなボタンが望ましい。単純な機能だけなら、アイコン方式のほうが小さく作れる。しかし、細かな機能の違いまで表現するのには向かない。ボタンの種類が多くて細かく区別したいケースでは、文字方式のほうが適している。データベース内では両方式を混在できるので、文字方式を中心にしながら、アイコンのほうが上手に表現できる機能だけにアイコン方式を用いるのが現実的だろう。

●文字方式でのボタンの機能表現は2行で

【内容】文字を用いたボタンの機能表現では、できるだけ短い言葉を用いる。上下の2行で構成し、機能の分類を上側に、目的や内容を下側に割り当てる。上側の分類には、「入力」、「個別表示」、「一覧表示」、「印刷」、「ソート」など言葉を入れる。下側に入れる言葉は、上側の言葉によって異なる。上側が「一覧表示」なら、「全項目」や「連絡先」として、一覧表に含まれる項目を示す。上側が「ソート」なら、「名前順」や「会員番順」のような並び順を入れる。データベースを終了する「終了」や、メニュー画面へ移動する「メニュー」のように、1行で機能が伝わるものは1行にしても構わない。文字数が少ないボタンでは、ボタンの占有面積を減らす意味から、幅の狭いボタンの絵を用いる。
【理由】ボタンを大きく作れないのに加え、ボタンの数が多いと、効率的に機能を伝える必要が生じる。2行に分けて上側を分類に用いる方法は、理解しやすいのが大きなメリット。上側が同じボタンなら、似たような機能で何かが少し異なると推測できるからだ。
【作成上の注意点】ボタンの大きさを小さくすると、ボタン上に表示できる文字数は少なく、上手に言葉を短くすることも重要だ。たとえば4文字しか表示できないなら、「会員番号順」の5文字を「会員番順」と4文字に変える。「番号」は「番」と短くしても意味が通じるためだ。また、別な考え方もある。「ソート」ボタンなので、「順」を付けなくても順序を示すと理解でき、「会員番号」とする方法だ。どちらを採用するにしても、データベース全体で短縮ルールを統一して、ユーザーの混乱を最小限に抑えたい。

図3、ボタンの機能を文字方式で表現するなら、2行に分ける方法がお勧め。

図3

●機能の分類でボタンを色分け

【内容】機能の分類に合わせて、ボタンの色を使い分ける。たとえば、表示レイアウトへの移動は黄色で、印刷は水色で、ソートは緑色といったようにだ。2行の言葉でボタンの機能を表した場合には、上側の分類と色分けを一致させる。ただし、色数が足りないときは、似たような分類に同じ色を割り当てる。ユーザーの混乱を最小限に抑えるためには、すべてのデータベースで色分けを統一することも重要。
【理由】テキストだけのボタンが数多く並ぶと、素早く区別しづらいのが欠点だ。それを少しでも改善するためには、ボタンの色分けが非常に有効。
【作成上の注意点】ボタンの絵を並べた作業用レイアウトを利用するときは、色に割り当てた機能分類をボタンの横に付けることで、色分けを覚えなくても正しい色のボタンが選べる。

●全レイアウトでボタンを下部に配置

【内容】すべてのレイアウトで、ボタンを並べる位置を統一する。下側で横一列に並べるのがベスト。
【理由】すべてのレイアウトで、同じ位置にボタンが並んでいるほうが、ユーザーの混乱は少ない。データベース・ソフトのレイアウト機能では、縦方向にブロック分けしてある。そのため、一覧表のレイアウトでは、ボタンを縦に並べることが難しい。結果として、すべてのレイアウトで位置を統一するためには、横一列に並べるしかない。横に並べるとしたら上側と下側があるが、マウスカーソルがデータ表示の邪魔にならないためには、下側のほうが良い。
【作成上の注意点】下側で横一列に並べるので、レイアウト上ではフッター部分にボタンを付ける。少しでも美しく見せるためには、左端からの距離やボタンの間隔を揃えることが大切。ボタンが並ぶ部分では、データを表示する部分と明確に区別するために、区切り線を加える。自動的に区切り線を描くレイアウト(一覧表形式など)もあるため、区切り線を表示しないレイアウトでは、自動表示の区切り線と同じ線をレイアウト上で加える。

●ボタンの並び順は、機能で分類して決める

【内容】レイアウト上のボタンの並びは、基本的に、機能の分類で決める。レイアウト切り替えのボタンをいくつか並べたら、次にソートのボタンを並べるというように、基準となるルールを定める。また、機能の並び順と機能内の並び順は、すべてのレイアウトで統一する。
【理由】ボタンの並びは、ユーザーが混乱しないことを最優先する。機能で並べると、似たボタンが近くに配置され、見付けやすいし覚えやすい。
【作成上の注意点】機能の順番を決めるときは、使用頻度を考えるとよい。レイアウト切り替えのように、よく使うものから左に並べる。この考え方は絶対的なものではなく、ベストと思う基準が他にあれば、それを採用する。

●複数レイアウトで共通のボタンは同じ位置に

【内容】ボタンの中には、複数のレイアウトに付けるものもある。メニューレイアウトや使用頻度の高い表示用レイアウトへの移動ボタンなどだ。それらは、どのレイアウト上でも同じ位置に付ける。メニューレイアウトだけは特殊で、メニュー部分に共通ボタンが付いている。使い勝手を優先するのなら、同じボタンが2つあっても構わないので、下のボタン領域にも共通ボタンを配置する。
【理由】使用頻度の高いボタンほど、画面上の位置を覚えてしまい、無意識に操作することが多い。そのボタン位置がレイアウトごとに異なると、使い勝手はかなり低下する。さらには、誤操作の原因にもなりやすい。
【作成上の注意点】レイアウト間でのボタン位置の統一は、機能分類で並び順を決める方法と矛盾することもある。その場合には、位置を共通化するボタンを少数に限定して、それ以外のボタンは機能分類順に並べる。また、別な実現方法としては、レイアウトの種類ごとに位置を統一する方法もある。たとえば、表示用レイアウトだけの共通ボタンを決め、表示用レイアウトだけで統一する方法だ。どちらもベストとは言えないが、どちらかといえば前者のほうが使いやすい。なお、共通ボタンに該当するレイアウトでは、ボタンの代わりに、ボタンと同じ文字を含んだ目立つ色の四角を付ける。これにより、そのボタンに該当するレイアウトを表示していることが明確に伝わる。

●続けて使う可能性の高いボタンは並べて配置

【内容】続けて使う可能性の高いボタンは、できるだけ隣に配置する。対象となる組合せは、前のレコードへ移動するボタンと次のレコードへ移動するボタン、1日分の入力件数の確認ボタンと更新件数の確認ボタン、など。
【理由】連続して使う可能性が一番高いのは、前後のレコードへ移動するボタンだ。たとえば、次のレコードを表示するボタンは、目的のレコードまで急いで移動しようと、何度か続けてクリックするような使い方をする。その場合、思わずクリック回数が多すぎて、行きすぎることも起こるだろう。すると、逆方向となる前のレコードへ移動するボタンをクリックするわけだ。その際に、2つのボタンが離れていると、マウスの移動量が多くなり、使いやすいとはいえない。前後のレコードへ移動するボタンは、並べて配置すべき。
【作成上の注意点】連続して使う可能性の高いボタンの組合せは、それほど多くないのに加え、関連した機能の組合せがほとんど。そのため、機能分類で並び順を決める方法と衝突することは少ない。もしぶつかった場合には、絶対的ではないが、こちらのルールを優先する。レイアウト上のスペースに余裕があるなら、同じボタンを2個付けて、両方の条件を満たす方法が使える。

●各レイアウトへの移動ボタンをまとめたメニュー用レイアウトを用意

【内容】データベース内の各レイアウトへ移動するボタンは、メニュー用のレイアウトとしてまとめる。各ボタンには、割り当てられた機能を簡単に説明したテキストを加える。呼び出される各レイアウト上では、メニュー用レイアウトへの移動ボタンを付け、位置も統一する。
【理由】メニュー用のレイアウトを付けると、データベース内にある機能を把握しやすい。そこに付けた移動ボタンが、全部のレイアウトを表しているからだ。また、メニュー用レイアウトがあることで、各レイアウトの呼び出し方法も分かりやい。機能や目的の簡単な説明は、各レイアウトを活用するために役立つ。
【作成上の注意点】メニュー用のレイアウトでは、機能で分類してボタンの配置を決める。ボタンの説明を加えるため、縦に並べるほうが適している。後からの追加を考慮して、予備のボタン付けておくことも重要。

図4、メニュー用レイアウトを用意して、各レイアウトへの移動ボタンを並べる。各ボタンの簡単な機能を短いテキストで加える。

図4

●レイアウト数が多いときは、メニューを分割する

【内容】レイアウト数が多くて1枚のメニューに移動ボタンが収まらないときは、メニュー用レイアウトを2〜3つに分け、メニュー用レイアウト間の移動ボタンを加える。
【理由】メニュー用レイアウトが複数になると、その上位のレイアウトも付けたくなる。しかし、階層が増えることは、使い勝手の低下につながる。3つ程度のレイアウトを行き来するだけなら、上位のレイアウトは必要ない。他のデータベースから呼び出されるときには、もっとも使用頻度の高い表示用レイアウトが含まれるメニュー用レイアウトを最初に表示する。
【作成上の注意点】メニューの分割で難しいのは、ボタンの振り分けだ。使い勝手を最優先するなら、使用頻度の高いボタンを1つのメニュー用レイアウトに集め、残りを別なレイアウトに振り分ける。ほとんどのケースで、使用頻度の高いボタンのメニュー画面を使うため、メニューが1画面のように感じる。逆に、全体の分かりやすさを最優先するなら、機能だけを見て振り分ける。使い勝手は少し低下するものの、ユーザーの混乱を最小限に抑えられる。メニュー用レイアウトでも、下の1列に共通ボタンを並べられるので、ここに使用頻度の高いボタンが集まる。この点も考慮すると、ボタンを機能で分けるほうがよいと思える。

●データベース間の移動もボタン操作で

【内容】複数のデータベースを使う場合には、それらの間の行き来を簡単にするために、総合メニューを用意する。総合メニューからは、各データベースへ移動するボタンを付ける。逆に各データベースでは、総合メニューへ移動するボタンを加える。ただし、全部のレイアウトに付けると大変なので、各データベースのメイン・メニューにだけ加える。もちろん、そのボタンの位置は、全部のデータベースで統一する。
【理由】データベースを仕事で使う場合には、複数の業務をデータベース化するだろう。それらの行き来を簡単にすることは、使い勝手の向上に役立つ。
【作成上の注意点】個々のデータベースは、独立したファイルとなることがほとんどだ。総合メニューは、特定のデータベースへ組み込むべきものではない。そのため、総合メニューを独立したデータベースのファイルとして用意する。メニューだけの機能なら、レコードを入力することはない。また、総合メニューのボタン数が増えたときには、内容の分類で複数の画面に分割し、それらの間を行き来するボタンも加える。別な方法として、使用するデータベースが部署ごとに決まっている場合には、部署ごとの総合メニューを用意する。この方法なら、1つの部署では、総合メニュー内を行き来する必要がない。なお、データベース間を行き来すると、どのデータベースを使っているのか、分かりにくくなる。データベースごとに異なるロゴマークを決め、1つのデータベース内では同じロゴマークを付けることで、使用中のデータベースを見分けやすくする。
【機密上の注意点】データベースによっては、特定の人だけしか見れない内容のものもある。アクセス権を設定して、許された人だけ使えるようにする。それ以上に、データベースの存在すら知らせたくない場合は、総合メニューに載せないことが重要だ。総合メニューに載せるデータベースは、このようなことまで考慮して選ぶ。

●レイアウトの切り替え処理では、強制的にモードを戻す

【内容】複数のモード(表示、検索、設計など)を持ち、ユーザーが簡単に切り替えられるデータベース・ソフトでは、レイアウトの切り替えプログラムの中に、モードの強制変更も含める。レイアウトを切り替えたとき、通常の表示モードへ戻す機能を、ボタン用のプログラムへ組み込む。モード以外に強制変更する項目としては、レコードの抽出条件がある。特定の抽出条件を設定する場合だけでなく、強制的に全件表示へ戻す(抽出条件をクリアする)使い方もできる。
【理由】初心者ユーザーは、どんな操作をするか予測できない。間違った操作の後でも、通常の操作を実行すると元に戻る仕組みなら、余計なトラブルを起こしにくい。別なレイアウトへの移動ボタンを実行したとき、表示モードへ強制的に戻す機能があれば、間違って設計モードへ切り替えたとしても、その操作をクリアできる。全体としては、誤操作の影響を受けにくいシステムに仕上げられる。
【作成上の注意点】すべてのボタンに、表示モードの強制切り替えを組み込むわけではない。基本的には、レイアウトを切り替えるボタンだけだ。ソートにように、同じレイアウトのまま使い続けるボタンには、特別な理由がない限り組み込まない。手動でモードを変更したまま、ソートを実行することもあるからだ。最終的には、レイアウトごとの利用目的を幅広く考慮し、モードの強制変更を組み込むのか決定する。
【設計術の話】以前の状態に影響されないように設計する方法は、すべてのシステムに適応できる。ユーザーの誤操作だけでなく、バグの影響をクリアする効果もあるため、バグが発生しても回避して使い続けられる可能性を高くする。

●誤操作防止のためにステータスエリアを非表示に(ファイルメーカーPro)

【内容】ファイルメーカーProのように、ウィンドウ内の左側にステータスエリアを表示するソフトでは、必要なレイアウトでだけステータスエリアを表示する。それ以外のレイアウトでは、消した状態で表示する。表示と非表示の変更は、レイアウト切り替えボタンのプログラム(同ソフトではスクリプト)に含めて、切り替え作業を自動化する。
【理由】ステータスエリアには、レイアウト切り替えのポップアップメニューも含まれる。勝手に変更されると、トラブルの原因になりやすい。必要のないレイアウトでは、できるだけ表示しないことが望ましい。ただし、1レコード単位で表示する個別表示用レイアウトでは、希望するレコードへ素早く移動するときに便利なツールも含まれいて、表示するメリットがある。そこで、レイアウトごとに表示と非表示を切り替える。
【作成上の注意点】一般的には、一覧表示用レイアウトでステータスエリアを消し(縦スクロールバーで操作が可能)、レコード単位の個別表示用レイアウトでは表示する。例外の1つは、検索結果のレコード件数を知りたいとき。これは、バージョン3.0から加わったグローバル・フィールドを用いることで実現できる。もう1つの例外は、レコード数が多いとき、離れたレコードへ素早く移動する操作が必要なケース。これは、前後のレコードへ移動するボタンに加え、10レコード先や100レコード先、先頭と最後のレコードへの移動ボタンで対応する。また、五十音の各文字の先頭レコードへ移動するボタンなども、素早い移動には役立つ。できるだけステータスエリアを表示しないことが大切だ。どうしても対処できないときだけ、ステータスエリアを表示する。ステータスエリアの表示と非表示を切り替えると困るのが、ボタンの位置がずれること。合わせるために、ステータスエリアを表示しないレイアウトで、スペース用の四角い枠を加える。

●ボタンに割り当てる機能はプログラムだけに

【内容】ボタンに割り当てる機能には、メニュー項目やレイアウト名でなく、プログラム(マクロやスクリプトも含む)だけに限定する。たとえメニュー項目を実行するだけボタンでも、メニュー項目を実行するプログラムを用意して、それをボタンに割り当てる。同様に、切り替え先のレイアウトを割り当てられるソフトでも、レイアウト切り替えのプログラムを用意して、それをボタンに割り当てる。また、同じ機能を持つボタンには、共通のプログラムを用意して、それを全ボタンで指定する。
【理由】プログラムを必ず指定する最大の理由は、処理を変更するときの手間を最小限にすることだ。レイアウト切り替えにしろソートにしろ、1つの処理が複数のレイアウト上で使われます。後で処理内容の変更が生じた場合、プログラムなら1つだけ直せば済む。メニュー項目を直接呼び出しているときは、それを用いているボタンの数だけ変更が必要となるし、直し忘れの心配もある。変更がどのような箇所に生じるか予測できない。たとえば、データベースの終了前に何か処理を加えたくなった場合だ。このときも、メニュー項目から終了を選ぶプログラムがあるなら、それを直すだけで済ませられる。変更を予測できないだけに、全部のボタンでプログラムを呼び出させる。付加的なメリットだが、ボタンの全機能がプログラムとして存在するので、目的の機能を調べるのも簡単だ。プログラムを経由する欠点は、処理が少し遅くなることだが、最近のマシンは高速なので、気にするほどではない。
【作成上の注意点】プログラムを分かりやすく作ることも重要。コメントが付けられるなら、目的や機能の詳しい説明を加える。

●機能を階層的に表現してプログラム名を付ける

【内容】プログラムの名前は、命名ルールを決めて分かりやすく付ける。3段階程度のレベル分けを採用し、だんだんと細かく分類する方法がお勧め。スラッシュやハイフンで言葉を区切り、レベル分けを表現する。
【理由】プログラムの数が増えると、それぞれの機能を把握するのが難しい。段階的に分類できると、細かな違いを区別しやすい。目的や機能を表すだけでなく、他のプログラムとの違いが分かるように名前を付ける。
【作成上の注意点】個々の違いを把握するのが目的なので、段階分けの必要がないプログラムでは、レベル分けを用いなくても構わない。また逆に、4段階以上のレベル分けも必要なら使用する。プログラムの一覧表示で見やすくするためには、最上位の分類で文字数を合わせる。2文字で統一するなら、画面切り替えなら「切替」、前後のレコードの表示なら「移動」という具合に、短縮した言葉を選ぶ。

図5、プログラムの名前は、スラッシュで言葉を区切って階層的に機能を表現する。

図5

●プログラムの実行中は余分なものを表示しない

【内容】ボタンをクリックしてから処理が終了するまでは、余分な画面描画をさせない。2つ以上の命令を実行するプログラムでは、意識して描画を止める。
【理由】途中の段階を描画すると、初心者に疑問や不安を抱かせる。描画する特別な理由がない限り、描画しないほうが良い。描画しない分だけ処理時間が短くなる効果もある。
【作成上の注意点】プログラム機能を持つデータベース・ソフトでは、画面の再描画オプションがある。これをオフすることで、処理中の描画を止めることが可能だ。
【例:ファイルメーカーPro Ver. 3.0】本ソフトの場合は、スクリプト内の命令ごとに再描画のオプション設定があるので、個々の命令で再描画をオフする。

●印刷ボタンなど、途中操作は必要最低限に

【内容】ほとんどのボタンでは、途中の操作を含まないように作る。印刷のボタンも基本的には同じで、印刷用レイアウトへの切り替えや、元のレイアウトに戻す処理も含め、ユーザーが印刷用レイアウトへ切り替えなくて済むように作る。しかし、印刷部数を指定する必要がある場合には、途中に設定画面を表示し、ユーザーが指定できるようにする。その場合でも、必要な項目以外を変更できないように作るべきだ。また、キャンセル用のボタンも加える。
【理由】ボタンに割り当てた処理で、途中に操作が入ると、初心者にとって混乱のもととなる。可能な限り途中の操作を排除し、単純に見える形で実現する。もし途中に操作が入る場合には、詳しい説明をメッセージとして出す。どんな処理の一部で、何のために何を設定するのかを示す。印刷途中での部数の設定なら、何の書類を印刷するのか明示し、部数の設定であることを伝える。
【作成上の注意点】印刷で困るのが、用紙サイズの設定などだ。使用するプリンタや用紙が固定の場合には、一番最初に設定しておき、途中の操作を含まないように作るのがベスト。もしプリンタが変わった場合にも、最初の1回だけ設定し直し、途中の操作を入れない。
【Mac上の注意点】印刷に関する設定には、「用紙設定」と「印刷」の2つがある。用紙や印刷方向を変更する必要がないなら、「用紙設定」のダイアログを出さない。また、印刷部数の指定が不要なら「印刷」のダイアログを出さない。なお、「用紙設定」や「印刷」のダイアログで「キャンセル」ボタンを選んだとき、どのような動きになるか確かめる。もし印刷レイアウトを表示したままになるなら、注意点を事前に表示する必要がある。

●長い処理では処理中や終了を示す

【内容】時間がかかるのが明らかな処理では、処理中であることと、ある程度の時間がかかることを示す。また、可能であれば、進行状況または残りの処理時間を表示する。終了の際には、終了したことを示す。
【理由】ソフトのほとんどの操作は、それほど時間がかからずに終了する。ユーザーはそれに慣れているので、すぐに終わるのが普通と思って操作している。すぐに終了しない処理では、そのことを伝えるべき。
【作成上の注意点】処理中の表示には、メッセージを表示する機能を用いる。全部で何ステップあり、そのうちのいくつまで進んだかを表示する。処理時間と比例した正確な進捗状況の表示は難しいが、どの段階まで進んだかを知らせることは可能だ。プログラム中の命令に進行表示機能が含まれているなら、それを利用する手もあるが、適切な表示にはならないので、苦肉の策として用いる。処理終了の表示では、一定時間を経過したら自動的に消すのが望ましい。それが難しいときは、ビープ音を鳴らして終了を知らせる方法もある。簡単に実現できて、終了メッセージを消す必要もない。

●誤って実行すると困るボタンは確認処理を含める

【内容】レコードの削除ボタンのように、誤って実行すると困る処理では、「本当に実行するかどうか」の確認を求める処理を加える。確認の表示では、安全なほうの回答をデフォルトに選ぶ。レコードの削除なら、削除しないほうをデフォルトに設定する。レコード削除以外では、処理の長い処理や、1度しか実行できない処理などが対象となる。
【理由】ボタンとして用意する機能の中には、レコードの削除のように、誤って実行すると大変なことになるものも含まれる。操作ミスをなくすことは不可能なので、最悪の事態にならないような配慮が必要だ。ボタンをクリックしたとき、本当に削除するか確認を求める処理は、最低限必要な機能である。単なる操作ミスで重要なデータを失うなら、良いデータベースとは言えない。
【作成上の注意点】確認を求める処理では、対象となるレコードを明示したほうがよい。重要な項目の値を含め、どのレコードを削除するのか知らせる。これは、本当に削除する操作でも、間違ったレコードの削除を防止しやすい。

●ダイアログ内のボタン名は、素早く見分けられる言葉に

【内容】処理の確認用も含め、ダイアログに付けるボタンの名前は、「OK」や「キャンセル」といった言葉を用いない。ボタンだけ見ても処理内容が分かるような名前を採用する。レコード削除の確認用ダイアログなら、「削除する」と「残す」のような言葉を用いる。
【理由】急いで操作するときには、ダイアログ内のメッセージをよく読まないことが多い。「OK」や「はい」や「キャンセル」などの言葉は、メッセージ内の質問文によって、意味が逆になる。ボタン名だけを見て、処理が区別できることが望ましい。また、同じ言葉を含めないことも重要だ。「削除する」と「削除しない」の組合せでは、どちらも「削除」の文字が含まれていて、素早く識別できない。加えて、前の単語を否定する「しない」という言葉は、「削除」の意味を逆転させるので、即座に見分ける目的には適さない。それよりも、「削除する」と「残す」の組合せのほうが良い。
【作成上の注意点】ボタン名には長いテキストが付けられないので、短い言葉を選ぶ必要がある。各ボタンが持つ意味や役割をよく考えれば、適した言葉を見付けられる可能性が高い。

●ソートは、代表的なものを共通で用意する

【内容】どのレイアウトでも並び順が変えられるように、ソートは共通のボタンとして用意する。また、レイアウトを切り替えても、直前までの並び順を保持し、現在の並び順をレイアウト上に表示する。
【理由】レイアウト上でのレコードの並び順は、自由に変えられることが望ましい。並び順を保持したまま、別なレイアウトでデータを見たいことがあるからだ。しかし、ソート機能の組み込み方は、データベースの機能に大きく左右される。上記の機能が無理なら、レイアウトごとに最適な並び順を設定して、後からソートするためのボタンを加える。
【作成上の注意点】ごく一部のレイアウトでは、強制的に並び順を変更したいものもある。その場合は、切り替えボタンにソート処理を加えて、レイアウト上に新しい並び順を表示する。また、あとから並び順を変更するためのソート・ボタンも加える。強制的にソートする処理を切り替えボタンに組み込む場合には、ソート時間も考慮する。あまり長い時間かかるようなら、必要もないのに待たせる結果となるので、組み込まないほうがよい。

(1996年10月11日)


下の飾り