vba - 如何更改 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 而不是超级用户上的原因是因为我必须自动执行此更改……我们有数千个演示文稿要修改。
解决方案
推荐阅读
- python - 在基于函数的视图中将多个值解析为 user_passes_test
- python - 从 mpl 平行坐标图中删除图例?
- angular - Angular 的 Kendo UI 不显示任何数据
- c# - 如何将字符串从 httpcontet.current.session.getstring 转换为某个给定类型
- javascript - 如何覆盖 html5 视频 muted="true"
- rust - 如何实现反序列化和派生它
- flutter - 未处理的异常:键入“列表”
' 不是类型 'Map 的子类型 ' on LoanSimulation Flutter - php - 如何将所有嵌套的 tar.gz 和 zip 提取到 PHP 中的目录?
- javascript - reactjs中的单选按钮检查错误
- python - launch_map: "Dict[asyncio.Task[object], threading.Thread]" = {} -Error While Creating Django Project