Skip to content

Instantly share code, notes, and snippets.

@bekbolsky
Created November 6, 2020 09:14
Show Gist options
  • Save bekbolsky/afbbfc8f0dbed4967db3965df38dc457 to your computer and use it in GitHub Desktop.
Save bekbolsky/afbbfc8f0dbed4967db3965df38dc457 to your computer and use it in GitHub Desktop.
Макрос удаления лишних пробелов\вставка пробела в документе docx
Sub ЛишниеПробелы()
' DelSpace Макрос
'
'УДАЛЯЕМ пробел ПЕРЕД знаками пунктуации, ), % и концом абзаца
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = " {1;}([.,:;\!\?\%)\^0013])"
.Replacement.Text = "\1"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.MoveLeft Unit:=wdCharacter, Count:=1
'
'УДАЛЯЕМ пробел ПОСЛЕ "(" и в начале абзаца (кроме первого)
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "([\(^0013])^0032"
.Replacement.Text = "\1"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.MoveLeft Unit:=wdCharacter, Count:=1
'
'ВСТАВЛЯЕМ пробел ПОСЛЕ знаков пунктуации, % и ), если после них нет пробела, цифры или конца абзаца
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "([.,:;\%])([!^0032^00130123456789])"
.Replacement.Text = "\1^0032\2"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.MoveLeft Unit:=wdCharacter, Count:=1
'
'ВСТАВЛЯЕМ пробел ПЕРЕД "(", если это не начало абзаца
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "([!^0032^0013])\("
.Replacement.Text = "\1 ("
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.MoveLeft Unit:=wdCharacter, Count:=1 '
End Sub
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment