Теория урока
Одна и та же задача — выделить жирным заголовок и записать сумму — на двух языках:
' VBA
Sub Итог()
With Worksheets("Лист1")
.Range("A1:D1").Font.Bold = True
.Range("D8").Formula = "=SUM(D2:D7)"
End With
End Sub// Office Scripts
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getWorksheet("Лист1");
sheet.getRange("A1:D1").getFormat().getFont().setBold(true);
sheet.getRange("D8").setFormula("=SUM(D2:D7)");
}| VBA | Office Scripts | |
|---|---|---|
| Язык | Visual Basic, свойства: .Value = | TypeScript, методы: getValue() / setValue() |
| Где работает | Настольный Excel (Windows, Mac) | Excel для Интернета и настольный Excel с Microsoft 365 |
| Где хранится | Внутри книги .xlsm | Файл .osts в OneDrive, книга остаётся .xlsx |
| Автозапуск | События: Workbook_Open, Worksheet_Change | Нет событий книги; расписание и триггеры — через Power Automate |
| Интерфейс | UserForm, MsgBox, InputBox | Нет форм и диалогов; ввод — параметрами или через таблицу |
| Доступ наружу | Файлы компьютера, другие приложения Office | Только книга; остальное — действиями Power Automate |
| Индексы | Cells(1, 1) — с единицы | getCell(0, 0), массивы — с нуля |
Как выбрать. Нужны формы, работа с файлами на диске или старые макросы компании — VBA. Книга живёт в облаке, с ней работают в браузере, нужен запуск по расписанию и связь с почтой, Teams, SharePoint — Office Scripts с Power Automate. Автоматического конвертера из VBA в Office Scripts нет: логику переписывают вручную, и это хороший повод её упростить.
Тренажёр не выполняет макросы и скрипты. Код из урока запускайте в настольном Excel (VBA) или в Excel для Интернета (Office Scripts). Здесь вы учитесь читать код и проверяете себя формулами и тестом.
Проверьте себя
Enter — ввести · F2 — изменить · F4 — $ в ссылке · Ctrl+C/Ctrl+V — копировать · Ctrl+Z — отменить
Esc или F6 — выйти из таблицы к кнопке «Проверить» · Shift+Tab в первой ячейке — к началу страницы