PowerPoint VBA技术问询:Presentations(".\directory\ppname.ppt")调用是否合法?
PowerPoint VBA中使用相对路径调用演示文稿是否合法?
其实你完全不用担心,这个调用是合法的。PowerPoint VBA里的Presentations集合(不管是用Open方法打开,还是直接通过路径访问)是支持标准Windows文件路径格式的,包括你提到的.(当前目录)、..(上级目录)和\(目录分隔符)这些DOS风格的路径指令。
具体来说:
- 当你用
.\directory\ppname.ppt这种路径时,VBA会以当前运行代码的演示文稿所在的目录作为基准,去查找子目录里的目标PPT文件。 - 这里有个小坑要注意:如果你的代码是在一个还没保存过的演示文稿里运行,此时的“当前目录”会是PowerPoint的默认启动目录(比如系统的Documents文件夹),而不是你预期的位置。所以最好确保运行代码的演示文稿已经保存过,这样相对路径的基准才准确。
给你个更稳妥的写法参考,用ThisPresentation.Path明确获取当前演示文稿的路径,避免依赖默认的当前目录上下文:
Dim targetPresentation As Presentation ' 拼接路径并打开目标演示文稿 Set targetPresentation = Presentations.Open(ThisPresentation.Path & "\directory\ppname.ppt")
虽然微软官方文档没有专门把这些路径指令单独列出来,但VBA的文件操作相关能力都是遵循Windows文件系统规则的,所以这些常见的路径符号都是被支持的,和DOS脚本里的用法一致。
内容的提问来源于stack exchange,提问作者William Barrett
相关产品推荐
相关产品推荐

