1

質問をする前に、問題の背景について簡単に説明します。C#でms word COMアドインを開発しており、ユーザーのテキスト選択を処理する必要があります。今、私は選択イベントをキャッチすることができます-それは次のように見えます

Microsoft.Interop.Word._Application app;
app = (Word._Application )Application; // Application object comes on addin's connection
app.Application.WindowSelectionChange+= 
            new Word.ApplicationEvents4_WindowSelectionChangeEventHandler(selChange);

///
void selChange(Word.Selection selection){

   MessageBox.Show(selection.Text); // this is my problem, Text property is not available

}

//プロパティTextは存在しませんが、ドキュメントには存在すると記載されています。このプロパティはmsword2007では使用できないと思われます。ドキュメントには2003、2010バージョンのみが記載されています。しかし、どうすれば次のようなことができますかselection.getSelectedText()?私は、、、で遊んでみましたselection.Rows-selection.Rows[0]成功selection.Words,selection.Words[0]しませんでした。

4

1 に答える 1

2

ドキュメントによると、このSelection.Textプロパティは Word 2007 でも利用できるはずです。私はそれをテストするためにあなたのケースの小さなサンプル実装を作成しましたが、少なくとも Word 2010 と 2013 で失敗させることはできません:

var wordApplication = new Application() { Visible = true };
wordApplication.Documents.Add();
wordApplication.WindowSelectionChange += delegate(Selection mySelection) { Console.WriteLine(mySelection.Text); };

したがって、正しい名前空間が含まれていることと、Selection使用しているインターフェイスが実際にMicrosoft.Office.Interop.Word名前空間のものであることを確認することをお勧めします。

于 2013-02-26T22:47:46.323 に答える