[WorkBook] = Print all sheets.xls [VBModule] = Module1 [Sub or Function] = Entire Module


Option Explicit


Sub PrintAllSheets()
Dim First As Integer, Last As Integer

'// Assumning Sheet1 is 1st sheet
Sheets("Sheet1").Activate
Last = Sheets.Count

For First = 1 To Last
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
'// set up the way you want here, this is just an example!
With ActiveSheet.PageSetup
.CenterHeader = "&F!&A"
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = "Page " & First & " of " & Last
.RightFooter = "©" & Application.Text(Now(), "yyyy")
.PrintHeadings = False
.PrintGridlines = False
.PrintNotes = False
.CenterHorizontally = True
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperLetter
.FirstPageNumber = xlAutomatic
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
If First <> Last Then ActiveSheet.Next.Select

Next First

End Sub