2

ActivePresentationが97-2003形式か2007形式かを判断する必要があります。私は本当に拡張子をチェックしたくありません。

この情報を提供するPowerPointオブジェクトモデル内のどこかにプロパティがありますか?

4

2 に答える 2

3

プレゼンテーションが開いているときは、ファイル形式はなく、すべてメモリ内にあります。ただし、元のファイルは、古いバイナリ形式または新しいOpenXML形式のいずれかである可能性があります。違いを見分ける最も簡単な方法は、ファイルの最初の数バイトを調べることです。

バイナリ形式の場合、これは常にバイトで始まるOLE複合ファイルです:0xD0、0xCF、0x11、0xE0、0xA1、0xB1、0x1A、0xE1。

新しい形式の場合、これは常にバイトで始まるZIPファイルです:0x50、0x4B、0x03、0x04

ファイルの最初の数バイトを確認することは、ファイルタイプをすばやく判断するための最良の方法ですが、より多くの作業が必要になります。

于 2010-06-04T14:35:43.987 に答える
0

残念ながら、FileFormatプロパティはありません。次のような拡張ルートを使用する必要があります。

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
于 2010-05-26T21:13:58.887 に答える