Word 2007/10 VBA宏关于页面方向更改PageSetup

时间:2016-12-20 16:23:12

标签: vba macros

在我的位置上,由于页面方向的改变,我们可能会格式化包含多个部分的检查文档。对纵向和横向方向的边距尺寸应该有什么限制。 我想要实现的是一个宏,它将通过当前打开的文档,检查每个部分的方向并调整边距/标题/纸张大小(根据页面是纵向还是横向不同) 这是我到目前为止所做的,但它只会将边距更改为Landscape设置中的边距并忽略页眉/页脚:

 If PageSetup.Orientation = wdOrientPortrait Then
    PageSetup.LeftMargin = CentimetersToPoints(3.17)
    PageSetup.RightMargin = CentimetersToPoints(3.17)
    PageSetup.TopMargin = CentimetersToPoints(2.23)
    PageSetup.BottomMargin = CentimetersToPoints(2.21)
    PageSetup.PaperSize = wdPaperLetter
    PageSetup.HeaderDistance = CentimetersToPoints(0.96)
    PageSetup.FooterDistance = CentimetersToPoints(0.94)
ElseIf PageSetup.Orientation = wdLandscapeOrientation Then
    PageSetup.LeftMargin = CentimetersToPoints(2.21)
    PageSetup.RightMargin = CentimetersToPoints(2.23)
    PageSetup.TopMargin = CentimetersToPoints(3.17)
    PageSetup.BottomMargin = CentimetersToPoints(3.17)
    PageSetup.PaperSize = wdPaperLetter
    PageSetup.HeaderDistance = CentimetersToPoints(1.9)
    PageSetup.FooterDistance = CentimetersToPoints(1.9)

End If
Selection.GoToNext wdGoToSection

你能帮我解决一些例子或工作代码吗?以上以最简单的方式显示了我的概念,但是我没有创建word宏的经验。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用answers.microsoft.com找到并改编的代码:

With ActiveDocument.PageSetup
    If .Orientation = wdOrientPortrait Then
        .PaperSize = wdPaperLetter
        .TopMargin = CentimetersToPoints(2.23)
        .LeftMargin = CentimetersToPoints(3.17)
        .RightMargin = CentimetersToPoints(3.17)
        .BottomMargin = CentimetersToPoints(2.21)
    Else
        .PaperSize = wdPaperLetter
        .TopMargin = CentimetersToPoints(3.17)
        .LeftMargin = CentimetersToPoints(2.21)
        .RightMargin = CentimetersToPoints(2.23)
        .BottomMargin = CentimetersToPoints(3.17)
    End If
End With

如果该代码适合您,请告诉我。