2011-04-15 7 views
0

私は、2007 Office system用のいくつかのOfficeアドインで作業しています。アドインは、フォーマットが新しい圧縮XMLベースのフォーマット(docx、xlsx、xlsm、pptxなど)のいずれかである場合にのみ、アクションを実行するためにファイルフォーマットを知る必要があります。PowerPoint VSTOでプレゼンテーションのファイル形式を調べるにはどうすればよいですか?

各Office製品のAPI(呼び出しと動作)の相違にもかかわらず、WordとExcel用のアドインを作成することができました。これらの両方で、私は保存イベントを検出し、ファイルフォーマットと、それが保存か保存操作かに基づいて変更を加えることができます。しかし、私はPowerPointに来て、ファイルがどのような形式で保存されているか、それが通常の保存であるか、操作としての保存であるかを判断するのには苦労しています。

だから、私の質問は、パワーポイントVSTOにアドインされています

  • は(単にファイル拡張子の比較以外)のファイル形式を決定する方法はありますか?
  • 保存が通常の保存または保存のどちらであるかを確認することはできますか?おそらく(


オーケー更新、私は私の検索を変更して(つまり、拡張子を使用する以外に方法はありません)私の最初の質問に答えるように見えるこれらの質問を見つけましたが、2つ目の質問はまだ立っています私は検索フーを改善するまで)。

答えて

2

私はPPTを思い出すと、それを行うための方法はありません。 OPENイベントを代行受信し、文書のファイル名をキャッシュしてから、保存中にファイル名を確認する必要があります。それが同じであれば、それはSAVEでした。違うなら、SAVEです。

文書が新規の場合、初期ファイル名は存在しないため、保存はasで保存される必要があります。

+0

ありがとうございます!それはおそらく十分です。 –

2

Application.PresentationBeforeSaveは、名前を付けて保存ダイアログが表示される直前に発生するため、これは「名前を付けて保存...」と伝えるイベントです。それでは、私はどうなることはモジュールにDim isSaveAs As Boolean = Falseのようなもののグローバル変数を入れているApplication.PresentationSave保存通常の(しかし、プログラム的に「...名前を付けて保存」のために使用することができる)

あり、その後、Application.PresentationBeforeSaveTrueに設定(引数がCancel = Trueの場合を除き、その場合はFalseに戻します)。その後、Application.PresentationSaveイベントでは、私はIf isSaveAs = True Then DoThis Else DoThatをチェックします。次に、Application.PresentationSaveイベントの最後にisSaveAsFalseに戻します。

+0

ありがとう、私はBeforeSaveがSaveAsの間だけであったことを知らなかった。それは本当に役に立つ情報です。それは有り難いです。 –

関連する問題