首页 > 解决方案 > 如何更改 PowerPoint 2016 VBA 中 SlideMaster.Height 的值?

问题描述

我正在尝试使用 VBA 自动更改幻灯片母版系统中幻灯片大小对话框中高度的过程。当我尝试更改它时,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)。如果我不更改幻灯片母版中的尺寸,则形状的文本仍为 31。即使创建了新形状,字体也会更改为 18 并且该形状被设置为默认形状,如果将文本粘贴到幻灯片(使用 CTRL-v 或粘贴特殊无格式文本),创建的形状的文本大小为 31。

为了清楚起见,如果默认设置为 18,并且我通过“插入”>“形状”创建了另一个新形状,那么该新形状会自动设置为 18。只有当我粘贴文本时(使用 CTRL-v 或选择性粘贴 - 未格式化) 直接在幻灯片上是否变为 31。

唯一能做我想做的就是对幻灯片母版幻灯片大小进行轻微更改。将高度从 1188 更改为 1189 会强制所有幻灯片上的所有形状从 31 变为 18。粘贴到幻灯片中的任何新文本都以包含 18 个文本的形状出现。

我将其发布在 Stack Overflow 而不是超级用户上的原因是因为我必须自动执行此更改……我们有数千个演示文稿要修改。

标签: vbapowerpoint

解决方案


推荐阅读