2017-05-16 6 views
0

ドキュメントの内容を読み込んで、特定の単語のすべての箇所をハイパーリンクで置き換えるMS-Wordアドインに取り組んでいます。Word - ハイパーリンクでテキストを置き換えます

これまでのところ、私はこの作業アルゴリズムを思いついた。

// Initializes the Find parameters 
searchRange.Find.ClearFormatting(); 
searchRange.Find.Forward = true; 
searchRange.Find.Text = "foo"; 
do 
{ 
     searchRange.Find.Execute(Wrap: Word.WdFindWrap.wdFindStop); 

     if (searchRange.Find.Found) 
     { 
      // Creates a Hyperlink at the found location in the current document 
      this.WordDocument.Hyperlinks.Add(searchRange, externalLink, link, "bar"); 
     } 
     searchRange.Find.Execute(Wrap: Word.WdFindWrap.wdFindStop); 
} while (searchRange.Find.Found); 

このコードは機能しますが、大きなドキュメントでは遅くなることがあります。したがって、ハイパーリンクを1つずつ追加する代わりに、Find.ReplacementオブジェクトとWdReplace.ReplaceAllプロパティを使用するだけでした。

ただし、検索結果をハイパーリンクで置き換えることはできません。

Replaceメソッドを使用してハイパーリンクでテキストを置き換える方法はありますか? 言い換えれば、私はこれを行うための方法を見つけるしたいと思います。他の側では

Find.Replacement.Text = new Hyperlink(...);

が、私はWordで Alt + F9を押すことで、私たちはコードのようにハイパーリンクを見ることができる、ということを見てきました。 コードは次のようになります。 { HYPERLINK \l "link" \o "Caption" }

別の解決策その文字列としてテキスト置換を設定し、Wordがそれを解釈しますので、リンクを作成できるようになります。

読んでいただきありがとうございます。

答えて

1

私の知る限り、フィールドはプログラムによってのみ、またはCTRL-F9を使用して挿入することができます。これには次の2つの理由があります。

  • これらは単純なテキストではありません。それらには、CodeResultの2つの範囲があり、いずれか1つのみがいつでも表示されます。
  • コードのように見えますが、作成する特別なメカニズムがないかぎり、ユーザーは1つのコードではないと思われるテキストを挿入するにはどうしたらいいですか?
関連する問題