【问题标题】:How to provide VBA access for a modify password protected read only PowerPoint file?如何为修改密码保护的只读 PowerPoint 文件提供 VBA 访问权限?
【发布时间】:2014-03-16 15:57:03
【问题描述】:

我正在尝试创建 PowerPoint 幻灯片的免费不可编辑版本,以演示如何使用 VBA 使幻灯片变得非常动态。幻灯片是一个交互式秒表,这里有一段视频:

http://i-present.co.uk/free-stuff/free-powerpoint-stopwatch/

VBA 用于根据 Windows API 计时器修改幻灯片上的各种形状。

在免费版本中,我希望 VBA 功能运行,但设置演示文稿以便无法编辑幻灯片对象。

这是我迄今为止尝试过的:

1 - 在文件的 ppsm 版本上设置修改密码。 问题:当演示文稿以只读模式打开时,VBA 无法修改幻灯片上对象的属性。

2 - 使用 VBA 保存文件的临时写入版本。 问题:一旦以只读方式打开演示文稿,似乎无法使用 VBA 提供密码然后保存为可修改的文件。

3 - 创建一个单独的 ppsm 文件,上面有一个单一的形状,并带有一个操作来运行宏以打开受密码保护的秒表卡组。 问题:用于打开受密码保护的演示文稿的 VBA 代码(自 PowerPoint 2010 起可用)导致 PowerPoint 2013 崩溃:

Dim oPVW As ProtectedViewWindow
Dim oPres As Presentation
Set oPVW = ProtectedViewWindows.Open(FileName, ReadPassword)
Set oPres = PVW.Edit(ModifyPassword)

4 - 将秒表 ppsm 文件作为幻灯片对象嵌入到另一个演示文稿中,以便用户可以单击它但不能保存和编辑它。 问题:从嵌入对象生成幻灯片会导致 VBA 代码无法运行。

有没有人知道如何解决这个需求?

【问题讨论】:

  • 7 年后,我在玩弄这段代码并得出结论认为 MS 帮助页面是错误的。将 ProtectedViewWindows.Edit 与 ModifyPassword 一起使用不会重置密码,它会提供密码以允许修改。提供密码后,ActivePresentation 关键字开始对文件进行更改。保存并关闭文件后仍有原来的修改密码。

标签: vba powerpoint


【解决方案1】:

你好,ChromeBumpers 先生

一种方法:

让他们根据自己的喜好编辑形状。但警告他们,如果他们这样做,您的代码将拒绝运行。

您的代码可以测试您喜欢的形状属性的任意组合:高度、宽度、顶部、左侧、颜色、文本等。如果其中一个属性已与您提供的形状不同,请拒绝运行。

【讨论】:

  • Chrome 先生回来了 :-) 史蒂夫的好主意,这正是我在等待看看是否有人有任何其他想法的同时采取的确切方法(奇怪的是,受保护的视图在 2010 年有效,但总是2013 年坠毁!)。
  • 趋势似乎是“Solid Version, BugFarm, Solid Version, BugFarm”。可怜那些处于每个版本升级周期并在 2002 年、2007 年、2013 年登陆的人。
  • 好吧。我完成了这个微宏项目!现在可以从这里免费下载并演示 Windows API 计时器功能以及 Steve 描述的内容控制机制。 i-present.co.uk/free-stuff/free-powerpoint-stopwatch
【解决方案2】:

以下是 Excel 中的代码,可打开受密码保护的 PowerPoint 文件。 将 password 替换为您的实际密码。这在2010年、2016年和365办公室都有效。

Dim PPTObj As Object
Set PPTObj = CreateObject("PowerPoint.application")
PPTObj.Presentations.Open ("C:\PowerPoint\PW_prot_file.pptm:password::")

【讨论】:

  • 我想应该是:“C:\PowerPoint\PW_prot_file.pptm::password::”。 ::password:: 代替 :password::
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-19
  • 2015-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多