Tienes varias maneras:
Sin que tengas que cambiar nada del programa que usas como ejemplo, es meter las palabras en un array y luego comparar y obtener el índice:
Dim Index as Integer
Dim tmpText(1 To 4) As String
tmpText(1) = Text1.Text
tmpText(2) = Text2.Text
tmpText(3) = Text3.Text
tmpText(4) = Text4.Text
For Index = 1 To 3
If tmpText(4) = tmpText(Index) Then
MsgBox ("Texto: " & Index & " está repetido" _
& vbCrLf & "Palabra: " & tmpText(Index))
End If
Next Index
Otra forma es crear una
Matriz de controles, que consiste en crear un control y llamarlo
txtPalabra, por ejemplo y en
Propiedades del control establecer en la propiedad
Index, el valor 0, después copia el control en el formulario y pega de nuevo, automáticamente se crea otro control idéntico con el
Index=1, si copias y pegas otro tendrá
Index=2....
También puedes copiar y pegar directamente y VB te preguntará si deseas crear una matriz de controles le dices que sí y listo, cada vez que lo copies y pegues se irá añadiendo un índice.
Luego para comparar haces lo siguiente:
Dim Index as Integer
For Index = 0 To 2
If txtPalabra(3).Text = txtPalabra(Index).Text Then
MsgBox ("Texto: " & Index & " está repetido" _
& vbCrLf & "Palabra: " & txtPalabra(Index))
End If
Next Index
El primer control de texto en este caso tiene el Indice = 0
txtPalabra(0)
txtPalabra(1)
txtPalabra(2)
txtPalabra(3)
txtPalabra(3) sería el cuarto.