2012-03-15 14 views
3

私はword.dll(Word Interop API)を使用してC#でスペルチェックアプリケーションを作成しています。C#でのスペルチェックWord Interopを使用して

どのスペルミスが間違っているのかを確認して、誤ったスペルミスを提案します。

私はネットからのサンプルコードを持って、私は、次のコマンドのパラメータを理解することはできません。

Microsoft.Office.Interop.Word._Application.GetSpellingSuggestions 
    (string, ref object, ref object, ref object, ref object, ref object, 
     ref object, ref object, ref object, ref object, ref object, ref object, 
     ref object, ref object) 

私はちょうどないすべてのref object sが暗示するかを知りたいですか?私はその意味を知りたい。

答えて

0
SpellingSuggestions GetSpellingSuggestions(
     string Word, 
     ref Object CustomDictionary, 
     ref Object IgnoreUppercase, 
     ref Object MainDictionary, 
     ref Object SuggestionMode, 
     ref Object CustomDictionary2, 
     ref Object CustomDictionary3, 
     ref Object CustomDictionary4, 
     ref Object CustomDictionary5, 
     ref Object CustomDictionary6, 
     ref Object CustomDictionary7, 
     ref Object CustomDictionary8, 
     ref Object CustomDictionary9, 
     ref Object CustomDictionary10 

) 
+1

代わりにドキュメントを参照してください。 –

3

更新: だから、あなたが単語から最初のつづりの候補を取得する必要がありそうです。私はこの記事をチェックし、私はあなたがこのような何かする必要があります推測:msdn docsからそう

Word.SpellingSuggestions listOfSuggestions = 
            app.GetSpellingSuggestions(searchStr); 
listOfSuggestions.Items[0].Name;//should contain the first suggestion 

構文1

expression.GetSpellingSuggestions(CustomDictionary, IgnoreUppercase, 
    MainDictionary, SuggestionMode, CustomDictionary2 CustomDictionary10) 

結果を:SpellingSuggestionsコレクションを返すこと指定された範囲内の最初の単語のスペル置換として提案された単語を表します。

構文2

expression.GetSpellingSuggestions(Word, CustomDictionary, IgnoreUppercase, 
MainDictionary, SuggestionMode, CustomDictionary2 CustomDictionary10) 

結果は:言葉が与えられた単語のスペル代替品として提案表しSpellingSuggestionsのコレクションを返します。

:あなたは.NET4より前のものを使用している場合、あなたはあなたがempty/nullをしたいのパラメータのMissing.Valueを使用する必要があります。 .NET4からはオプションのパラメータがあり、Officeライブラリへの参照を追加すると、interopラッパーはオプションのパラメータに基づいてオーバーロードされます。

+0

ありがとうございました。実際には、Microsoft Wordで提案ウィンドウを開くのではなく、コードを通じて最初のスペル候補を取得したかったのです。どのように私はこれを行うことができるでしょうか? –

+0

@PrachiPatil答えを更新しました。 – gideon

+0

ありがとうございました....働いています。しかし、Microsoft Wordアプリケーションはすべての単語に対してポップアップしています。 Microsoftアプリケーションのウィンドウをポップアップさせずにスペルの候補を表示する方法はありますか? –

2

先日私はこの問題に取り組んでいましたが、私は自分の発見を共有し、すでに与えられた回答に少し追加したいと思いました。

あなたは尋ねる:

を私が間違っていたスペルチェックし、それに応じて間違った単語の 提案を取得したいです。

(...)

私はちょうどsが意味するものでは全ての「参照オブジェクトを」何をすべきか知っていると思いますか?私は の意味を知りたいです。

短い答えはthe documentationです。

より完全な文脈でGetSpellingSuggestionsメソッドを使用する方法を示すために、私は以下のサンプルプログラムを含めました。変数languageを使用して、目的のプルーフィング言語を変更することができます。 オーバーフローをオーバーフローし、オーバーフローし:私は、次の三つの提案を与える

using System; 
using Microsoft.Office.Interop.Word; 

namespace WordStack 
{ 
    public class Program 
    { 
     private static void Main() 
     { 
      // Create a new Word application instance (and keep it invisible) 
      var wordApplication = new Application() { Visible = false }; 

      // A document must be loaded 
      var myDocument = wordApplication.Documents.Open(@"C:\...\myDoc.docx"); 

      // Set the language 
      var language = wordApplication.Languages[WdLanguageID.wdEnglishUS]; 

      // Set the filename of the custom dictionary 
      // -- Based on: 
      // http://support.microsoft.com/kb/292108 
      // http://www.delphigroups.info/2/c2/261707.html 
      const string custDict = "custom.dic"; 

      // Get the spelling suggestions 
      var suggestions = wordApplication.GetSpellingSuggestions("overfloww", custDict, MainDictionary: language.Name); 

      // Print each suggestion to the console 
      foreach (SpellingSuggestion spellingSuggestion in suggestions) 
       Console.WriteLine("Suggested replacement: {0}", spellingSuggestion.Name); 

      Console.ReadLine(); 
      wordApplication.Quit(); 
     } 
    } 
} 

を...:コードは次のようになります。

このサンプルは、.NET 4.5と15のWord Interop API(Office 2013)を使用して実装されています。

与えられたサンプルはまた言って、すでに与えられた答えの一つにあなたのコメントを解くことに注意してください:

を(...)それが働いています。しかし、Microsoft Wordアプリケーションはすべての単語 のためにポップアップしています。 Microsoftアプリケーションウィンドウをポップアップさせることなく、スペルの提案を得る方法はありますか?

個人的に、私はその動作を経験していない(どちらもApplicationインスタンス上で利用可能GetSpellingSuggestionsCheckSpellingメソッドを持ちます)。一つ以上のスペルミスが発見された場合は、Documentインスタンス上CheckSpellingを呼び出す場合

しかし、それはas covered in the documentation、意志、スペルチェックダイアログを表示する(あなたは、WordのApplicationインスタンスの建設中にVisibleプロパティを割り当てることを考えますtrue - そうでない場合は、バックグラウンドでの入力を待って、アプリケーションをフリーズさせます)。

関連する問題