Excel VBA,在Word中设置自定义页面大小

时间:2015-07-21 16:04:51

标签: excel vba excel-vba ms-word

遇到一些困难......我在Excel中使用VBA代码打开MS Word并将页面大小更改为自定义大小。我不能让它工作,我用Google搜索了几种不同的方法来尝试它,我不经常这样做,我想我错过了什么。

Dim objWord
Dim objDoc
Dim objRange
Dim objSelection

Set objWord = CreateObject("Word.Application")

Set objDoc = objWord.Documents.Add
Set objSelection = objWord.Selection

objDoc.PageSetup.PageWidth = InchesToPoints(11.5)
objDoc.PageSetup.PageWidth = InchesToPoints(14.375)

<...rest of code>

objWord.Visible = True

此时,我已经尝试过“objDoc.PageSetup.PageWidth”,如上所示,我也尝试了“objSelection.PageSetup.PageWidth”和“objWord.ActiveDocument.PageSetup.Pagewidth” - 但它只是一直打开一张8.5“x 11”的信纸文件。

3 个答案:

答案 0 :(得分:1)

这对我有用

Dim objWord
Dim objDoc
Dim objRange
Dim objSelection

Set objWord = CreateObject("Word.Application")

Set objDoc = objWord.Documents.Add
Set objSelection = objWord.Selection

objDoc.PageSetup.PageWidth = objWord.InchesToPoints(11.5)
objDoc.PageSetup.PageWidth = objWord.InchesToPoints(14.375)



objWord.Visible = True

它仍然说信,但实际大小不同 -

enter image description here

请注意,您的代码有pagewidth两次,没有高度。

使用 -

objDoc.PageSetup.PageHeight = objWord.InchesToPoints(14.375)

enter image description here

答案 1 :(得分:0)

这是否有效:

objDoc.PageSetup.PaperSize = xlPaperA4

可在此处找到内置纸张尺寸:Excel Paper Sizes

其中一个可能接近您的自定义尺寸。

答案 2 :(得分:0)

我使用自定义纸张尺寸。 不幸的是,Word 似乎将所有这些设置为 papersize 41 但是,至少在我的情况下,当我将 paperzize 设置为 41 时 然后将边距更改为特定大小,纸张大小名称正确

这对我有用

    activedocument.PageSetup.PaperSize = 41
    activedocument.PageSetup.PageWidth = InchesToPoints(4.25)
    activedocument.PageSetup.Pageheight = InchesToPoints(5.5)