Domanda

Ho bisogno di determinare se il ActivePresentation è 97-2003 o 2007 formato. Io davvero non si vuole controllare l'estensione.

C'è una qualche parte di proprietà all'interno dell'oggetto di PowerPoint modello che dà queste informazioni?

È stato utile?

Soluzione

Non v'è alcuna proprietà Formato file, purtroppo. Dovrete andare via di estensione, come:

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

Altri suggerimenti

Quando la presentazione è aperta non esiste un formato di file, il suo tutto in memoria. Tuttavia il file proviene può essere sia il più vecchio binario formato o il più recente OpenXML formattare . Il modo più semplice per capire la differenza è quello di esaminare i primi byte del file.

Per i formati binari si tratta di un OLE Compound File che sempre iniziare con i byte: 0xD0, 0xCF, 0x11, 0XE0, 0xA1, 0xB1, 0x1a, 0xE1

.

Per i formati più recenti è un ZIP file che verrà sempre iniziare con i byte: 0x50, 0x4B, 0x03, 0x04

Guardando i primi byte del file è il modo migliore per determinare rapidamente il tipo di file, anche se ci vuole più lavoro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top