Este código ocultará as colunas se apenas a célula do cabeçalho estiver preenchida:
Sub KolumnHider()
Dim wf As WorksheetFunction
Dim i As Long, r As Range
Set wf = Application.WorksheetFunction
For i = 1 To 1000
Set r = Cells(1, i).EntireColumn
If wf.CountA(r) < 2 Then r.Hidden = True
Next i
End Sub
Se não houver cabeçalhos de coluna, faça o 2 em 1 .