0

私はMSWordのテキスト形式の問題に直面しており、MS Wordも使用している正規表現オタクがいるのではないかと考えています(おそらく、私は知っています...)

XMLマークアップを使用して、Wordで斜体で表示される文をラップしようとしています。

イタリック体のテキスト

になります

<i>Text in italics</i>

私は個々の単語のためにそれをすることができます、例えば

<i>Text</i> <i>in</i> <i>italics</i>

しかし、個々の単語だけでなく、イタリック体のテキストのグループの最初と最後を見つける方法を見つけるのに苦労しています。

私がこれまでに持っている唯一の解決策は、MS WordドキュメントをwMLとしてエクスポートし、次のことを行うことです。

<w:r w:rsidRPr="00FE6181">
                        <w:t>&lt;hi&gt;</w:t>
                    </w:r>
                    <w:r w:rsidR="00D555A7" w:rsidRPr="00D77C71">
                        <w:rPr>
                            <w:i/>
                        </w:rPr>
                        <w:t xml:space="preserve">Text in italics</w:t>
                    </w:r>
                    <w:r w:rsidRPr="00FE6181">
                        <w:t>&lt;</w:t>
                    </w:r>

次に、Wordでドキュメントを再度開きます。技術者以外のユーザーへのソリューションとして展開するのは少し複雑です。

これはRegExps(またはおそらくVBScript)を使用して可能になるはずです。私はそこに到達する方法がわかりません。

助けていただければ幸いです

ありがとう

4

1 に答える 1

1

FINDオブジェクトを使用して、VBAマクロでそのようなことを実行できるはずです。

すなわち

set find = WordApp.ActiveDocument.Contents.Range.Find

検索するテキストを*として指定します

次に、フォーマットを斜体で指定します。イタリックでフォーマットされたすべてのテキストが検索されます。

しかし...これが摩擦です。ユーザーがフレーズをイタリックでフォーマットした場合、フレーズ全体をフォーマットしたか、各単語を個別にフォーマットした可能性があるため、1つのフレーズを「見つける」ことができますが、3を見つける可能性があります。それぞれフォーマットされたイタリック体の別々の単語。

+その+問題を回避することは非常に難しいでしょう。

于 2011-06-20T20:19:53.263 に答える