Конвертация макросов MS VBA
Макросы Р7 отличаются от макросов Microsoft, поскольку последние используют язык скрипта Visual Basic для приложений (VBA). JavaScript более гибкий и может использоваться с любой платформой (что важно, поскольку редакторы Р7 поддерживаются на платформах Windows, Linux и Mac OS).
Это может быть причиной некоторых неудобств, если вы ранее использовали Microsoft Office с макросами, так как они станут несовместимы с макросами Р7. Вы можете преобразовать ранее использовавшиеся макросы, чтобы использовать их с новыми редакторами.
Процесс не слишком сложный. Давайте посмотрим на следующий пример:
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.
Того же самого можно добиться с помощью макросов Р7, код будет практически идентичен и прост для понимания, если вы знаете как 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, совместимый с макросами Р7.