…来年になれば
「…来年になれば、また数名、新人を確保できる。
星に開発だけをさせておくのではなく、新人の教育をやらせてチームの生産性を上げたほうが、
部としては得策か………。
少し早いが……彼を来年、主任に推薦するか…」
岩田部長はパソコンの電源を切ると、帰り支度を始めました。
「よいしょっと。やっぱりコタツはあったかいわね~~」
泉先輩は出してきたばかりのコタツにもぐり込みながら、テキストをパラパラとめくります。
Private Sub Worksheet_Change(ByVal Target As Range)
Target.Value = Target.Value + 1
End Sub
Excelの画面に戻って、任意のセルに「1」と入力します。
すると「1」が入力されたというイベントが発生して「Worksheet_Change」が起動されます。
「Worksheet_Change」では、「編集されたセルの値を+1する」という命令が記述されていますので、
セルの値は「2」になります。
「Worksheet_Change」によってセルの値が変更されましたので、Excelは再度
「セルの値が変更された」というイベントを発生させます。
こうしたイベントの連鎖を防ぐには、Excelのイベント発生を抑止するプロパティを設定します。
ApplicationオブジェクトのEnableEventsプロパティにFalseを設定すると、それ以降、
Excelのイベントは発生しなくなります。
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Target.Value = Target.Value + 1
Application.EnableEvents = True
End Sub
EnableEventsプロパティがFalseのままだと、Excel上で一切のイベントが抑止されますので、
プロシージャの最後でTrueに戻すのを忘れないでください。
< スタンダード公式テキスト P65~66 >