Код:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
n = ActiveSheet.Columns.Count
For x = 1 To ActiveSheet.Columns.Count
If Cells(1, x).Value = "метка какая-нить о том,что этот столбец и дальше не печатать" Then
n = x - 1
Exit For
End If
Next
k = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1
s = ActiveSheet.Cells(1, 1).Address + ":" + ActiveSheet.Cells(k, n).Address
ActiveSheet.PageSetup.PrintArea = s
End Sub