Список сокращений в MS Word (макрос)
Оригинальное решение представлено по ссылке.
Позволяет собрать перечень сокращений в конце документа.
По факту собирает любые слова капсом на русском и английском в алфавитном порядке. Стоит иметь ввиду, что если сокращение из двух или нескольких частей, то макрос включит их в перечень по отдельности.
Предварительные настройки
В MS Word должна быт включена функция "Разработчика. Для этого:
- нажать на панели инструментов "Файл" ( рисунок 1 );
- выбрать в меню "Параметры" ( рисунок 2 );
- Выбрать раздел "Настроить ленту" и установить чек-бокс "Разработчик" ( рисунок 3 );
- Перейти во вкладку "Разработчик" ( рисунок 4 ).
настроить согласно инструкции доверенный доступ к объектной модели проектов VBA .
Для этого во вкладке разработчик выбрать пункт "Безопасность макросов" и установить чек-бокс "Доверять доступ к объектной модели проектов VBA" ( рисунок 5 ).
Нажать "ОК" и вернуться в основное окно.
Создание макроса
Для создания макроса выполнить следующее:
- во вкладке "Разработчик" нажать кнопку "Макросы" ( рисунок 4 );
- в открывшемся окне ввести имя макроса и нажать Создать ( рисунок 6 );
- В открывшемся окне редактора VBA вставить код в тело макроса ( рисунок 7 ) , приведенный ниже;
- Вставить следующий код, убедившись, что установлена русская раскладка.
Dim r As Range, x, cl As New Collection, s$
Set r = ActiveDocument.Range
On Error Resume Next
With r.Find
.Text = "<[А-ЯЁ;A-Z]{2;5}>"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchWildcards = True
While .Execute
s = r.Text
For x = 1 To cl.Count
If s < cl(x) Then cl.Add s, s, Before:=x: GoTo 1
Next
cl.Add s, s
1 Wend
End With
With ActiveDocument.Range
.InsertParagraphAfter
For Each x In cl
.InsertAfter vbCr & x
Next
End With