Try this.
Code:Option Explicit Private Sub HighlightText(sKeyword As String, iColour As Long) Dim nStart As Integer, sPrevChar As String, sNextChar As String nStart = InStr(1, LCase(RichTextBox1.Text), sKeyword) Do While nStart <> 0 If nStart > 1 Then sPrevChar = Mid$(RichTextBox1.Text, nStart - 1, 1) Else sPrevChar = " " End If If Len(RichTextBox1.Text) >= nStart + Len(sKeyword) Then sNextChar = Mid$(RichTextBox1.Text, nStart + Len(sKeyword), 1) Else sNextChar = " " End If If (sPrevChar = Chr(32) Or sPrevChar = Chr(13) Or _ sPrevChar = Chr(10) Or sPrevChar = Chr(9)) And _ (sNextChar = Chr(32) Or sNextChar = Chr(13) Or _ sNextChar = Chr(10) Or sNextChar = Chr(9)) Then With RichTextBox1 .SelStart = nStart - 1 .SelLength = Len(sKeyword) .SelColor = iColour .SelText = UCase(sKeyword) .SelStart = Len(RichTextBox1.Text) .SelColor = vbBlack End With End If nStart = InStr(nStart + Len(sKeyword), LCase(RichTextBox1.Text), sKeyword) Loop End Sub Private Sub RichTextBox1_Change() With RichTextBox1 .SelStart = 0 .SelLength = Len(.Text) .SelColor = vbBlack .SelStart = Len(.Text) End With ' Add more custom words here HighlightText "blue", vbBlue HighlightText "yellow", vbYellow HighlightText "red", vbRed HighlightText "magenta", vbMagenta HighlightText "green", vbGreen End Sub




Reply With Quote