「データ」タブの「データツール」→「データの入力規則」を使うと、セルに入力されるデータを規制することができる。たとえば図1のように入力規則を指定したセルには、100から150間の整数しか入力できなくなる。

図1 入力規則はセルに入力できるデータを規制する機能だ。あらかじめ許された種類のデータしか入力できない
図1 入力規則はセルに入力できるデータを規制する機能だ。あらかじめ許された種類のデータしか入力できない

 もし規則に反したデータを入力しようとしても、データは入力できず、注意のメッセージが表示される。

図2 入力規則で設定したルールに反するデータは入力することができない
図2 入力規則で設定したルールに反するデータは入力することができない
[画像のクリックで拡大表示]

 ただし、これはキーボードからデータを入力したときの話。入力規則が設定されているセルであっても、次のような方法で無効なデータを入力することは可能だ。

(1)計算式を入力する
セル B2に図1の入力規則が設定されているとする。まず、条件に一致する数値をセルA1に入力しよう。次に、セルB2に「=A1」という参照式を入力する。結果は入力規則の条件範囲内なので無事に表示される。では、セルA1に無効なデータを入力したらどうだろう。一度入力が許可された計算式は、計算結果が後で変更されても入力規則のチェック対象にはならない。

図3 まず、入力規則の範囲内のセルを参照するような数式を入力する。セルB2は「100から150までの整数」を入力できるから、これは問題ない
図3 まず、入力規則の範囲内のセルを参照するような数式を入力する。セルB2は「100から150までの整数」を入力できるから、これは問題ない

図4 しかし、参照しているセルA1の数値を変更すると、入力規則のルールに反したデータも参照されてしまう。一度信頼した数式は、規制の対象外なのだ
図4 しかし、参照しているセルA1の数値を変更すると、入力規則のルールに反したデータも参照されてしまう。一度信頼した数式は、規制の対象外なのだ

(2)形式を選択して貼り付ける
(1)の方法はセルA1という共犯者が必要だったが今度のは単独犯だ。無効なデータが入力されているセルを選択して「コピー」を実行する。コピー元セルの周囲に点線が点滅したら入力規則が設定されているセルを選択して「ホーム」タブの「クリップボード」グループ「貼り付け」ボタンの「▼」をクリックし、「形式を選択して貼り付け」を実行する。表示される「形式を選択して貼り付け」ダイアログボックスで「値」のチェックをオンにして「OK」ボタンをクリックする。ESCキーを押してコピーモードを終了すればおしまい。コピー元セルを削除しておけば痕跡も残らない。

図5 ルールに反した数値が入力されているセルをコピーしたら「形式を選択して貼り付け」を実行する
図5 ルールに反した数値が入力されているセルをコピーしたら「形式を選択して貼り付け」を実行する

図6 表示される「形式を選択して貼り付け」ダイアログボックスの「値」をオンにして「OK」ボタンをクリックする
図6 表示される「形式を選択して貼り付け」ダイアログボックスの「値」をオンにして「OK」ボタンをクリックする
[画像のクリックで拡大表示]

図7 セルB2には「100から150までの整数」という入力規則が設定されているが、その規則に反した数値が入力されてしまう
図7 セルB2には「100から150までの整数」という入力規則が設定されているが、その規則に反した数値が入力されてしまう

(3)マクロで入力する
マクロで入力されたらお手上げだ。どんなデータでも入力されてしまう。実行するコードは「Range("B2") = 80」と簡単だ。

 このように、入力規則が設定されているセルには、条件に反した無効なデータが入力されてしまう可能性がある。そこで、そうした無効データが入力されていないかどうかをチェックする機能もExcelには用意されている。

 「データ」タブ「データツール」グループにある「データの入力規則」ボタンの▼をクリックして「無効データのマーク」を実行すると、アクティブシートの入力規則が設定されているセルのうち、無効なデータが入力されているセルが赤い楕円で囲われる。赤い楕円を消すには、同じ▼ボタンから「入力規則マークのクリア」を実行すればいい。

図8 「データの入力規則」ボタンの▼をクリックして「無効データのマーク」を実行する
図8 「データの入力規則」ボタンの▼をクリックして「無効データのマーク」を実行する
[画像のクリックで拡大表示]

図9 入力規則のルールに反したデータが入力されていた場合は、そのセルが赤い楕円で囲われる
図9 入力規則のルールに反したデータが入力されていた場合は、そのセルが赤い楕円で囲われる