質問: Date End If End Sub ``` 上記のように記述すると日付の記録自体は成功するのですが、If~の部分で『実行時エラー91』が出てしまいます。 同様のエラーで検索するとSetの付け忘れが原因と出てくるので、Cellsの手前にSetを付けてみたのですが、 今度はCells~の部分で『実行時エラー424』になり日付が記録されなくなります。 なるべく名前の定義を使ってセルの位置を指定したかったのでこういうコードになったのですが、 付け焼き刃の知識で作っていたのでこの辺で詰んでしまいました。 どの部分に不具合があるのかご教示頂けないでしょうか。
回答: イベントのループが原因だったみたいです。 症状的には2周目でエラーになっていたのでしょうか?理由まではまだ説明できませんが... 一時停止/再開を加えたら正常に動作するようになりました。 ``` Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False 'イベントの実行を一時停止 If Not Intersect(Range("シートA_注文"), Target) = "" Then 'セルが空白か判定 Cells(Target.Row, Range("シートA_日付").Column) = Date '記入されたら日付を自動入力 Else Cells(Target.Row, Range("シートA_日付").Column) = "" '削除されたら日付を消去 End If Application.EnableEvents = True 'イベントの実行を再開 End Sub ```