
Таблиці й діаграми з Excel, які оновлюються в курсовій самі
Як зв’язати таблиці, діаграми й числа в тексті курсової з файлом Excel, щоб заміна року чи даних оновлювала всю роботу за кілька хвилин.
Перше замовлення зі знижкою −10%Замовити
У курсовій чи дипломній роботі буває від 15 до 40 таблиць, і кожна має відповідати тим самим вимогам методички: шрифт, інтервали, ширина, повторення шапки на новій сторінці. Ручне форматування забирає години й майже завжди залишає розбіжності між таблицями, які помічає нормоконтроль. Макрос Word виконує однаковий набір дій для кожної таблиці без пропусків.
Нижче описано три етапи: запис макросу без програмування, призначення йому кнопки та сполучення клавіш і розширення його дії на всі таблиці документа однією командою.
Вимоги вишів відрізняються в деталях, але перелік параметрів, які перевіряють під час нормоконтролю, майже завжди однаковий. У таблиці 1 наведено типові значення. Перед записом макросу їх слід звірити з методичкою своєї кафедри.
Параметр | Типове значення | Де задається у Word |
|---|---|---|
Шрифт і кегль | Times New Roman, 12 пт (іноді 14 пт) | Основне → Шрифт |
Міжрядковий інтервал | одинарний | Основне → Абзац |
Інтервал перед і після абзацу | 0 пт | Основне → Абзац |
Відступи ліворуч, праворуч і першого рядка | 0 см | Основне → Абзац |
Ширина таблиці | 100 % ширини поля набору | Властивості таблиці → Таблиця |
Розташування | по центру, без обтікання текстом | Властивості таблиці → Таблиця |
Рядок заголовків (шапка) | повторюється на кожній сторінці | Макет → Повторити рядки заголовків |
Найпоширеніша прихована помилка полягає в тому, що таблиця «успадковує» від основного тексту відступ першого рядка 1,25 см і полуторний інтервал. Текст у клітинках зсувається вправо, а рядки стають вищими, ніж потрібно (рис. 1). Вручну це легко пропустити, тому ці параметри обов'язково включають до макросу.

Вирівнювання тексту в клітинках до макросу не включають. У шапці його зазвичай центрують, у текстових стовпцях вирівнюють ліворуч, у числових праворуч або по центру. Одне правило для всіх клітинок зіпсувало б таблиці.
Вкладка «Розробник» (Developer) для запису не потрібна: команди є на вкладці «Вигляд». Вона знадобиться на третьому етапі для редактора VBA. Вмикають її так: «Файл → Параметри → Настроїти стрічку», прапорець «Розробник».
Дії виконують строго в наведеному порядку. Помилкову дію Word теж запише, тому, якщо щось пішло не так, простіше зупинити запис і почати знову з тим самим ім'ям, погодившись замінити макрос.


Тепер, щоб відформатувати таблицю, достатньо поставити курсор у її перший рядок і запустити макрос через «Вигляд → Макроси → Переглянути макроси → Виконати». Для регулярного використання макросу призначають кнопку.

