0

わかりました、私の主な目的は、各単語を調べて、単語に下線が引かれているかどうかを確認することです。そうであれば、フォントサイズを int x に変更したいと思います。

編集:更新されたコードのように、各文字を単純に調べてみました

   private void button1_Click(object sender, EventArgs e)
    {
        word.Application page = new word.Application();
        page.Visible = true;
        word.Document doc = null;
        foreach (string fi in listBox1.Items)
        {
            doc = page.Documents.Open(Application.StartupPath + "\\old\\" + fi);
            if (doc != null)
            {
                int start = 0;
                foreach (string text in doc.Range().Text.Split(" \r\n\t.".ToCharArray()))
                {
                    int x = doc.Range().Text.IndexOf(text, start);
                    if (doc.Range(x, text.Length - 1).Underline == word.WdUnderline.wdUnderlineSingle)
                        doc.Range(x, text.Length - 1).Font = new word.Font() { Name = "Times New Roman", Bold = 4, Size = 12 };
                    else
                        doc.Range(x, text.Length - 1).Font = new word.Font() { Name = "Times New Roman", Size = 8 };
                    start = x+text.Length;
                }
            }
        }
        //doc.Save();
        // doc.Close();
        // page.Quit();
    }

しかし、私はこのエラーが発生します

呼び出しは呼び出し先によって拒否されました。(HRESULT からの例外: 0x80010001 (RPC_E_CALL_REJECTED))

なぜそれがそれを与えるのか私にはわかりません

4

2 に答える 2

0

ここに私の解決策があります

             doc = page.Documents.Open(Application.StartupPath + "\\old\\" + fi);
            if (doc != null)
            {
                for (int x = 1; x <= doc.Words.Count - 1; x++)
                {
                        if (doc.Words[x].Underline != word.WdUnderline.wdUnderlineNone && doc.Words[x].Underline != word.WdUnderline.wdUnderlineDouble)
                            doc.Words[x].Font = new word.Font() { Name = "Times New Roman", Bold = 4, Size = 12 };
                        else
                            doc.Words[x].Font = new word.Font() { Name = "Times New Roman", Size = 8 };
                }

それは美しく機能しますが、唯一の問題は、ポップアップがコードの続行を妨げることです

于 2013-08-24T17:32:59.460 に答える