元に戻すんですね
「なるほど…。
シートに変更を加えたとき、1行目のセルなら、
"編集できません"のメッセージを表示して元に戻す。
それ以外の行ならダイアログボックスを表示させ、
パスワードの"pw"が正しく入力されなかったとき、元に戻すんですね」
「さすが、森川くん。
私が説明するまでもないわね。
ちなみに、コードの先頭でApplication.EnableEventsを使うのは、
Undoメソッドで元に戻したとき、再びChangeイベントが発生しちゃうからです。
イベントの連鎖を防ぐために、最初にイベントの発生を抑制してるのよ」
「ああ…なるほど…。
でもセルを編集禁止にするなら、"シートの保護"や"データの入力規則"でも、
似たようなことができるっすよね?」
「すごいじゃない森川くん、もうそんなことまで理解してるのね……。
確かにそのとおりよ。
でもツールによっては、シートに保護をかけられないケースだってあるし、
データの入力規則も万能というわけじゃないわ。
今回はたまたまChangeイベントを使ったけど、Undoメソッドならセルの編集に限らず、
ユーザーが行ったどんな操作に対しても、"元に戻す"ことができるのよ。
こんな便利なメソッドを、使わない手はないわ。
そう思わない?森川くん」
「はい!そう思います、岬先生!……じゃなかった、岬先輩」
森川くんが思わず言い間違え、照れながらポリポリと頭をかきます。
岬さんはブルブルと武者震いをすると、うっとりと恍惚の表情を浮かべました。
「(あ…あたし今、はっきりわかった!
あたしがVBAを好きなのは、開発がしたいからじゃない。
VBAの知識を使って誰かの役に立ったり、人から尊敬されることが好きだから……なんだわ。
八木さんのベンチャーに加わってエンジニアになることも考えたけど、
あの人とはやっぱり方向性が違う……
私、VBAを人に教えるのが大好き!!)」
ボーッとした表情で視線の定まらない岬さんを見て、森川くんがあわてます。
「す、すみません!
先輩、お疲れっスよね?
…今日は遅くまで、本当にありがとうございました」
彼はペコリと頭を下げると、急いで荷物を片付け始めました。