Sub ApplySettings()
' Åñëè íè÷åãî íå âûäåëåíî - âûõîäèì
If Selection.Type = 1 Then Exit Sub
' 1. ÎÁÙÅÅ ÎÔÎÐÌËÅÍÈÅ (Øðèôò, Ðàçìåð, Àáçàö)
With Selection
.Font.Name = "Times New Roman"
.Font.Size = 14
.Font.Italic = False ' Ñíà÷àëà óáèðàåì âåñü êóðñèâ
With .ParagraphFormat
.Alignment = 3 ' Ïî øèðèíå
.LeftIndent = CentimetersToPoints(0)
.RightIndent = CentimetersToPoints(0)
.FirstLineIndent = CentimetersToPoints(1.25)
.SpaceBefore = 0
.SpaceAfter = 0
.LineSpacingRule = 0 ' Îäèíàðíûé
On Error Resume Next
.OutlineLevel = 10
On Error GoTo 0
End With
End With
' Ôóíêöèÿ äëÿ ïîèñêà è çàìåíû âíóòðè âûäåëåíèÿ
' 2. ÇÀÌÅÍÀ ÒÈÐÅ ( — íà – )
Call CustomReplace("—", "–", False)
' 3. ÇÀÌÅÍÀ ÊÀÂÛ×ÅÊ ( "òåêñò" íà «òåêñò» )
' Èñïîëüçóåì @ äëÿ ëþáîãî êîëè÷åñòâà çíàêîâ
Call CustomReplace("""([!""^13]@)""", "«\1»", True)
' 4. ÀÍÃËÈÉÑÊÈÉ ÒÅÊÑÒ ÊÓÐÑÈÂÎÌ
' Èùåì ëþáûå ïîñëåäîâàòåëüíîñòè ëàòèíñêèõ áóêâ (âêëþ÷àÿ dashed)
Dim rng As Range
Set rng = Selection.Range
With rng.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "[a-zA-Z]@" ' Íàõîäèò ëþáîå ñëîâî èç ëàòèíñêèõ áóêâ öåëèêîì
.Replacement.Font.Italic = True
.Replacement.Text = "^&"
.MatchWildcards = True
.Forward = True
.Wrap = wdFindStop
.Execute Replace:=2 ' Çàìåíèòü âñ¸ â âûäåëåíèè
End With
End Sub
' Âñïîìîãàòåëüíàÿ ïîäïðîãðàììà äëÿ ïîèñêà/çàìåíû, ÷òîáû íå äóáëèðîâàòü êîä
Sub CustomReplace(findText As String, replaceText As String, isWildcard As Boolean)
Dim r As Range
Set r = Selection.Range
With r.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = findText
.Replacement.Text = replaceText
.MatchWildcards = isWildcard
.Forward = True
.Wrap = wdFindStop
.Execute Replace:=2
End With
End Sub