Excel 中每一个 WorkSheet 都有一个 PageSetup 对象,用于设置打印属性;
一:页面
1. Orientation,返回或设置一个 XlPageOrientation 值,表示纵向或横向打印模式。取值:xlPortrait 和 xlLandscape。
2. Zoom,返回或设置一个 Variant 值,取值在10-400之间,表示打印时的缩放比例。
3. FitToPagesWide, FitToPagesTall,返回或设置打印工作表时,对工作表进行缩放使用的页宽/页高;只有 Zoom 属性为 False 时,这两个属性才会有效。
注意,如果要选中“调整为”设置对应的页宽和页高的话,需要将 PageSetup 的 Zoom 值设置成 false,否则会默认选择“缩放比例”100%;如果不需要设置页宽或页高的话,需要将 FitToPagesTall 或 FitToPagesWide 设置成 false,否则也会默认设置成1;
4. PaperSize,返回或设置纸张的大小;XlPaperSize 类型,枚举见文章结尾处。
5. PrintQuality,返回或设置打印质量。
6. FirstPageNumber,返回或设置打印指定工作表时第一页的页号。默认值 xlAutomatic。
二:页边距
1. TopMargin, BottomMargin, LeftMargin, RightMargin, HeaderMargin, FooterMargin: 上、下、左、右页边距,以及页眉、页脚边距;
注意:这6个值的单位是“磅”,但“页面设置”中“页边距”选项卡里的值都是“厘米”单位;
1磅=1/72英寸≈1/28厘米
2. CenterHorizontally, CenterVertically: 返回或设置在页面的水平居中或垂直居中位置打印指定工作表;
三:页眉/页脚
1. LeftHeader, CenterHeader, RightHeader, LeftFooter, CenterFooter, RightFooter: 页眉(左、中、右)和页脚(左、中、右)的文本内容;
2. OddAndEvenPagesHeaderFooter: 如果指定的 PageSetup 对象的奇数页和偶数页具有不同的页眉和页脚,则为 True;
3. DifferentFirstPageHeaderFooter: Boolean,如果第一页使用不同的页眉或页脚,则为True;
4. ScaleWithDocHeaderFooter: 返回或设置页眉和页脚是否在文档大小更改时随文档缩放。
5. AlignMarginsHeaderFooter: 如果 Excel 以页面设置选项中设置的边距对齐页眉和页脚,则为 True;
6. LeftHeaderPicture, CenterHeaderPicture, RightHeaderPicture, LeftFooterPicture, CenterFooterPicture, RightFooterPicture: 返回一个表示页眉/页脚对应位置的Graphic对象,用于设置图片的属性;与自定义页眉/页脚相对应;
1 Sub InsertPicture() 2 3 With ActiveSheet.PageSetup.CentertFooterPicture 4 .FileName = "C:\Sample.jpg" 5 .Height = 275.25 6 .Width = 463.5 7 .Brightness = 0.36 8 .ColorType = msoPictureGrayscale 9 .Contrast = 0.39 10 .CropBottom = -14.4 11 .CropLeft = -28.8 12 .CropRight = -14.4 13 .CropTop = 21.6 14 End With 15 16 ActiveSheet.PageSetup.CenterFooter = "&G" 17 18 End Sub
四:工作表
1. PrintArea: 以字符串返回或设置要打印的区域,与宏语言A1样式引用相同;如果设置成False或空字符串"",可打印整个工作表;
示例:Worksheets("Sheet1").PageSetup.PrintArea = "$A$1:$C$5"
2. PrintTitleRows,PrintTitleColumns: 返回或设置那些包含在每一页顶部/左边重复出现的单元格的行/列,用宏语言字符串以A1样式表示法表示;设置成False或空字符串则会关闭标题行/列;
3. PrintGridlines: 如果在页面上打印单元格网格线,则为 True;
4. PrintComments: 返回或设置批注随工作表打印的方式。XlPrintLocation 类型;
1 public enum XlPrintLocation 2 { 3 xlPrintNoComments = -4142, 4 xlPrintSheetEnd = 1, 5 xlPrintInPlace = 16, 6 }
xlPrintNoComments,-4142,不打印批注,默认;
xlPrintSheetEnd,1,批注打印为工作表末尾的尾注;
xlPrintInPlace,16,批注打印在其插入工作表的位置,如同工作表中的显示;
5. PrintNotes: 如果打印工作表时单元格批注作为尾注一起打印,则为 True,与 PrintComments 属性值为 xlPrintSheetEnd 相同;如果为 False,与 PrintComments 属性值为 xlPrintNoComments 相同;
6. BlackAndWhite: 如果指定文档中的元素以黑白方式打印,则为 True;
7. Draft: 如果打印工作表时不打印其中的图形,则为 True,可加快打印速度;
8. PrintHeadings: 如果打印本页的同时打印行标题和列标题,则为 True;
9. PrintErrors: 设置或返回一个 XlPrintErrors 常量,指示显示的打印错误类型;允许用户在打印工作表时取消错误显示;
1 public enum XlPrintErrors 2 { 3 xlPrintErrorsDisplayed = 0, 4 xlPrintErrorsBlank = 1, 5 xlPrintErrorsDash = 2, 6 xlPrintErrorsNA = 3, 7 }
xlPrintErrorsDisplayed,0,显示全部打印错误,显示值;
xlPrintErrorsBlank,1,打印错误为空白,<空白>;
xlPrintErrorsDash,2,打印错误显示为划线,—;
xlPrintErrorsNA,3,打印错误显示为不可用,#N/A
10. Order: 返回或设置一个 XlOrder 值,表示打印一张大工作表时所使用的页编号的次序;
1 public enum XlOrder 2 { 3 xlDownThenOver = 1, 4 xlOverThenDown = 2, 5 }
xlDownThenOver, 1, 向下处理行,然后向右逐个处理页或页面字段。先列后行;
xlOverThenDown, 2, 向右逐个处理页或页面字段,然后向下处理行。先行后列;
五:其他属性(与选项卡无对应关系)
1. Application: 如果不使用对象识别符,则返回 Application 对象,表示 Excel 应用程序;如果使用对象识别符,则返回一个表示指定对象创建者的 Application 对象,只读;
2. Creator: 返回一个32位整数,表示在其中创建此对象的应用程序,只读;
3. EvenPage: 返回或设置工作簿或节的偶数页上的文本对齐方式;
4. FirstPage: 返回或设置工作簿或节的第一页上的文本对齐方式;
EventPage/FirstPage.LeftHeader/CenterHeader/RightHeader/LeftFooter/CenterFooter/RightFooter.Text,分别设置偶数页/第一页的左/中/右页眉/页脚;
5. Pages: 返回或设置 Pages 集合中的页数;
6. Parent: 返回指定对象的父对象,只读;PageSetup 的父对象即 WorkSheet 对象;
其他
纸张类型 Excel.XlPaperSize:
1 public enum XlPaperSize 2 { 3 xlPaperLetter = 1, 4 xlPaperLetterSmall = 2, 5 xlPaperTabloid = 3, 6 xlPaperLedger = 4, 7 xlPaperLegal = 5, 8 xlPaperStatement = 6, 9 xlPaperExecutive = 7, 10 xlPaperA3 = 8, 11 xlPaperA4 = 9, 12 xlPaperA4Small = 10, 13 xlPaperA5 = 11, 14 xlPaperB4 = 12, 15 xlPaperB5 = 13, 16 xlPaperFolio = 14, 17 xlPaperQuarto = 15, 18 xlPaper10x14 = 16, 19 xlPaper11x17 = 17, 20 xlPaperNote = 18, 21 xlPaperEnvelope9 = 19, 22 xlPaperEnvelope10 = 20, 23 xlPaperEnvelope11 = 21, 24 xlPaperEnvelope12 = 22, 25 xlPaperEnvelope14 = 23, 26 xlPaperCsheet = 24, 27 xlPaperDsheet = 25, 28 xlPaperEsheet = 26, 29 xlPaperEnvelopeDL = 27, 30 xlPaperEnvelopeC5 = 28, 31 xlPaperEnvelopeC3 = 29, 32 xlPaperEnvelopeC4 = 30, 33 xlPaperEnvelopeC6 = 31, 34 xlPaperEnvelopeC65 = 32, 35 xlPaperEnvelopeB4 = 33, 36 xlPaperEnvelopeB5 = 34, 37 xlPaperEnvelopeB6 = 35, 38 xlPaperEnvelopeItaly = 36, 39 xlPaperEnvelopeMonarch = 37, 40 xlPaperEnvelopePersonal = 38, 41 xlPaperFanfoldUS = 39, 42 xlPaperFanfoldStdGerman = 40, 43 xlPaperFanfoldLegalGerman = 41, 44 xlPaperUser = 256, 45 }
纸张方向 Excel.XlPageOrientation
1 public enum XlPageOrientation 2 { 3 xlPortrait = 1, 4 xlLandscape = 2, 5 }