前回のサンプル完成した・・と思ってたら、質問者から不具合の連絡があった
q.hatena.ne.jp
コードを実行すると、
日付が記載されると2秒くらいフリーズしたりエクセルが点滅、読み込み直しをしているような何とも苦しそうな挙動をします。
ごめんなさい、私の配慮が足りなくて、Excelが苦しくなってました。
なんて、変な挨拶は置いといて、
Private Sub Worksheet_Change(ByVal Target As Range) '.Column <> 5(E列以外)で.Row 行が<100 If Target.Column <> 5 And Target.Count = 1 And Target.Row < 100 Then Cells(Target.Row, "E") = Now End If End Sub
単純な話で、
Worksheet_Changeイベント内で、
Cells(Target.Row, "E") = Now
を実行すると、
E列が変更されるので、また、この関数Worksheet_Changeが呼ばれる
そんな循環参照じゃなかった、
循環処理・無限の再帰処理みたいになってました。
なので、時刻をセットする列Eのチェックを入れて、
If Target.Column <> 5 And Target.Count = 1 And Target.Row < 100 Then
とすると、苦しまないようになると思います。
※.Column <> 5で列をチェック
テスト・蛇足の解説してみました
デバッグ Excel VBA Worksheet_Changeイベントでシート内容を書き換えると再度Changeイベントが発生する - YouTube
www.youtube.com
お時間のある時に見て、笑ってください。
うまく修正できることを願いつつ、失礼します。
※恥の上塗り、再度の不具合が無いことを願いつつ・・・
Excelさん、みなさん、ごめんね・・・ぉぃぉぃ