"Deleting it" IS changing the cell and causing
it to trigger the change event.
Your code is then acting on the changed cell
and doing SOMETHING.
The result of that SOMETHING is that it is
putting a value of "0" in the cell!
The fact that you can delete two cells at the same
time and it DOESN'T result in "0" reinforces this
conclusion.
Try using Debug.
You'll see that when you select two cells and delete
the contents, the Change event executes with the
Target.Column value being leftmost column of the cells selected.
The Target.Value is then an ARRAY of values.
Your code then works based on this situation and
is probably not working as you would expect.
But then, if you're happy, I'm happy.