Полезные примеры макросов

Примеры на этой странице продемонстрируют использование макросов и дадут возможность сравнить макросы, написанные на JavaScript, с макросами, написанными на Microsoft Visual Basic для приложений, чтобы вы могли увидеть разницу и понять, как можно сконвертировать уже имеющиеся макросы.

Запись данных в ячейку таблицы

В этом примере мы запишем данные (фразу "Hello world") в ячейку, находящуюся в четвёртом столбце третьего ряда

(function()
{
    Api.GetActiveSheet().GetRange("C4").SetValue("Hello world");
})();

Соответствующий код макроса Microsoft VBA

Sub example()
    Cells(3, 4)="Hello world"
End Sub

Изменение цветов шрифта и фона ячейки, выделение шрифта жирным

В этом примере мы установим жирный шрифт, изменим его цвет и цвет фона ячейки

(function()
{
    Api.GetActiveSheet().GetRange("A2").SetBold(true);
    Api.GetActiveSheet().GetRange("B4").SetFontColor(Api.CreateColorFromRGB(255, 0, 0));
    Api.GetActiveSheet().GetRange("B3").SetFillColor(Api.CreateColorFromRGB(0, 0, 250));
})();

Соответствующий код макроса Microsoft VBA

Sub example()
    Range("B4").Font.Color = RGB(255, 0, 0)
    Range("B4").Font.Bold = True
    Range("B3").Interior.Color = RGB(0, 0, 250)
End Sub

Объединение и отмена объединения ячеек выбранного диапазона

В этом примере мы объединим ячейки одного диапазона и отменим объединение ячеек другого диапазона

(function()
{
    Api.GetActiveSheet().GetRange("A1:B3").Merge(true);
    Api.GetActiveSheet().GetRange("C5:D10").UnMerge();
})();

Соответствующий код макроса Microsoft VBA

Sub example()
    Range("A1:B3").Merge
    Range("C5:D10").UnMerge
End Sub

Установка ширины столбца

В этом примере мы установим ширину второго столбца ("B")

(function()
{
    Api.GetActiveSheet().SetColumnWidth(1, 25);
})();

Соответствующий код макроса Microsoft VBA

Sub example()
    Columns("B").ColumnWidth = 25
End Sub

Форматирование диапазона как таблицы

В этом примере мы отформатируем диапазон ячеек в таблицу

(function()
{
    Api.GetActiveSheet().FormatAsTable("A1:D10");
})();

Соответствующий код макроса Microsoft VBA

Sub example()
    Sheet1.ListObjects.Add(xlSrcRange, Range("A1:D10"), , xlYes).Name = "myTable1"
End Sub

Добавление новой диаграммы для выбранного диапазона ячеек

В этом примере мы создадим диаграмму для данных из диапазона ячеек "C5:D7"

(function()
{
    Api.GetActiveSheet().AddChart("'Sheet1'!$C$5:$D$7", true, "bar", 2, 105 * 36000, 105 * 36000, 5, 2 * 36000, 1, 3 * 36000);
})();

Соответствующий код макроса Microsoft VBA

Sub example()
    With ActiveSheet.ChartObjects.Add(Left:=300, Width:=300, Top:=10, Height:=300)
        .Chart.SetSourceData Source:=Sheets("Sheet1").Range("C5:D7")
    End With
End Sub