1

C#とInteropを使用して、Microsft Wordドキュメントの段落マーカー(^ 13)のすべての置換コードを通常の段落マーカーコード^pに置き換えたいと考えています。

私はMicrosoft.Office.Interop.Word.Selection.Find.Execute()メソッドを使用しています。

例えば..

    .Application.ActiveWindow.Selection.Find.Execute(
               ref findText,
               ref matchCase,
               ref matchWholeWord,
               ref matchWildcards,
               ref matchSoundsLike,
               ref matchAllWordForms,
               ref findForward,
               ref findWrap,
               ref findFormat,
               ref replaceText,
               ref replaceAll,
               ref missing,
               ref missing,
               ref missing,
               ref missing);
  • findText = "^ 13"
  • matchCase = true
  • matchWholeWord = true
  • matchWildcards = true
  • matchSoundsLike = false
  • matchAllWordForms = false
  • findForward = true
  • findWrap = WdFindWrap.wdFindContinue
  • findFormat = false
  • replaceText = "^ p"
  • replaceAll = WdReplace.wdReplaceAll

上記のコードを使用すると、^13マーカーは^pマーカーに置き換えられません。

誰かが私がこれを修正する方法を知っていますか?

4

2 に答える 2

1

以下の私のコードを確認してください:

 // Create the Word application and declare a document
            Word.Application word = new Word.Application();
            Word.Document doc = new Word.Document();

            // Define an object to pass to the API for missing parameters
            object missing = System.Type.Missing;

            try
            {
                // Everything that goes to the interop must be an object
                object fileName = @"D:\test.docx";

                // Open the Word document.
                // Pass the "missing" object defined above to all optional
                // parameters.  All parameters must be of type object,
                // and passed by reference.
                doc = word.Documents.Open(ref fileName,
                    ref missing, ref missing, ref missing, ref missing,
                    ref missing, ref missing, ref missing, ref missing,
                    ref missing, ref missing, ref missing, ref missing,
                    ref missing, ref missing, ref missing);

                // Activate the document
                doc.Activate();

                // Loop through the StoryRanges (sections of the Word doc)
                foreach (Word.Range tmpRange in doc.StoryRanges)
                {
                    // Set the text to find and replace
                    tmpRange.Find.Text = "xml";
                    tmpRange.Find.Replacement.Text = "XML";

                    // Set the Find.Wrap property to continue (so it doesn't
                    // prompt the user or stop when it hits the end of
                    // the section)
                    tmpRange.Find.Wrap = Word.WdFindWrap.wdFindContinue;

                    // Declare an object to pass as a parameter that sets
                    // the Replace parameter to the "wdReplaceAll" enum
                    object replaceAll = Word.WdReplace.wdReplaceAll;

                    // Execute the Find and Replace -- notice that the
                    // 11th parameter is the "replaceAll" enum object
                    tmpRange.Find.Execute(ref missing, ref missing, ref missing,
                        ref missing, ref missing, ref missing, ref missing,
                        ref missing, ref missing, ref missing, ref replaceAll,
                        ref missing, ref missing, ref missing, ref missing);
                }

                // Save the changes
                doc.Save();

                // Close the doc and exit the app
                doc.Close(ref missing, ref missing, ref missing);
                word.Application.Quit(ref missing, ref missing, ref missing);
            }
            catch (Exception ex)
            {
                doc.Close(ref missing, ref missing, ref missing);
                word.Application.Quit(ref missing, ref missing, ref missing);
                System.Diagnostics.Process.Start("D:\\test.docx");
            }

もう1つ:ここに注意してください:Word=Microsoft.Office.Interop.Word;を使用します。

于 2012-05-04T07:26:07.227 に答える
0

私が間違っていなければ、段落の検索と置換を呼び出すことはできませんが、段落のスタイルを変更することはできます

于 2012-05-04T07:31:00.193 に答える