最後にもう1つ
その頃会社では、岬さんと森川くんの勉強会もクライマックスを迎えていました。
「…あら、もうこんな時間。さすがに、そろそろ帰らなきゃね。
……最後にもう1つ、便利なApplicationオブジェクトの技を教えてあげる。
Undoメソッドよ」
岬さんはカタカタと、VBEのコードウィンドウにコードを打ち込んでいきます。
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Row = 1 Then
MsgBox "1行目のセルは編集できません"
Application.Undo
Else
If InputBox("パスワードを入力してください") <> "pw" Then
Application.Undo
End If
End If
Application.EnableEvents = True
End Sub
「ApplicationオブジェクトのUndoメソッドは、
ユーザーが実行した操作を取り消して、元に戻してくれるの。
クイックアクセスツールバーにある、"元に戻す"ボタンと同じ働きをするのよ」
「なるほど…。
シートに変更を加えたとき、1行目のセルなら、"編集できません"のメッセージを表示して元に戻す。
それ以外の行ならダイアログボックスを表示させ、パスワードの"pw"が正しく入力されなかったとき、
元に戻すんですね」
森川くんは、岬さんの書いたコードの意味をすぐに理解します。