Excelでセルへの入力行為に期限を設定する
動機
- (他人に入力させるための)Excelファイルで、入力期限が過ぎたセルに入力できないようにしたい。
- ファイル単位であればファイルに提出期限を設けたり、期限後に書き込み権限を停止したりして解決するところだが、ネットワーク共有する単一ファイル内に入力期限の異なるセルが複数存在するという想定。
- 検索しても、入力できる日付の値を所定期間内に制限する話や、期限を過ぎたセルの色を変える話しか出てこなかった。
- 他人に触らせる以上、絶対に入力させないというのは不可能なので、期限切れに気づかずに自然に入力できてしまうのを防止できればよい。
環境
- Windows 10
- Microsoft Excel 2013
- 多分、他のExcelでもいけるはず。
方法
「データの入力規則」を使う。
手順1
入力期限を設定したいセルを選択して「データ」タブの「データ入力規則」を選ぶ。
手順2
手順3
「数式」の欄を=NOW()<DATE(年,月,日)+TIME(時,分,秒)
にして期限を設定する。
手順4
必要に応じて「エラーメッセージ」タブも設定する。「スタイル」を「注意」「情報」に設定すればユーザーが入力を強行できる。「スタイル」を「停止」にすると入力を禁止できるが、後述のように完璧に禁止できるわけではないことに注意。
結果
設定した期限までは問題なく入力できる。
設定期限前に入力したファイルを保存して、期限後に開いても特に問題は生じない。
考察
ブックやシートの保護(+パスワード)と組み合わせれば完成度は上がるが、ユーザーはファイルを持ち出してシステムクロックが変更された環境で入力を実行できるので完璧にはならない。
ブックの保護に加えて、ファイルを持ち出せないようにした上で、(偽装NTPサーバーに接続させるようなケースも含めて)システムクロックを変更できないようにしたりすればあるいは完全に出来るかもしれないが、当記事で扱うべき範疇を超える。
それよりは、非技術的な話だが上記の「担当者は対応しない」のようにPC外での実力行使が伴った方が実効性はあるように思う。
改訂履歴
- 2020/3/15: 初版