Sub FindAbbreviations()
Dim docSource As Document
Dim docResult As Document
Dim rng As Range
Dim dictAbbreviations As Object
Dim abbreviation As Variant
' Инициализация словаря для уникальных сокращений
Set dictAbbreviations = CreateObject("Scripting.Dictionary")
' Устанавливаем текущий документ как источник
Set docSource = ActiveDocument
Set rng = docSource.Content
' Настройка поиска
With rng.Find
.ClearFormatting
.Text = "<[A-Z]{2;5}>" ' Исправленный шаблон: 2–5 заглавных латинских букв
.MatchWildcards = True
.Forward = True
.Wrap = wdFindStop
End With
' Поиск всех сокращений
Do While rng.Find.Execute
If Not dictAbbreviations.Exists(rng.Text) Then
dictAbbreviations.Add rng.Text, 1
End If
rng.Collapse wdCollapseEnd
Loop
' Создаём новый документ для результатов
Set docResult = Documents.Add
docResult.Content.Text = "Список сокращ