FormulaCamp
Пройдено
14. Office Scripts и Power Automate · Сравнение · 15 мин

6. Office Scripts и VBA: что выбрать

Урок 6 из 6
    Теория урока

    Одна и та же задача — выделить жирным заголовок и записать сумму — на двух языках:

    ' 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)");
    }
    VBAOffice 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). Здесь вы учитесь читать код и проверяете себя формулами и тестом.

    Проверьте себя

    1. Команда работает с отчётом только в Excel для Интернета и хочет отправлять его по почте каждую пятницу. Что выбрать?
    2. Как на Office Scripts записать VBA-строку Range("B2").Value = 100 (sheet — нужный лист)?
    3. Нужна форма с полями и кнопкой «Сохранить», которая открывается на компьютере бухгалтера. Что подойдёт?
    4. VBA-код Cells(1, 1) обращается к A1. Какая запись в Office Scripts указывает на ту же ячейку?
    5. Нужно, чтобы при каждом изменении ячейки в книге сразу ставилась отметка времени, и всё это внутри файла. Что это даёт?
    6. Где хранится Office Script?