是否可以在受只读保护的 PowerPoint 中 运行 VBA 宏?

Is it possible to run a VBA macro in a READ-ONLY protected PowerPoint?

我和我的同事花了六个月时间寻找 VBA 宏,它可以 运行 在受密码保护的只读 PowerPoint 中。

由于只读状态,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 条件。

我希望用户使用宏并保存,但不进行超出此范围的编辑,或者打开并 'look under the hood'。

(这一切都是为了一个教育计划)

我们得到

Run-time error '-2147467259 (80004005)'
Presentation (unknown member) : Invalid request. Presentation cannot be modified.

也许作为解决方法,您可以保存原始只读演示文稿的副本,运行您在新版本上的宏,然后将新版本另存为只读?

您好,这可能为时已晚,但如果我理解正确,您希望其他用户可以阅读、执行宏,但无法阅读其背后的代码。保存应该没问题。

  1. 您使用的宏应该有密码保护。首先进入编辑器,select宏查看properties/protection并设置密码
  2. 完成后,关闭文件。右键单击 file/properties 并选中只读。然后用户将可以访问宏,但无法看到它背后的代码并可以保存它。