• Post category:Макросы
  • Запись изменена:06.10.2024

Макросы в редакторах отличаются от макросов, используемых в программах 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, который будет совместим с нашими редакторами.