glencoe,
Yes using wildcards does present its problems. This doesn't look as clean, but you can avoid them if you want:
Sub ScratchMacro2()
'A basic Word macro coded by Greg Maxey
Dim oSection As Section
Dim oHF As HeaderFooter
Dim oRng As Range, oTextRng As Range
Dim oRng2 As Range
Dim strOTag As String, strCTag As String
strOTag = "##"
strCTag = "**"
For Each oSection In ActiveDocument.Sections
For Each oHF In oSection.Headers
With oHF
If .LinkToPrevious = False Or oSection.Index = 1 Then
Set oRng = oHF.Range
With oRng.Find
.Text = strOTag
While .Execute
Set oRng2 = oHF.Range
oRng2.Start = oRng.End
With oRng2.Find
.Text = strCTag
If .Execute Then
Set oTextRng = oRng.Duplicate
oTextRng.Collapse wdCollapseEnd
oTextRng.End = oRng2.Start
oRng.Delete
oRng2.Delete
If Not InStr(oTextRng.Text, strOTag) > 0 Then
oTextRng.HighlightColorIndex = wdBrightGreen
Else
oTextRng.HighlightColorIndex = wdRed
End If
End If
End With
Wend
End With
End If
End With
Next oHF
Next oSection
End Sub