0

私は 2007 Office System 用の Office アドインに取り組んできました。アドインは、形式が新しい圧縮された XML ベースの形式 (docx、xlsx、xlsm、pptx など) の 1 つである場合にのみアクションを実行するため、ファイル形式を認識する必要があります。

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

したがって、私の質問は、PowerPoint VSTO アドインで次のとおりです。

  • ファイル形式を特定する方法はありますか (ファイル拡張子の比較以外に)?
  • 保存が通常の保存か名前を付けて保存かを判断することはできますか?

更新
さて、検索を変更したところ、最初の質問に答えているように見えるこれらの質問が見つかりました (つまり、拡張機能を使用する以外に方法はありません)。

4

2 に答える 2

2

私がPPTで思い出したように、それを行う方法はありません。OPEN イベントをインターセプトし、ドキュメントのファイル名をキャッシュしてから、保存中にファイル名を確認する必要があります。同じなら保存、違うなら名前を付けて保存。

ドキュメントが新規の場合、最初のファイル名がないため、保存は名前を付けて保存する必要があります。

于 2011-04-15T19:51:30.980 に答える
2

Application.PresentationBeforeSaveフックするイベントで、これが「名前を付けて保存...」であることを通知します。これは、名前を付けて保存ダイアログが表示される直前に発生するためです。Application.PresentationSave通常の保存です(ただし、プログラムで「名前を付けて保存...」に使用できます)

だから私がすることはDim isSaveAs As Boolean = False、モジュールのようなもののグローバル変数を入れてから、それをにApplication.PresentationBeforeSave設定することですTrue(引数がCancel = True-の場合を除き、その場合は元に戻しますFalse)。次に、Application.PresentationSaveイベントでチェックしIf isSaveAs = True Then DoThis Else DoThatます。その後、イベントの最後にisSaveAs戻ります。FalseApplication.PresentationSave

于 2011-04-15T21:12:47.333 に答える