Excel VBA 无法打开网络驱动器上的 PPT 文件

Excel VBA won't open PPT files on network drive

我有一个非常旧的 VBA 文件,它是由其他人创建的,只有有限的评论来解释它。该文件是一个训练文件,它要求输入名称,然后提供您可以查看以进行训练的文件名。变量从 5 个不同的子例程传递过来。

RetVal = Shell("C:\Program Files\Microsoft Office\OFFICE11\PPTVIEW.EXE  " & ProgFile, 1)

这是从 Excel 打开 PowerPoint 4.0 文件的行。 ProgFile 是传递的变量。

我的问题:如果我将文件放在 C:\ 驱动器的目录中(比如说 C:\Training\Forklift.ppt),文件可以正常打开并且程序会执行它应该执行的操作。

但是:将这些相同的 PPT 文件放在我的网络驱动器上 (S:\Training\Forklift.ppt) 我收到三个错误消息,因为弹出窗口未编码到程序中(我怀疑是系统错误)。 (路径名称已更改为显示为 S:\

  1. PowerPoint 查看器找不到文件RECORDS
  2. PowerPoint 查看器找不到文件Safety
  3. PowerPoint 查看器找不到文件Forklift.ppt

RECORDSSafety 不是任何子例程正在使用的文件。是因为打开 PowerPoint 的 Shell 功能还是我忽略的其他神秘事物?

我正在尝试重写子例程,这是给我带来问题的未更改代码的一部分。

我的猜测是 RECORDSSafety 都是在您的 Forklift.ppt 演示文稿中链接的某种外部文件。 PowerPoint 因在移动时破坏演示文稿而臭名昭著。如果 PPT 中有任何链接,它们将需要更新以指向您 S: 驱动器上的新位置。

您可以通过为它编写一些 VBA 代码来自动更改链接,但如果这是一次性的移动,它可能不值得 - 只需手动重做。

尝试用引号将您的参数括起来:

RetVal = Shell("C:\Program Files\Microsoft Office\OFFICE11\PPTVIEW.EXE " & Chr(34) & ProgFile & Chr(34), 1)