Макросы в редакторах отличаются от макросов, используемых в программах Microsoft, поскольку в программных продуктах Microsoft используется скриптовый язык Visual Basic для приложений (VBA). Язык JavaScript является более гибким и может использоваться на любой платформе (что важно, поскольку наши редакторы доступны на разных платформах).
Это может быть причиной определённых неудобств в том случае, если до этого вы работали с Microsoft Office с использованием макросов, поскольку они несовместимы с макросами на JavaScript. Однако вы можете сконвертировать ваши старые макросы и использовать их с новыми редакторами.
Это не сложный процесс. Рассмотрим пример:
Sub Example() Dim myRange Dim result Dim Run As Long For Run = 1 To 3 Select Case Run Case 1 result = "=SUM(A1:A100)" Case 2 result = "=SUM(A1:A300)" Case 3 result = "=SUM(A1:A25)" End Select ActiveSheet.range("B" & Run) = result Next Run End Sub
Макрос выше считает сумму значений из трёх диапазонов ячеек столбца A и помещает результат в три ячейки столбца B.
Всё то же самое можно выполнить с помощью макросов JavaScript, код будет выглядеть почти идентично и легко читаем, если вы знаете и Visual Basic для приложений и JavaScript:
(function() { for (let run = 1; run <= 3; run++) { var result = ""; switch (run) { case 1: result = "=SUM(A1:A100)"; break; case 2: result = "=SUM(A1:A300)"; break; case 3: result = "=SUM(A1:A25)"; break; default: break; } Api.GetActiveSheet().GetRange("B" + run).Value = result; } })();
Таким же образом можно сконвертировать любой другой скрипт, написанные на Visual Basic для приложений, в код JavaScript, который будет совместим с нашими редакторами.