Сначала создать функцию для замены всего, что вам вздумается
Sub Заменить_все(ByVal что As String, ByVal чем As String)
'очистить форматы поиска
Application.Selection.Find.ClearFormatting
Application.Selection.Find.Replacement.ClearFormatting
'настройки
With Application.Selection.Find
.Text = что
.Replacement.Text = чем
.Forward = True
.Wrap = WdFindWrap.wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
'выполнить
Application.Selection.Find.Execute Replace:=WdReplace.wdReplaceAll
End Sub
Теперь можете использовтаь её в макросе, передав в качестве аргументов нужные знаки
Sub Макрос1()
'удалить пробелы до тире
Замена_с_подстановочными_знаками " " & Chr(45), Chr(45)
Замена_с_подстановочными_знаками " " & Chr(150), Chr(150)
Замена_с_подстановочными_знаками " " & Chr(151), Chr(151)
'удалить пробелы после тире
Замена_с_подстановочными_знаками Chr(45) & " ", Chr(45)
Замена_с_подстановочными_знаками Chr(150) & " ", Chr(150)
Замена_с_подстановочными_знаками Chr(151) & " ", Chr(151)
End Sub