お世話になっております。
Visual Studio 2013 (Visual Studio Tools fpor Office)で、マネージドコードを使用したドキュメントを作成しています。開いたときに、一部の文書の文字列を置き換えます。Microsoft Word 2010 が対象です。
本来はReplacementに置き換えたい内容を指定して置換処理をしたかったのですが、「長すぎます」とエラーになってしまうため、Findで選択させSelectionオブジェクトの示す内容へ代入する方法で代替しています。
C#
1 void Application_DocumentOpen(Word.Document Doc) 2 { 3 4 var f = Doc.Sections.First.Range; 5 f.Find.ClearFormatting(); 6 f.Find.Text = "Moji"; 7 f.Find.Replacement.Text = ""; 8 f.Find.Forward = true; 9 f.Find.Wrap = Word.WdFindWrap.wdFindContinue; 10 f.Find.Format = false; 11 f.Find.MatchCase = false; 12 f.Find.MatchWholeWord = false; 13 f.Find.MatchByte = false; 14 f.Find.MatchAllWordForms = false; 15 f.Find.MatchSoundsLike = false; 16 f.Find.MatchWildcards = false; 17 f.Find.MatchFuzzy = true; 18 var a = f.Find.Execute(); 19 var b = Application.Selection.Text; 20 Application.Selection.TypeText("REPLACE"); 21 22}
例では "Moji"という文字を検索して、REPLACEという文字列に置き換えようとしています。
このとき、a は trueになるのですが、bはとんちんかんな内容を示しています。
可能性はDocumentOpenイベントではSelectionオブジェクトを扱えないか、他に間違いがあるかですが、うまくSelectさせ、置き換えさせるために、間違えている個所がありましたらご指摘いただけますでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。