Word 2007 で作成したいくつかの単純な .doc ファイルがあり、テキストの色を変更し、ハイライトを使用して同様のテキストを比較しました。私がやりたいのは、緑色のテキストまたは灰色の強調表示のインスタンスをそれぞれ異なる色に変更することです。
VBAでこれを行う簡単な方法があると確信していますが、他の種類の回答も大歓迎です。
編集:私は答えを高く評価していますが、.doc ファイルを .docs として保持できるものが好ましいです。
Word 2007 で作成したいくつかの単純な .doc ファイルがあり、テキストの色を変更し、ハイライトを使用して同様のテキストを比較しました。私がやりたいのは、緑色のテキストまたは灰色の強調表示のインスタンスをそれぞれ異なる色に変更することです。
VBAでこれを行う簡単な方法があると確信していますが、他の種類の回答も大歓迎です。
編集:私は答えを高く評価していますが、.doc ファイルを .docs として保持できるものが好ましいです。
これは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
ファイルはいつでもHTMLとして保存し、そこで色を置き換えることができます。色はで表されます
<span style='color:red'>...
ハイライトは
<span style='background:yellow;mso-highlight:yellow'>...
ドキュメントが十分に単純であれば、操作が簡単である必要があります。
質問の編集に答える編集:完了したら、ファイルを再度開き、ファイルを.docとして保存し直します。
色付きのテキストのセクションを強調表示してから、[ホーム] タブの [テキストの選択] メニュー オプションから [同様の書式のテキストを選択] オプションを選択できると思いました。次に、必要なテキストの色を選択します。これがうまくいくことを願っています。
これはあなたの目的のために働くはずです:
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.'