Try:
Sub HideZeroCols()
    Dim l As Long
    With ActiveSheet
        .Range("B:BG").EntireColumn.Hidden = False
        For l = 2 To 30
            Union(.Columns(l), .Columns(l + 29)).EntireColumn.Hidden = .Cells(2, l).Value = 0
        Next l
    End With
End Sub