Найти в Дзене
CADCOD

Редактор шрифтов VBA: автоматизация изменения шрифта в Word (во всем документе включая колонтитулы)

В этой статье я расскажу, как создать простую программу на VBA для автоматического изменения шрифтов, размеров текста и стиля (курсива) в документе Word. Этот инструмент можно использовать для обработки основного текста, колонтитулов и текстовых объектов. После выполнения инструкции вы получите программу с удобным окном (UserForm), где можно: UserForm — это окно для взаимодействия с пользователем. Для создания интерфейса: Ниже представлен полный код с комментариями. Этот код загружает доступные шрифты и размеры текста в выпадающие списки. Private Sub UserForm_Activate() ' Загружаем все доступные шрифты в ComboBox1 Dim i As Integer, k As Integer k = Application.FontNames.Count For i = 1 To k ComboBox1.AddItem Application.FontNames(i) Next i ComboBox1.Value = ComboBox1.List(1) ' Устанавливаем первый шрифт по умолчанию ' Добавляем размеры текста в ComboBox2 и ComboBox3 ComboBox2.AddItem "Без изменения" ComboBox3.AddItem "Без изменения" Dim fontSize As Integer For fontSize = 7 To 16 ComboB
Оглавление
Вид  формы программы
Вид формы программы

В этой статье я расскажу, как создать простую программу на VBA для автоматического изменения шрифтов, размеров текста и стиля (курсива) в документе Word. Этот инструмент можно использовать для обработки основного текста, колонтитулов и текстовых объектов.

Что вы получите в итоге?

После выполнения инструкции вы получите программу с удобным окном (UserForm), где можно:

  • Выбрать шрифт и размер текста.
  • Настроить стиль (например, включить курсив).
  • Применить изменения ко всему документу или отдельным его частям.

Шаг 1: Настройка UserForm

UserForm — это окно для взаимодействия с пользователем. Для создания интерфейса:

  1. Откройте Word и нажмите Alt + F11, чтобы открыть редактор VBA.
  2. В меню выберите Insert → UserForm.
  3. Разместите на форме следующие элементы: CheckBox — флажок для включения/выключения курсива. 3 ComboBox — выпадающие списки для выбора шрифта и размера текста (основного текста и колонтитулов). 2 кнопки: "Применить" для выполнения изменений. "Выход" для закрытия программы.

Шаг 2: Написание кода

Ниже представлен полный код с комментариями.

Код загрузки формы

Этот код загружает доступные шрифты и размеры текста в выпадающие списки.

Private Sub UserForm_Activate()
' Загружаем все доступные шрифты в ComboBox1
Dim i As Integer, k As Integer
k = Application.FontNames.Count
For i = 1 To k
ComboBox1.AddItem Application.FontNames(i)
Next i
ComboBox1.Value = ComboBox1.List(1) ' Устанавливаем первый шрифт по умолчанию
' Добавляем размеры текста в ComboBox2 и ComboBox3
ComboBox2.AddItem "Без изменения"
ComboBox3.AddItem "Без изменения"
Dim fontSize As Integer
For fontSize = 7 To 16
ComboBox2.AddItem fontSize
ComboBox3.AddItem fontSize
Next fontSize
ComboBox2.Value = "Без изменения"
ComboBox3.Value = "Без изменения"
End Sub

Код кнопки "Применить"

Private Sub CommandButton1_Click()
On Error GoTo ErrorHandler ' Установка обработчика ошибок
' Определяем, включён ли курсив
Dim isItalic As Boolean
isItalic = UserForm1.CheckBox1.Value
' Устанавливаем шрифт и стиль в основном документе
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Selection.WholeStory
Selection.Font.Name = ComboBox1.Value
Selection.Font.Italic = isItalic
If ComboBox2.Value <> "Без изменения" Then
Selection.Font.Size = ComboBox2.Value
End If
' Работаем с колонтитулами
Dim footerShapes As Object
Set footerShapes = ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Shapes
For Each shape In footerShapes
If shape.Type = msoTextBox Then ' Проверяем, является ли объект текстовым полем
shape.TextFrame.TextRange.Font.Name = ComboBox1.Value
shape.TextFrame.TextRange.Font.Italic = isItalic
If ComboBox3.Value <> "Без изменения" Then
shape.TextFrame.TextRange.Font.Size = ComboBox3.Value
End If
End If
Next shape
MsgBox "Изменения успешно применены!", vbInformation
Exit Sub
ErrorHandler:
MsgBox "Произошла ошибка! Проверьте вводимые данные.", vbCritical
End Sub

Код кнопки "Выход"

Закрывает форму.

Private Sub CommandButton2_Click() Unload Me ' Закрываем форму End Sub

Шаг 3: Привязка UserForm к макросу

Для запуска формы создайте макрос:

  1. В редакторе VBA выберите Insert → Module.
  2. Вставьте следующий код:
Sub ShowFontChanger() UserForm1.Show End Sub
  1. Назначьте этот макрос кнопке или сочетанию клавиш в Word.

Результат

После выполнения всех шагов вы получите готовый инструмент, который выглядит так:

Вид программы с выпадающим меню выбора шрифта
Вид программы с выпадающим меню выбора шрифта

Преимущества использования

  • Экономия времени при обработке документов.
  • Возможность массового изменения текста.
  • Удобство и простота использования.

Попробуйте создать такой инструмент и упростите работу с текстами!