Hello Rodeoclown,
The macro recorder doesn't always set all of the properties for you. In this case, the two properties you need to set are .FitToPagesTall and .FitToPagesWide. If you set the .Zoom property, it will override these two property settings. In VBA code it is rare to have to select and object before an action can be preformed. I have condensed the code by not selecting objects unnecessarily.
With ActiveSheet.PageSetup
.PrintArea = "$O$4:$Q$384"
.PrintTitleRows = ""
.PrintTitleColumns = ""
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperLetter
.FirstPageNumber = xlAutomatic
.Order = xlOverThenDown
.BlackAndWhite = False
.Zoom = False
.FitToPagesTall = 1
.FitToPagesWide = 1
End With
ActiveSheet.PrintOut Copies:=1, Collate:=True
Range("A1").Select
Bookmarks