创建、打开和保存演示文稿

[大谦Excel,dqexcel点com]使用Presentations集合对象的Add方法新建演示文稿。Add方法的语法格式为:

code.vba
Sub Test()
  Dim pr As Presentation
  Set pr = Application.Presentations.Add(WithWindow)
End Sub

其中,WithWindow是可选参数,指定文件是否可见,值为True时可见,为False时不可见,默认时可见。Application可以省略,即可以直接写成

code.vba
Set pr=Presentations.Add(WithWindow)

使用Presentations集合对象的Open方法打开已经存在的演示文稿。Open方法的语法格式为:

code.vba
Set pr=Presentations.Open(FileName,ReadOnly,Untitled,WithWindow)

其中,FileName是必需参数,指定字符串表示要打开的文件名。ReadOnly为可选参数,值为True时表示以只读状态打开文件,值为False时表示以可写状态打开。Untitled为可选参数,指定文件是否有标题。WithWindow参数指定文件是否可见。

下面的语句打开D盘下的PPT文件pres.pptx:

code.vba
Sub Test2()
  Dim pr As Presentation
  Set pr = Presentations.Open("D:\test.pptx")
End Sub

下面以只读方式打开:

code.vba
Set pr = Presentations.Open("D:\test.pptx", True)

当Presentations集合对象中存在多个演示文稿且需要对其中某个进行处理时,首先要从集合中找到它。找到它的过程称为演示文稿的引用。可以用演示文稿的名称进行引用,也可以用该演示文稿在集合中的索引号进行引用。

假设先后往Presentations集合中保存了演示文稿pr1和pr2,下面的语句先给pr1和pr2指定名称,然后分别用演示文稿的名称和索引号引用pr2。

code.vba
Sub Test()
  Dim pr1 As Presentation
  Dim pr2 As Presentation
  Set pr1 = Presentations(1)    '用索引号引用
  Debug.Print pr1.Name
  Set pr2 = Presentations.Add()
  pr2.Name = "pr2"
  Debug.Print Presentations("pr2").Application.Name    '用名称引用
End Sub

演示文稿处理完后需要保存,跟保存有关的属性和方法包括:

  • pr.Saved
  • pr.Save()
  • pr.SaveAs ()
  • pr.SaveCopyAs()

Presentation对象的Saved属性用来标识文稿自上次保存以来是否进行过修改,值为True时表示没有进行过修改,值为False时表示进行过修改。一般在保存文稿之前先用该属性进行判断,修改过才进一步保存。

使用不带参数的Save方法保存当前已经保存过的演示文稿到原目录。如果时新建文稿,使用SaveAs方法保存。先用Saved属性判断文稿是否修改过,如果修改过了,用Save方法进行保存。

使用SaveAs方法保存新建文稿,或将保存过的文稿另存为其他名称、格式或路径。该方法的语法格式为:

code.vba
pr.SaveAs(FileName, FileFormat, EmbedFonts

其中,FileName为必需参数,指定文稿的保存名称。FileFormat参数可选,指定文稿的保存格式。EmbedFonts参数可选,指定是否将TrueType字体嵌入保存的演示文稿中。

下面的语句将当前演示文稿pr另存为D盘下的test.pptx:

code.vba
Sub Test()
  '新建文稿
  Dim pr As Presentation
  Set pr = Presentations.Add()
  pr.SaveAs("D:\test.pptx")
End Sub

对于打开的文稿,修改后可以直接用Save方法保存。

code.vba
Sub Test2()
  '打开文稿,修改后保存
  Dim pr As Presentation
  Set pr = Presentations.Open("D:\newpr.pptx")
  Dim sld As Slide
  Set sld = pr.Slides.AddSlide()
  If pr.Saved Then
    pr.Save
  End If
End Sub

如果要将文件保存为其他路径或文件名,使用SaveAs方法。

code.vba
Sub Test3()
  '打开文稿,保存为其他路径或名称
  Dim pr As Presentation
  Set pr = Presentations.Open("D:\newpr.pptx")
  pr.SaveAs "C:\pr.pptx"
End Sub

使用SaveAs方法保存文稿时,会退出原来打开的文稿并打开新保存的文稿。如果不希望这样,即只是单纯地保存文稿的副本而不退出,使用SaveCopyAs方法。该方法的语法格式为:

code.vba
pr.SaveCopyAs FileName, FileFormat, EmbedTrueTypeFonts

其中各参数的意义与SaveAs方法的相同。

下面的语句只保存当前演示文稿pr的一个副本到D盘下的test.pptx,当前文稿不退出:

code.vba
pr.SaveCopyAs "C:\pr.pptx"