«Файл → Параметри → Настроїти стрічку», унизу біля напису про сполучення клавіш натисніть «Настроїти» (Keyboard shortcuts: Customize). У списку категорій виберіть «Макроси», праворуч виберіть FormatTables, у полі нового сполучення натисніть потрібні клавіші й натисніть «Призначити».
Під полем Word показує, чи вже зайняте це сполучення. Сполучення Alt+Shift+T, наприклад, вставляє поточний час, і його перепризначення вимкне стандартну функцію. Комбінації з Ctrl+Alt+Shift зазвичай вільні.
Записаний макрос відтворює конкретні дії над поточним виділенням (у коді це Selection), тобто над однією таблицею. Повторити дію для кожної таблиці документа запис не вміє: це потребує циклу, який створюють лише в редакторі VBA. Для цього не потрібно вміти програмувати: достатньо вставити готовий текст макросу.
Натисніть Alt+F11. Відкриється редактор Visual Basic, а в модулі NewMacros буде записаний код. Скорочено він має такий вигляд:
Sub FormatTables()
Selection.Rows.HeadingFormat = wdToggle
Selection.Tables(1).Select
Selection.Font.Name = "Times New Roman"
Selection.Font.Size = 12
With Selection.ParagraphFormat
.LeftIndent = CentimetersToPoints(0)
.RightIndent = CentimetersToPoints(0)
.SpaceBefore = 0
.SpaceAfter = 0
.LineSpacingRule = wdLineSpaceSingle
.FirstLineIndent = CentimetersToPoints(0)
' ... ще 10–15 рядків, які Word додає автоматично
End With
Selection.Tables(1).PreferredWidthType = wdPreferredWidthPercent
Selection.Tables(1).PreferredWidth = 100
Selection.Tables(1).Rows.Alignment = wdAlignRowCenter
Selection.Tables(1).Rows.WrapAroundText = False
End SubЗверніть увагу на перший рядок. Команда «Повторити рядки заголовків» записується як перемикач (wdToggle). Якщо запустити макрос двічі для однієї таблиці, повторення шапки вимкнеться. Для покрокової версії достатньо замінити wdToggle на True.
Установіть курсор нижче рядка End Sub і вставте наведений код. Збережіть зміни (Ctrl+S) і закрийте редактор. Призначте макросу FormatAllTables окрему кнопку так само, як на етапі 2.
Sub FormatAllTables()
Dim t As Table
Dim n As Long
Application.UndoRecord.StartCustomRecord "Format all tables"
For Each t In ActiveDocument.Tables
' skip tables on page 1 (title page)
If t.Range.Information(wdActiveEndPageNumber) > 1 Then
With t.Range.Font
.Name = "Times New Roman"
.Size = 12
End With
With t.Range.ParagraphFormat
.LeftIndent = 0
.RightIndent = 0
.FirstLineIndent = 0
.SpaceBefore = 0
.SpaceAfter = 0
.LineSpacingRule = wdLineSpaceSingle
End With
t.PreferredWidthType = wdPreferredWidthPercent
t.PreferredWidth = 100
On Error Resume Next
t.Rows.Alignment = wdAlignRowCenter
t.Rows.WrapAroundText = False
t.Rows(1).HeadingFormat = True
On Error GoTo 0
n = n + 1
End If
Next t
Application.UndoRecord.EndCustomRecord
MsgBox "Formatted tables: " & n
End SubФрагмент | Призначення |
|---|---|
For Each t In ActiveDocument.Tables | Перебирає всі таблиці документа по черзі. |
If t.Range.Information(...) > 1 | Пропускає таблиці на першій сторінці. Титульний аркуш часто зверстаний таблицею без меж, і її форматування зіпсувало б титул. Якщо титул без таблиць, рядки If і відповідний End If можна видалити. |
t.Range.Font, t.Range.ParagraphFormat | Шрифт, кегль, відступи й інтервали всередині таблиці. |
PreferredWidthType, PreferredWidth | Ширина 100 % поля набору. |
t.Rows(1).HeadingFormat = True | Позначає перший рядок як заголовок. На відміну від запису, це не перемикач: повторний запуск нічого не зламає. |
On Error Resume Next … On Error GoTo 0 | Не дає макросу зупинитися на таблицях з вертикально об'єднаними клітинками. Для таких таблиць Word не дозволяє звертатися до окремих рядків (помилка 5991). |
Application.UndoRecord | Об'єднує всі зміни в одну дію: одне натискання Ctrl+Z повністю скасовує роботу макросу. |
MsgBox | Після завершення показує кількість оброблених таблиць. |
Назву шрифту і кегль змініть відповідно до своєї методички. Якщо шапка складається з двох рядків (багаторівневий заголовок), після рядка t.Rows(1).HeadingFormat = True додайте t.Rows(2).HeadingFormat = True.
Текстові значення в коді подано латиницею навмисно. Редактор VBA в системах, де для програм без Юнікоду не встановлено кириличну мову, замінює кириличні символи знаками питання, і повідомлення стає нечитабельним.
Симптом | Причина | Рішення |
|---|---|---|
Макросу немає в іншому документі | Під час запису його збережено в поточному документі, а не в Normal.dotm | Скопіювати через «Переглянути макроси → Організатор» або записати заново з Normal.dotm |
Помилка під час запуску покрокового макросу FormatTables | Курсор стоїть поза таблицею | Поставити курсор у перший рядок таблиці й запустити знову |
Шапка не повторюється | Таблицю розірвано вручну на дві або документ відкрито не в режимі «Розмітка сторінки» | Об'єднати частини таблиці або перевірити повтор у режимі «Розмітка сторінки» |
Таблиця виходить за правий край | Для стовпців задано фіксовану ширину, більшу за поле набору | «Макет → Автопідбір → Автопідбір за шириною вікна», потім запустити макрос повторно |
Кнопка не реагує, з'являється попередження про макроси | Макроси обмежено в параметрах центру безпеки (Trust Center) | Перевірити параметри макросів у «Файл → Параметри → Центр безпеки»; макроси з Normal.dotm зазвичай дозволені |
Записаний макрос форматує одну таблицю, на якій стоїть курсор. Цикл For Each поширює ту саму дію на весь документ, а UndoRecord дозволяє скасувати її одним натисканням. Налаштований один раз, макрос працює в усіх наступних роботах: курсових, дипломній, звітах з практики. Змінюються лише значення шрифту і кеглю під нову методичку.
За тим самим принципом можна оформлювати рисунки: розмір, вирівнювання по центру, розташування «в тексті». У коді для цього використовують колекцію InlineShapes замість Tables.

Як зв’язати таблиці, діаграми й числа в тексті курсової з файлом Excel, щоб заміна року чи даних оновлювала всю роботу за кілька хвилин.

Чому детектори ШІ помиляються, що каже Закон «Про академічну доброчесність» і які докази авторства підготувати, якщо роботу позначили як згенеровану.

Дев’ять правил академічного письма з прикладами «було — стало» на матеріалі курсової: структура, ясні речення, позиція щодо літератури, без кальок і води.
Напишіть нам