c# - PowerPoint 通过 VBA 或 C# 更改墨水颜色(或活动笔)
问题描述
经过几个小时的谷歌搜索/搜索/调试后,我决定问。
在 PowerPoint 中墨迹书写时如何更改活动笔或仅更改颜色。
场景:目前正在用绿色笔在我的 PPT 上墨迹并想将其更改为红色。请注意,这不是在幻灯片放映期间,而是在幻灯片编辑模式下。
我需要的是要么
- 更改当前选定的笔颜色
- 更改当前选定的笔
经过进一步研究,我发现了一个代码,它可以根据 ID 单击功能区上的项目,但我还没有找到适当的 ID/动作来单击笔。
var app = new Application();
app.Visible = MsoTriState.msoTrue;
var ppt = app.Presentations.Open( @"test.pptx" );
var control = app.CommandBars.FindControl(
MsoControlType.msoControlButton,
120 // ID
);
control.Execute();
解决方案
抱歉,由于墨迹书写主要是为幻灯片放映期间的注释而开发的,因此 VBA 对象模型将.PointerColor放在.SlideShowSettings对象下。此代码可用于在表演期间更改颜色:
Sub RedInk()
ActivePresentation.SlideShowSettings.Run.View.PointerColor.RGB = RGB(255, 0, 0)
End Sub
此代码将设置指针颜色,但在您开始显示之前它不会可见:
Sub RedInkPreset()
ActivePresentation.SlideShowSettings.PointerColor.RGB = RGB(255, 0, 0)
End Sub
在 Microsoft 将其添加到可在编辑模式下使用的对象(如ActivePresentation.Slides)之前,任何编程语言中的当前对象模型中都没有任何内容可以执行您想要的操作。
推荐阅读
- javascript - 如何在使用 jquery 或 JavaScript 播放视频之前或不播放视频之前获取所有视频的持续时间?
- postgresql - Postgres:如果列包含null,则使用false更新布尔列
- c# - 何时使用 EF Core 从数据库中真正检索到数据?
- java - 如何申请功能
来自列表的参数(不是列表) - html - 移动元素时如何阻止img晃动?
- azure - Azure AD B2C 并发访问令牌请求
- gcc - 编译llvm时,/usr/local/bin/ar线程太多,占用内存太多
- swift - 如何在可可(OS X)中以编程方式自定义工具提示?
- mongodb - mongodb $match 和 $nin 与 _id
- ios - 检查数据库值是否大于 Firebase 中的本地值