在PPT2003中可以用这样的语句:
Set Ppt = CreateObject("PowerPoint.Application")
Set Pst = Ppt.Presentations.Open(FileName, , , 0)
但是在Office2007下,Ppt.Presentations.Open这一句会出错?改用Ppt.Presentations.Open2007也会报错?
自动化对象出错 首先检查注册表 是否注册了PPT的类型库 我用的2010
对应的注册表项 HKEY_CLASSES_ROOT\TypeLib\{91493440-5A91-11CF-8700-00AA0060263B}
对应的CLSID HKEY_CLASSES_ROOT\CLSID\{91493441-5A91-11CF-8700-00AA0060263B}
链接的类型库文件为D:\Program Files\Microsoft Office\Office14\MSPPT.OLB
其中CLSID的子项\VersionIndependentProgID 对应的值就是你CreateObject所要使用的类既是"PowerPoint.Application"
当然你也可以使用ProgID对应的"PowerPoint.Application.14" 这里14代表的是2010版而已 07好像是12还是多少 忘记了运动会口号
初步归结原因为你的电脑上安装了2003及2007
但是默认使用的时2003
当打开2007的PPT文档时出错
具体情况不了解 针对2003版的ACCESS打开2007版也会出错
所以你可以CreateObject的时候加上版本号例如上面我说的那样
加上.14代表2010 .12是否代表2007本地无法验证 只有交给楼主自己实验了
还有就是 我使用的是EXCEL的VBA 代码测试完全没有问题 如果你检查注册表无误的话 就可以使用我第二个方法 要不然就是拼写错误的问题
再有 后期绑定对于入门级选手来说很容易出问题 还是先引用了类型库再实例化类 比较稳妥