Pues fijate que si, las formas muchisimas y depende de lo que quieras y como quieres hacerlo.
1.- Manualmente, esta forma mejor ni te la explico porque me imagino que es lo que quieres evitar
2.- Con macros, en este caso las opciones estan a tu disposicion y dependen de tu nivel de conocimiento, que no lo mencionas
a) Suponiendo que los datos estan en un area de impresion definida por ti, podrias usar el evento BeforePrint, seria algo asi:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim columnaoculta As String
columnaoculta = InputBox("Escriba solo la letra", "Indique columna", "B") 'si tienes una como predeterminada puede usar este ultimo parametro
Debug.Print columnaoculta
actvixa = columnaoculta & ":" & columnaoculta
Range(actvixa).EntireColumn.Hidden = True
End Sub
Sin embargo tendrias el inconveniente de trabajar otros eventos o caminos para volver a mostrar la columna que ocultaste.
b) Con un formulario personalizado. Para mi es lo mejor, pero explicarte este puede ser muy largo
c) Con un boton creado desde cuadro de controles (disculpa pero no me gustan los creados desde formularios) en la hoja de calculo. En este caso una ampliacion a la otra, te quedaria algo como
Private Sub CommandButton1_Click()
Dim columnaoculta As String
columnaoculta = InputBox("Escriba solo la letra", "Indique columna", "B") 'si tienes una como predeterminada puede usar este ultimo parametro
Debug.Print columnaoculta
actvixa = columnaoculta & ":" & columnaoculta
Range(actvixa).EntireColumn.Hidden = True
PrintOut
Range(actvixa).EntireColumn.Hidden = False
End Sub
Como te dije las opciones sobran, esperemos a que el resto de los muchachos dejen su opinion para ver que sacas