Excel 入力チェックの方法 ~入力規則より条件付き書式を使おう~

Excel 一歩先へ

スポンサーリンク

はじめに

「半角文字しか入力してはいけない」とか「文字数は30文字まで」とかいう入力上の制限を、Excelのセルにおいてチェックする場合はどうしたらよいだろうか。

そういう設定方法に全く知識のない人だと、ただ自分で気を付けるだけといった精神論的なやり方をするだろうが、こういうところで気配りをできると周囲からの評価が変わってくる。

今回の記事では、そういった入力チェックの仕組みを正しくExcelに組み込む方法を紹介し、貴方の資料作成を一歩も二歩も前進させていきたい。

では具体的にどうするか。
少し慣れた人だと、Excelの「入力規則」という機能を積極活用しようとするだろう。

いかにも入力チェックそのものといった名前であるし。

しかし答えを言ってしまうと、入力チェックは基本的には「条件付き書式」により行うべきだ。
「入力規則」の機能では、基本的には行うべきではない。

Excel 入力規則機能(1) 各種タブの設定など

入力規則によるチェックのデメリット

例えば下図の「会社名」列について「20文字以内で入力」という規則に従い入力させる(全角・半角は面倒だからこの例では考えない)場合を考えてみよう。

これを「入力規則」機能でやると、「文字列(長さ指定)」というのを使って、下図のような設定をすることになるだろう。
文字列(長さ指定)
そんでこの場合、入力規則は一つのセルだけでなく列内の多数のセルにまとめて設定することになる。

そして、この列に会社名を入力していく場合、手入力もありえるだろうけどまとめてコピペで貼り付けていくことも考えられる。そうなるとアウトだ。

ご存知の方も多いだろうが、「入力規則」機能はコピペによる入力はチェックしてくれない

上図では、1行目・2行目の会社名データを、まとめて貼り付けた(※1)。
これらは20文字を超えているのだが、手入力でなくコピペで行った場合はチェックを通過できてしまう。

これでは肝心なときにチェックの用をなさないだろう。

またコピペ抜きにしても、1行目はともかく2行目については、20文字以内の入力規則に反しているのか分からないままに手入力する人もいるだろう。
そしてそのときはエラーメッセージが出るわけだが、

ここでキャンセルボタンとか押してしまったときには、せっかく手間を掛けて入力した20文字以上が全て消え、セルの値は元に戻ってしまう。

文字数がちょっとオーバーしてるだけなら、適当に何文字か削って訂正させてもらえるだけで良いのに、全て消されてしまうのではやりきれない。

入力チェックには条件付き書式を

そこで、入力チェックには条件付き書式を使おう

条件付き書式の場合は、ちょっと数式を使わないと設定はできないし、絶対参照・相対参照が分からないとまるで太刀打ちできない。

Excel 絶対参照・相対参照 SUMIF関数を題材にして語る

その辺りの基礎的なことはどこか別の記事で語ろうとは思うが、今回の例なら半角20文字まで制限としてC7セルを起点とすると「=LENB($C7)>20」といった計算式を入れることになる。
全角20文字なら「LENB」ではなく「LEN」の関数だ。
条件付き書式
こうして条件付き書式により設定しておけば、コピペで入力されたときにも、設定に従ってセルの色が変わったりして教えてくれる。

また、既に入力したものが強制的に消されるわけでもなく、訂正を促してもらえるだけだから、余裕を持って訂正できる。

ちょっと注釈的に

少し語弊があったかもしれないが、上記で「コピペ」と何度も言っているけど、これはExcelのセルを単にコピーしてそのまま貼り付けることを指すのではない。

さすがにそれをされてしまうと、条件付き書式だろうが入力規則だろうが、上書きされ消えてしまう。

上記の「コピペ」というのは、主にテキストエディタとかから単なる文字列データをコペーしてきて貼り付けることを指している。

Excel のセルをコピーしてから貼り付けするということに関しては、これは「値のみ貼り付け」とか「数式のみ貼り付け」とかそういうことを「コピペ」と言っているのだ。

ちょっとその辺りを省いたような書き方になってしまったが、別の記事でも書いているように、Excelにおける貼付けなどというものは「値のみ貼り付け」だけで9割ぐらいは済んでしまうからだ。

Excelのセルをコピーしてまるごと貼り付けるなどということ自体、あまりするべきではないのだ。

Excel2010以降 超基本機能~値のみ貼付け~ 0.3秒で操作できるようになろう

入力規則による入力チェックを使っても良い場合

入力チェックは基本的には条件付き書式によるべきだが、入力規則によるチェックでも良い場合はある。

まず、大雑把に「金額を入力して下さい」というような場合、条件としては「0より大きい整数」だけで十分だとして、それは入力者の立場でも常識で分かる範囲だろう。

コピペがどうとかいう次元でもないと思うし、まあセルの数が少なければ、これは入力規則で入力チェックして良いだろう。
自然数
こんな感じの入力規則設定。
ただこれは、小数(Excelのセルの見た目上では、小数点以下が見えない整数)をコピペしてこられたらミスに繋がる。
やっぱりあまり好ましくはないね。

あとは、上記の会社名のように沢山コピペされる可能性が乏しく、1個1個を丁寧に手入力される可能性が高い場合だろう。

たとえば住所・電話番号などは、入力者としても慎重に手入力していくはず。
また、セルが連続されておらず切り離された位置どうしにあれば、コピペでなく1個1個入力していく可能性が高いだろう。

入力チェックもほどほどに

ただそれでも、先述したような入力規則機能のデメリットは完全には拭いきれない。
入力規則機能によって入力チェックをするにしても、条件付き書式との併用はしておいた方が良いと思う。

また入力規則機能については、規則に背いた入力値に対してきつく禁止するか警告止まりにするかなど設定できるので、この設定はあまりガチガチにきつくしない方がいいだろう。

私は個人的には、入力規則の他にもあまりユーザーをきつく縛りたくはない。
マクロを作る時などにしても、予備知識がないユーザーなどを束縛したくはない。

あまりガチガチに縛るとメンテナンスや変更が大変になるしね。

(※1)ちなみに1行目の「株式会社あなたの幸せが私の幸せ世の為人の為人類幸福繋がり創造即ち我らの使命なり今まさに変革の時」というのは、実在する会社名の一部で、正式名称は次のとおりだ。
株式会社あなたの幸せが私の幸せ世の為人の為人類幸福繋がり創造即ち我らの使命なり今まさに変革の時ここに熱き魂と愛と情鉄の勇気と利他の精神を持つ者が結集せり日々感謝喜び笑顔繋がりを確かな一歩とし地球の永続を約束する公益の志溢れる我らの足跡に歴史の花が咲くいざゆかん浪漫輝く航海へ

スポンサーリンク