我需要确定是否 ActivePresentation 为97-2003或2007年格式。我真的不想检查扩展名。

PowerPoint对象模型中的某个地方是否有一个属性?

有帮助吗?

解决方案

不幸的是,没有文件格式属性。您必须走延伸路线,例如:

Sub APFileFormat()
Dim ap As Presentation
Set ap = ActivePresentation
Length = Len(ap.Name)
Match = InStrRev(StringCheck:=ap.Name, StringMatch:=".")
ExtentionLength = Length - Match
    Select Case ExtentionLength
        Case 4
            FileFormat = "PowerPoint 2007-2010"
        Case 3
            FileFormat = "PowerPoint 97-2003"
        Case Else
            FileFormat = "undetermined"
    End Select
Debug.Print "The file format of the active presentation is " & FileFormat
End Sub

其他提示

当演示文稿打开时,没有文件格式,它全部都在内存中。但是,它来自旧的文件可以是 二进制格式 或更新 OpenXML格式. 。判断区别的最简单方法是查看文件的前几个字节。

对于二进制格式,这是 OLE复合文件 它将始终从字节开始:0xD0,0xCF,0x11,0xe0,0xa1,0xb1,0x1a,0xe1。

对于较新的格式,它是 zip文件 它将始终以字节开头:0x50,0x4b,0x03,0x04

查看文件的前几个字节是快速确定文件类型的最佳方法,尽管它需要更多的工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top