Вопрос

Мне нужно определить, 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