如何在PowerPoint 2016 VBA中更改SlideMaster.Height的值?

时间:2018-12-21 18:44:22

标签: powerpoint-vba

我正在尝试使用VBA在Slide Master系统的“幻灯片大小”对话框中自动执行更改高度的过程。当我尝试更改它时,VBA通知我不允许将值分配给ActivePresentation.SlideMaster.Height,因为它是只读的。

我研究了ActivePresentation对象树,并弄清楚了要获取高度值(使用ActivePresentation.SlideMaster.Height),但是以下行会导致编译错误:

ActivePresentation.SlideMaster.Height = 1189

使用...更改SlideHeight ...

ActivePresentation.PageSetup.SlideHeight = 1189

确实会更改幻灯片的高度,但是与通过Slide Master系统更改高度的效果不同。此阶段的主要问题是,是否可以通过VBA更改ActivePresentation.SlideMaster.Height,还是只读状态是不可变的?

Sub test()

    ActivePresentation.SlideMaster.Height = 1189 'Compile Error...can't assign to read-only property

    ActivePresentation.PageSetup.SlideHeight = 1189 'Changes the height of the slides, _
    but doesn't change the size of text within Shape elements like I need it to do.

End Sub

这里有一些背景...

通过反复试验,我确定如果我使用幻灯片母版更改幻灯片的尺寸,则会根据需要设置Shapes的默认文本(间距18)。如果我没有在Slide Master中更改尺寸,则Shapes的文本将保留为31。即使创建了新形状,如果将文本粘贴到该字体,字体也会更改为18,并将该形状设置为默认形状。幻灯片(带有CTRL-v或粘贴特殊格式的文本),创建的形状的文本大小为31。

请注意,如果默认设置为18,并且我通过Insert> Shapes创建了另一个新的Shape,则该新形状将自动设置为18。仅当我粘贴文本时(使用CTRL-v或Paste)特殊-未格式化)直接放到幻灯片上就变成31。

我唯一想要做的就是稍微更改Slide Master幻灯片大小。将高度从1188更改为1189会强制所有幻灯片上的所有形状从31变为18。粘贴在幻灯片上的任何新文本都会以包含18个文本的形状显示。

之所以将其发布在Stack Overflow而不是Super User上,是因为我必须自动执行此更改...我们要修改成千上万的演示文稿。

0 个答案:

没有答案