【发布时间】:2018-08-30 01:12:00
【问题描述】:
我和我的同事已经进行了六个月的探索,寻找可以在只读、受密码保护的 PowerPoint 中运行的 VBA 宏。
由于只读状态,PowerPoint 是否可能或将始终阻止 VBA 宏在演示文稿中运行?
Private Sub CheckBox1_Click()
Dim ppShp As Shape
Dim eff1 As Effect
Dim ani1 As AnimationBehavior
With ActivePresentation.Slides(1)
Set ppShp = .Shapes("Oval 4")
Set eff1 = .TimeLine.MainSequence.AddEffect(Shape:=ppShp, effectId:=msoAnimEffectAppear)
End With
End Sub
我尝试使用If ReadOnly = True Then 条件。
我希望用户使用宏并保存,但不要在此之外进行编辑,或者打开并“深入了解”。
(都是为了教育项目)
我们得到
运行时错误“-2147467259 (80004005)”
演示文稿(未知成员):无效请求。无法修改演示文稿。
【问题讨论】:
-
你知道密码吗?如果不是,那么不,你当然不能用它做任何事情
-
感谢您的回复。是的,这是我自己的密码和PPT。虽然我想为没有也不会拥有密码的人制作它。我希望他们使用宏,但不解锁。
-
先看看你的代码能不能在没有密码的非只读PPT上工作。宏 inside 是只读密码保护文档,还是外部的? ready/only 和 pwd 保护不是严重的保护。很容易破解
-
是的,否则宏可以工作。它是内部的,因为它可以在开发人员选项卡 VBA 编码视图表中查看。有没有办法通过使 VBA 代码外部化来完成我所追求的目标??
-
是的,你可以让你的代码外部化。例如,您可以创建一个已编译的 VB6 应用程序。您可以在 .Net 中创建(使用 COM 互操作)。您可以在 VBScript 中执行此操作。您可以将其放在单独的 Excel 文件中。任何可以使用 COM 对象的语言。那么是导致错误的只读方面还是密码方面?缩小范围。您应该了解,克服 Office 密码保护是微不足道的。这不是真正的保护方法。
标签: vba powerpoint readonly