Here's something I've used in the past (note the BlackandWhite property):
<font face=Tahoma><SPAN style="color:#00007F">Private</SPAN> <SPAN style="color:#00007F">Sub</SPAN> Workbook_BeforePrint(Cancel <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Boolean</SPAN>)
<SPAN style="color:#00007F">With</SPAN> ActiveSheet.PageSetup
.PrintTitleRows = "$1:$2"
.PrintTitleColumns = "$B:$E"
.CenterHeader = _
Sheets("Color Summary").Range("C1") & " " & _
Sheets("Color Summary").Range("D1") & " Color Summary"
.LeftMargin = Application.InchesToPoints(0.25)
.RightMargin = Application.InchesToPoints(0.25)
.TopMargin = Application.InchesToPoints(0.75)
.BottomMargin = Application.InchesToPoints(0.25)
.HeaderMargin = Application.InchesToPoints(0.5)
.CenterHorizontally = <SPAN style="color:#00007F">True</SPAN>
.CenterVertically = <SPAN style="color:#00007F">False</SPAN>
.Orientation = xlLandscape
.Order = xlDownThenOver
<SPAN style="color:#007F00">' Select Black & White or Color Printing</SPAN>
BAndW = _
MsgBox("If you have a Color Printer, do you want to print this report in Black & White?" _
& vbCrLf & "Pressing Yes will save lots of ink
", vbQuestion + vbYesNo, "Print Options")
<SPAN style="color:#00007F">Select</SPAN> <SPAN style="color:#00007F">Case</SPAN> BAndW
<SPAN style="color:#00007F">Case</SPAN> vbYes
.BlackAndWhite = <SPAN style="color:#00007F">True</SPAN>
<SPAN style="color:#00007F">Case</SPAN> vbNo
.BlackAndWhite = <SPAN style="color:#00007F">False</SPAN>
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Select</SPAN>
.Zoom = 55
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">With</SPAN>
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN></FONT>
HTH,
Smitty