0

Visual Studio 2010 と .NET 3.5 を使用して、Word 2007 用のアプリケーション レベルのアドインを開発しました。それが行うことの一部は、

Globals.ThisAddIn.Application.Selection.Range

テキストを挿入します。

ただし、読み込まれたドキュメントがない場合、このコードは失敗します。例外をキャッチするか、ドキュメントが現在開いているかどうかをプログラムで検出できますが、もっと簡単な方法があるはずです...

Word 2007 が開いていてドキュメントが読み込まれていない場合、リボンのほとんどのボタンが無効になります (つまり、グレー表示されます)。

これがどのように達成されるか考えていますか?アドインはイベントにフックし、それに応じてボタンを無効にしますか? もしそうなら、これは

DocumentBeforeClose

Word が何らかの形でドキュメントなしで開かれた場合、これは危険でしょうか? (つまり、ドキュメントはロードされていませんが、イベントはまだトリガーされていません。)

前もって感謝します!

更新:OK、それは

getEnabled="MyMethod"

XML の属性が今後の方法かもしれませんが、これはリボン全体ではなく、リボン上の個々のコントロールに対してのみ機能するようです。

4

2 に答える 2

0

あなたは基本的にあなた自身の質問に答えました。

例外をキャッチするか、ドキュメントが現在開いているかどうかをプログラムで検出できました

例外をキャッチするのは少し厄介ですが、うまくいくでしょう。

読み込まれたドキュメントがあるかどうかをプログラムで検出することが最善の方法です。

そして、それは簡単です。

  If Globals.ThisAddIn.Application.Documents.Count > 0 then
        'at least one document is opened
  end if

これ以上簡単なことはありません。

リボンのボタンに関して他に達成しようとしていたことはありますか?

于 2011-04-13T17:38:33.687 に答える
0

代わりに DocumentChange イベントを使用してみてください (このスレッドで私の回答を参照してください)。

于 2011-07-11T11:36:46.923 に答える