Question

Je dois déterminer si le ActivePresentation est le format 97-2003 ou 2007. Je vais vraiment envie de ne pas vérifier l'extension.

Y at-il un endroit de propriété à l'intérieur du modèle objet PowerPoint qui donne cette information?

Était-ce utile?

La solution

Il n'y a pas de propriété Format de fichier, malheureusement. Vous devrez emprunter la voie d'extension, comme:

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

Autres conseils

Lorsque la présentation est ouverte, il n'y a pas le format de fichier, tout est dans la mémoire. Cependant, le fichier, il est venu de peut être soit l'ancien format binaire ou plus récente OpenXML formater . La façon la plus facile de faire la différence est de regarder les premiers octets du fichier.

Pour les formats binaires, il est OLE composé fichier qui toujours commencer par les octets: 0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1

.

Pour les formats les plus récents, il est un fichier ZIP qui commence toujours avec les octets: 0x50, 0x4B, 0x03, 0x04

En regardant les premiers octets du fichier est la meilleure façon de déterminer rapidement le type de fichier, mais il faut plus de travail.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top