ActivePresentation
が97-2003形式か2007形式かを判断する必要があります。私は本当に拡張子をチェックしたくありません。
この情報を提供するPowerPointオブジェクトモデル内のどこかにプロパティがありますか?
ActivePresentation
が97-2003形式か2007形式かを判断する必要があります。私は本当に拡張子をチェックしたくありません。
この情報を提供するPowerPointオブジェクトモデル内のどこかにプロパティがありますか?
プレゼンテーションが開いているときは、ファイル形式はなく、すべてメモリ内にあります。ただし、元のファイルは、古いバイナリ形式または新しいOpenXML形式のいずれかである可能性があります。違いを見分ける最も簡単な方法は、ファイルの最初の数バイトを調べることです。
バイナリ形式の場合、これは常にバイトで始まるOLE複合ファイルです:0xD0、0xCF、0x11、0xE0、0xA1、0xB1、0x1A、0xE1。
新しい形式の場合、これは常にバイトで始まるZIPファイルです:0x50、0x4B、0x03、0x04
ファイルの最初の数バイトを確認することは、ファイルタイプをすばやく判断するための最良の方法ですが、より多くの作業が必要になります。
残念ながら、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