Experimente esta macro curta:
Sub newbie()
Dim r As Range
Dim nLastColumn As Long
Dim nFirstColumn As Long
Dim N As Long, i As Long, j As Long
ActiveSheet.UsedRange
Set r = ActiveSheet.UsedRange
nLastColumn = r.Columns.Count + r.Column - 1
nFirstColumn = r.Column
For i = nFirstColumn To nLastColumn
N = Cells(Rows.Count, i).End(xlUp).Row
For j = N To 1 Step -1
If Cells(j, i).Value = 0 Then
Cells(j, i).Delete Shift:=xlUp
End If
Next j
Next i
End Sub