Krótki opis problemu

Potrzebujemy zmienić kolor tylko wybranych słów/fraz w zaznaczonych komórkach Excela. Sam Excel sobie z tym nie poradzi dlatego musimy napisać odpowiedni kod VBA.

VBA 19 - Jak zmienić kolor słowa w zaznaczonych komórkach (Walentynki) 01

Kod

Sub ZmieńKolor()

Dim MojeSłowo As String, Długość As Integer, i As Integer
Dim r As Range, SF As Integer
'Jakie słowo frazę chcesz zmienić
MojeSłowo = InputBox("Podaj słowo jakie chcesz pomalować na czerwono")
'Długość słowa/frazy, którą chcesz zmienić
Długość = Len(MojeSłowo)
'Pętla po wszystkich komórkach ® w zaznaczonym obszarze (Selection)
For Each r In Selection

'Pętla po znakach w aktualnej komórce
For i = 1 To Len(r.Value)

'Ponieważ może nie znaleźć słowa w komórce potrzebujemy obsługiwać
'błąd wystarczy, że każemy VBA przejść dalej
On Error Resume Next
SF = 0
'rozróżnia wielkość liter
SF = WorksheetFunction.Find(MojeSłowo, r.Value, i)
'Nie zwraca uwagi na małe wielkie
'SF = WorksheetFunction.Find(UCase(MojeSłowo), UCase(r.Value), i)
'Wracamy do normalnej obsługi błędu
On Error GoTo 0
'Jeśli zmienna SF większa od zera to znaczy, że tekst został
'odnaleziony, czyli zmieniamy kolor części tekstu
If SF > 0 Then
r.Characters(Start:=SF, Length:=Długość).Font.Color = RGB(255, 0, 0)
i = SF + 1
'jeśli nie to kończymy pętlę i przechodzimy do sprawdzania następnej komórki
Else
Exit For
End If

Next i

Next r

End Sub

Pozdrawiam
Adam Kopeć
Miłośnik Excela