Uma maneira possível (aplicada apenas às colunas A a E):
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lrow As Long
Dim sCol As Long
sCol = Target.Column
If Not Intersect(Target, Columns("A:E")) Is Nothing Then
If Intersect(Target, Columns(sCol)).Address = Columns(sCol).Address Then
lrow = Cells(Rows.Count, Target.Column()).End(xlUp).Row
Range(Cells(2, Target.Column()), Cells(lrow, Target.Column())).Select
End If
End If
End Sub
Se você selecionar a coluna inteira, a seleção será alterada para a linha 2 até a última linha preenchida. Se você selecionar uma única célula na coluna, nada acontece.
Para aplicar isso, clique com o botão direito do mouse na guia da planilha, selecione "View Code" e cole o código na grande área de código branco do Editor do Visual Basic. Feche o VBE. Lembre-se de salvar a pasta de trabalho como um arquivo habilitado para macro se você executar o Excel 2007 ou posterior.