如何允许VBA代码在只读PowerPoint文件中运行?

时间:2017-05-26 15:15:07

标签: vba powerpoint-vba

我有一个受密码保护的PowerPoint文件,因为坦率地说,与文件交互的操作员是计算机文盲,如果文件可编辑,可能会意外破坏该文件。

我应该说,在我深入了解之前......我搜索并找到了这个问题,这个解决方案在这种情况下不会起作用:Click Me

我编写了一个简单的VBA脚本,允许他们搜索部件号,而不是使用PowerPoint幻灯片来查找正确的部件号(这可以追溯到不用于计算机甚至不知道PowerPoint是什么)。

无论如何,脚本在我的计算机上运行良好,但显然我必须输入密码来编辑VBA代码。当我尝试以只读模式运行代码时,出现错误"Run-time error '-2147467259 (80004005)' Presentation (unknown member) : Invalid request. Presentation cannot be modified."

基本上,我看到代码无法以只读模式执行文件。

错误实际上出现在这段代码中:

'Follow the hyperlink to opent the correct file
    If Len(Dir$(ActivePresentation.Path & "\" & sFile)) > 0 Then
        ActivePresentation.FollowHyperlink Address:=sFile
    Else
        MsgBox "No file exists at path " & ActivePresentation.Path & "\" & sFile
    End If

ActivePresentation.FollowHyperlink Address:=sFile行。

我能以不同的方式打开pdf文件,以只读模式进行演示吗?

1 个答案:

答案 0 :(得分:0)

您无法打开受密码保护的文件,无需提供密码。 要通过提供密码在VBA中打开文件,您可以执行以下操作:

设置oPres = Presentations.Open(" c:\ temp \ open.pptx :: pwd ::")

其中c:\ temp \ open.pptx是文件的路径,pwd是密码。

由于这样打开文件,您的同事仍然可以对其进行编辑,因此您可以考虑将真实文件复制到其临时文件夹,可能是在某些不太可能的情况下,并打开副本而不是原始文件。然后在下次运行任何代码时删除任何现有副本。