Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not IsNumeric(Target) Or Target.Count > 1 Then Exit Sub
If Target.Value > 0 Then
Target.HorizontalAlignment = xlLeft
ElseIf Target.Value < 0 Then Target.HorizontalAlignment = xlRight
Else
Target.HorizontalAlignment = xlCenter
End If
End Sub