Roberto,
I poked you in the eye because this is not a code writing service. We are here to help YOU learn to write code. Not to write it for you. The concept is to teach you how to fish so you eat for a lifetime rather than give you a fish so you can eat today. However, this is your first post here and perhaps that was a bit harsh.
This is the sort of thing that you can do using arrays where you define what the "terms" are and what the associated acronyms are. With counters (to see if the term appears more than once) and with find and replace routines. Here is a fish.
Sub ScratchMacro()
'A basic Word macro coded by Greg Maxey
Dim oRng As Range
Dim arrTerms() As String
Dim arrAcr() As String
Dim lngIndex As Long, lngCount As Long
arrTerms = Split("alcohol,substance abuse disorders", ",")
arrAcr = Split("AD,SAD", ",")
For lngIndex = 0 To UBound(arrTerms)
Set oRng = ActiveDocument.Range
lngCount = 0
With oRng.Find
.Text = arrTerms(lngIndex)
.MatchCase = False
Do While .Execute
lngCount = lngCount + 1
If lngCount > 1 Then Exit Do
Loop
If lngCount > 1 Then
lngCount = 1
Set oRng = ActiveDocument.Range
With oRng.Find
.Text = arrTerms(lngIndex)
.MatchCase = False
Do While .Execute
If lngCount = 1 Then
oRng.InsertAfter " (" & arrAcr(lngIndex) & ")"
lngCount = lngCount + 1
Else
oRng.Text = "(" & arrAcr(lngIndex) & ")"
End If
oRng.Collapse wdCollapseEnd
Loop
End With
End If
End With
Next lngIndex
lbl_Exit:
Exit Sub
End Sub
Text.jpg