5

Word 2007 で作成したいくつかの単純な .doc ファイルがあり、テキストの色を変更し、ハイライトを使用して同様のテキストを比較しました。私がやりたいのは、緑色のテキストまたは灰色の強調表示のインスタンスをそれぞれ異なる色に変更することです。

VBAでこれを行う簡単な方法があると確信していますが、他の種類の回答も大歓迎です。

編集:私は答えを高く評価していますが、.doc ファイルを .docs として保持できるものが好ましいです。

4

4 に答える 4

3

これは2007年のものではありませんが、アイデアは合っているはずです。次の使用例は、現在のハイライトを新しい既定のハイライト (wdBrightGreen) に変更し、緑のテキストを赤に変更します。

Sub ChangeColor
Options.DefaultHighlightColorIndex = wdBrightGreen

    Selection.Find.ClearFormatting
    Selection.Find.Highlight = True
    Selection.Find.Replacement.ClearFormatting
    Selection.Find.Replacement.Highlight = True
    Selection.Find.Execute Replace:=wdReplaceAll

    Selection.Find.ClearFormatting
    Selection.Find.Font.Color = wdColorBrightGreen
    Selection.Find.Replacement.ClearFormatting
    Selection.Find.Replacement.Font.Color = wdColorRed
    With Selection.Find
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub
于 2008-10-23T22:10:51.020 に答える
1

ファイルはいつでもHTMLとして保存し、そこで色を置き換えることができます。色はで表されます

<span style='color:red'>...

ハイライトは

<span style='background:yellow;mso-highlight:yellow'>...

ドキュメントが十分に単純であれば、操作が簡単である必要があります。

質問の編集に答える編集:完了したら、ファイルを再度開き、ファイルを.docとして保存し直します。

于 2008-10-23T15:57:18.887 に答える
1

色付きのテキストのセクションを強調表示してから、[ホーム] タブの [テキストの選択] メニュー オプションから [同様の書式のテキストを選択] オプションを選択できると思いました。次に、必要なテキストの色を選択します。これがうまくいくことを願っています。

于 2012-02-15T01:19:51.663 に答える
0

これはあなたの目的のために働くはずです:

Sub RehiliteAll()

    Const YOUR_REQUIRED_COLOR_IDX As Integer = 6 'RED'
    Dim doc As Range
    Set doc = ActiveDocument.Range

    With doc.Find
        .ClearFormatting 'resets default search options'
        .Highlight = True
        .Wrap = wdFindStop

        While .Execute

            If doc.HighlightColorIndex = YOUR_REQUIRED_COLOR_IDX Then
                doc.Select
                MsgBox doc.HighlightColorIndex
                'Do stuff here'
            End If

            'doc has been reassigned to the matching'
            'range; we do this so word keeps searching'
            'forward'
            doc.Collapse wdCollapseEnd
        Wend
    End With

    Set doc = Nothing
End Sub

'I am closing comment quotes so that SO formatting'
'does not get messed up too much.'
于 2009-02-27T16:20:41.733 に答える