PowerPointファイル形式をプログラムで取得する方法
-
04-10-2019 - |
質問
を判断する必要があります 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。
新しい形式の場合、それはaです ZIPファイル これは常にバイトから始まります:0x50、0x4b、0x03、0x04
ファイルの最初の数バイトを見ることは、ファイルタイプをすばやく決定するための最良の方法ですが、より多くの作業が必要です。
所属していません StackOverflow