Скрипты в экселе: как создать макросы в редакторе, запуск и редактирование, способы корректировки кнопок запуска команд, варианты оформления документа для продаж

Содержание

Автоматизация рутины в Microsoft Excel при помощи VBA / Хабр

Приветствую всех.

В этом посте я расскажу, что такое VBA и как с ним работать в Microsoft Excel 2007/2010 (для более старых версий изменяется лишь интерфейс — код, скорее всего, будет таким же) для автоматизации различной рутины.


VBA (Visual Basic for Applications) — это упрощенная версия Visual Basic, встроенная в множество продуктов линейки Microsoft Office. Она позволяет писать программы прямо в файле конкретного документа. Вам не требуется устанавливать различные IDE — всё, включая отладчик, уже есть в Excel.

Еще при помощи Visual Studio Tools for Office можно писать макросы на C# и также встраивать их. Спасибо, FireStorm.

Сразу скажу — писать на других языках (C++/Delphi/PHP) также возможно, но требуется научится читать, изменять и писать файлы офиса — встраивать в документы не получится. А интерфейсы Microsoft работают через COM. Чтобы вы поняли весь ужас, вот Hello World с использованием COM.

Поэтому, увы, будем учить Visual Basic.

Итак, поехали. Открываем Excel.

Для начала давайте добавим в Ribbon панель «Разработчик». В ней находятся кнопки, текстовые поля и пр. элементы для конструирования форм.

Появилась вкладка.

Теперь давайте подумаем, на каком примере мы будем изучать VBA. Недавно мне потребовалось красиво оформить прайс-лист, выглядевший, как таблица. Идём в гугл, набираем «прайс-лист» и качаем любой, который оформлен примерно так (не сочтите за рекламу, пожалуйста):

То есть требуется, чтобы было как минимум две группы, по которым можно объединить товары (в нашем случае это будут Тип и Производитель — в таком порядке). Для того, чтобы предложенный мною алгоритм работал корректно, отсортируйте товары так, чтобы товары из одной группы стояли подряд (сначала по Типу, потом по Производителю).

Результат, которого хотим добиться, выглядит примерно так:

Разумеется, если смотреть прайс только на компьютере, то можно добавить фильтры и будет гораздо удобнее искать нужный товар. Однако мы хотим научится кодить и задача вполне подходящая, не так ли?

Для начала требуется создать кнопку, при нажатии на которую будет вызываться наша програма. Кнопки находятся в панели «Разработчик» и появляются по кнопке «Вставить». Вам нужен компонент формы «Кнопка». Нажали, поставили на любое место в листе. Далее, если не появилось окно назначения макроса, надо нажать правой кнопкой и выбрать пункт «Назначить макрос». Назовём его FormatPrice. Важно, чтобы перед именем макроса ничего не было — иначе он создастся в отдельном модуле, а не в пространстве имен книги. В этому случае вам будет недоступно быстрое обращение к выделенному листу. Нажимаем кнопку «Новый».

И вот мы в среде разработки VB. Также её можно вызвать из контекстного меню командой «Исходный текст»/«View code».

Перед вами окно с заглушкой процедуры. Можете его развернуть. Код должен выглядеть примерно так:

Sub FormatPrice()

End Sub

Напишем Hello World:

Sub FormatPrice()
    MsgBox "Hello World!"
End Sub

И запустим либо щелкнув по кнопке (предварительно сняв с неё выделение), либо клавишей F5 прямо из редактора.

Тут, пожалуй, следует отвлечься на небольшой ликбез по поводу синтаксиса VB. Кто его знает — может смело пропустить этот раздел до конца. Основное отличие Visual Basic от Pascal/C/Java в том, что команды разделяются не ;, а переносом строки или двоеточием (:), если очень хочется написать несколько команд в одну строку. Чтобы понять основные правила синтаксиса, приведу абстрактный код.

Примеры синтаксиса

' Процедура. Ничего не возвращает
' Перегрузка в VBA отсутствует
Sub foo(a As String, b As String)
    ' Exit Sub ' Это значит "выйти из процедуры"
    MsgBox a + ";" + b
End Sub

' Функция. Вовращает Integer
Function LengthSqr(x As Integer, y As Integer) As Integer
    ' Exit Function
    LengthSqr = x * x + y * y
End Function

Sub FormatPrice()
    Dim s1 As String, s2 As String
    s1 = "str1"
    s2 = "str2"
    If s1 <> s2 Then
        foo "123", "456" ' Скобки при вызове процедур запрещены
    End If

    Dim res As sTRING ' Регистр в VB не важен. Впрочем, редактор Вас поправит
    Dim i As Integer
    ' Цикл всегда состоит из нескольких строк
    For i = 1 To 10
        res = res + CStr(i) ' Конвертация чего угодно в String
        If i = 5 Then Exit For
    Next i

    Dim x As Double
    x = Val("1.234") ' Парсинг чисел
    x = x + 10
    MsgBox x

    On Error Resume Next ' Обработка ошибок - игнорировать все ошибки

    x = 5 / 0
    MsgBox x

    On Error GoTo Err ' При ошибке перейти к метке Err
    x = 5 / 0
    MsgBox "OK!"
    GoTo ne

Err:
    MsgBox "Err!"

ne:
    On Error GoTo 0 ' Отключаем обработку ошибок

    ' Циклы бывает, какие захотите
    Do While True
        Exit Do

    Loop 'While True
    Do 'Until False
        Exit Do
    Loop Until False
    ' А вот при вызове функций, от которых хотим получить значение, скобки нужны.
    ' Val также умеет возвращать Integer
    Select Case LengthSqr(Len("abc"), Val("4"))
    Case 24
        MsgBox "0"
    Case 25
        MsgBox "1"
    Case 26
        MsgBox "2"
    End Select

    ' Двухмерный массив.

    ' Можно также менять размеры командой ReDim (Preserve) - см. google
    Dim arr(1 to 10, 5 to 6) As Integer
    arr(1, 6) = 8

    Dim coll As New Collection
    Dim coll2 As Collection
    coll.Add "item", "key"
    Set coll2 = coll ' Все присваивания объектов должны производится командой Set
    MsgBox coll2("key")
    Set coll2 = New Collection
    MsgBox coll2.Count
End Sub

Грабли-1. При копировании кода из IDE (в английском Excel) есь текст конвертируется в 1252 Latin-1. Поэтому, если хотите сохранить русские комментарии — надо сохранить крокозябры как Latin-1, а потом открыть в 1251.

Грабли-2. Т.к. VB позволяет использовать необъявленные переменные, я всегда в начале кода (перед всеми процедурами) ставлю строчку Option Explicit. Эта директива запрещает интерпретатору заводить переменные самостоятельно.

Грабли-3. Глобальные переменные можно объявлять только до первой функции/процедуры. Локальные — в любом месте процедуры/функции.

Еще немного дополнительных функций, которые могут пригодится: InPos, Mid, Trim, LBound, UBound. Также ответы на все вопросы по поводу работы функций/их параметров можно получить в MSDN.

Надеюсь, что этого Вам хватит, чтобы не пугаться кода и самостоятельно написать какое-нибудь домашнее задание по информатике. По ходу поста я буду ненавязчиво знакомить Вас с новыми конструкциями.

В этой части мы уже начнём кодить нечто, что умеет работать с нашими листами в Excel. Для начала создадим отдельный лист с именем result (лист с данными назовём data). Теперь, наверное, нужно этот лист очистить от того, что на нём есть. Также мы «выделим» лист с данными, чтобы каждый раз не писать длинное обращение к массиву с листами.

Sub FormatPrice()
    Sheets("result").Cells.Clear
    Sheets("data").Activate
End Sub

Работа с диапазонами ячеек

Вся работа в Excel VBA производится с диапазонами ячеек. Они создаются функцией Range и возвращают объект типа Range. У него есть всё необходимое для работы с данными и/или оформлением. Кстати сказать, свойство Cells листа — это тоже Range.

Примеры работы с Range

Sheets("result").Activate
Dim r As Range
Set r = Range("A1")
r.Value = "123"
Set r = Range("A3,A5")
r.Font.Color = vbRed
r.Value = "456"
Set r = Range("A6:A7")
r.Value = "=A1+A3"

Теперь давайте поймем алгоритм работы нашего кода. Итак, у каждой строчки листа

data, начиная со второй, есть некоторые данные, которые нас не интересуют (ID, название и цена) и есть две вложенные группы, к которым она принадлежит (тип и производитель). Более того, эти строки отсортированы. Пока мы забудем про пропуски перед началом новой группы — так будет проще. Я предлагаю такой алгоритм:

  1. Считали группы из очередной строки.
  2. Пробегаемся по всем группам в порядке приоритета (вначале более крупные)
    1. Если текущая группа не совпадает, вызываем процедуру AddGroup(i, name), где i — номер группы (от номера текущей до максимума), name — её имя. Несколько вызовов необходимы, чтобы создать не только наш заголовок, но и всё более мелкие.
  3. После отрисовки всех необходимых заголовков делаем еще одну строку и заполняем её данными.

Для упрощения работы рекомендую определить следующие функции-сокращения:

Function GetCol(Col As Integer) As String
    GetCol = Chr(Asc("A") + Col)
End Function

Function GetCellS(Sheet As String, Col As Integer, Row As Integer) As Range
    Set GetCellS = Sheets(Sheet).Range(GetCol(Col) + CStr(Row))
End Function

Function GetCell(Col As Integer, Row As Integer) As Range
    Set GetCell = Range(GetCol(Col) + CStr(Row))
End Function

Далее определим глобальную переменную «текущая строчка»: Dim CurRow As Integer. В начале процедуры её следует сделать равной единице. Еще нам потребуется переменная-«текущая строка в data», массив с именами групп текущей предыдущей строк. Потом можно написать цикл «пока первая ячейка в строке непуста».

Глобальные переменные

Option Explicit ' про эту строчку я уже рассказывал
Dim CurRow As Integer
Const GroupsCount As Integer = 2
Const DataCount As Integer = 3
FormatPrice

Sub FormatPrice()
    Dim I As Integer ' строка в data
    CurRow = 1
    Dim Groups(1 To GroupsCount) As String
    Dim PrGroups(1 To GroupsCount) As String

    Sheets("data").Activate
    I = 2
    Do While True
        If GetCell(0, I).Value = "" Then Exit Do
        ' ...
        I = I + 1
    Loop
End Sub

Теперь надо заполнить массив Groups:

На месте многоточия

Dim I2 As Integer
For I2 = 1 To GroupsCount
    Groups(I2) = GetCell(I2, I)
Next I2
' ...
For I2 = 1 To GroupsCount ' VB не умеет копировать массивы
    PrGroups(I2) = Groups(I2)
Next I2
I =  I + 1

И создать заголовки:

На месте многоточия в предыдущем куске

For I2 = 1 To GroupsCount
    If Groups(I2) <> PrGroups(I2) Then
        Dim I3 As Integer
        For I3 = I2 To GroupsCount
            AddHeader I3, Groups(I3)
        Next I3
        Exit For
    End If
Next I2

Не забудем про процедуру AddHeader:

Перед FormatPrice

Sub AddHeader(Ty As Integer, Name As String)
    GetCellS("result", 1, CurRow).Value = Name
    CurRow = CurRow + 1
End Sub

Теперь надо перенести всякую информацию в result

For I2 = 0 To DataCount - 1
    GetCellS("result", I2, CurRow).Value = GetCell(I2, I)
Next I2

Подогнать столбцы по ширине и выбрать лист result для показа результата

После цикла в конце FormatPrice

Sheets("Result").Activate
Columns.AutoFit

Всё. Можно любоваться первой версией.

Некрасиво, но похоже. Давайте разбираться с форматированием. Сначала изменим процедуру AddHeader:

Sub AddHeader(Ty As Integer, Name As String)
    Sheets("result").Range("A" + CStr(CurRow) + ":C" + CStr(CurRow)).Merge
    ' Чтобы не заводить переменную и не писать каждый раз длинный вызов
    ' можно воспользоваться блоком With
    With GetCellS("result", 0, CurRow)
        .Value = Name
        .Font.Italic = True
        .Font.Name = "Cambria"
        Select Case Ty
        Case 1 ' Тип
            .Font.Bold = True
            .Font.Size = 16
        Case 2 ' Производитель
            .Font.Size = 12
        End Select
        .HorizontalAlignment = xlCenter
    End With
    CurRow = CurRow + 1
End Sub

Уже лучше:

Осталось только сделать границы. Тут уже нам требуется работать со всеми объединёнными ячейками, иначе бордюр будет только у одной:

Поэтому чуть-чуть меняем код с добавлением стиля границ:

Sub AddHeader(Ty As Integer, Name As String)
    With Sheets("result").Range("A" + CStr(CurRow) + ":C" + CStr(CurRow))
        .Merge
        .Value = Name
        .Font.Italic = True
        .Font.Name = "Cambria"
        .HorizontalAlignment = xlCenter

        Select Case Ty
        Case 1 ‘ Тип
            .Font.Bold = True
            .Font.Size = 16
            .Borders(xlTop).Weight = xlThick
        Case 2 ‘ Производитель
            .Font.Size = 12
            .Borders(xlTop).Weight = xlMedium
        End Select
        .Borders(xlBottom).Weight = xlMedium ‘ По убыванию: xlThick, xlMedium, xlThin, xlHairline
    End With
    CurRow = CurRow + 1
End Sub

Осталось лишь добится пропусков перед началом новой группы. Это легко:

В начале FormatPrice

Dim I As Integer ' строка в  data
CurRow = 0 ' чтобы не было пропуска в самом начале
Dim Groups(1 To GroupsCount) As String
В цикле расстановки заголовков

If Groups(I2) <> PrGroups(I2) Then
    CurRow = CurRow + 1
    Dim I3 As Integer

В точности то, что и хотели.

Надеюсь, что эта статья помогла вам немного освоится с программированием для Excel на VBA. Домашнее задание — добавить заголовки «ID, Название, Цена» в результат. Подсказка: CurRow = 0 CurRow = 1.

Файл можно скачать тут (min.us) или тут (Dropbox). Не забудьте разрешить исполнение макросов. Если кто-нибудь подскажет человеческих файлохостинг, залью туда.

Спасибо за внимание.

Буду рад конструктивной критике в комментариях.

UPD: Перезалил пример на Dropbox и min.us.

UPD2: На самом деле, при вызове процедуры с одним параметром скобки можно поставить. Либо использовать конструкцию Call Foo(«bar», 1, 2, 3) — тут скобки нужны постоянно.

Автоматизация задач с помощью средства записи макросов — Excel

При записи макроса записываются все действия, описанные в Visual Basic для приложений (VBA) коде. Эти действия могут включать ввод текста или чисел, нажатие ячеек или команд на ленте или в меню, форматирование ячеек, строк или столбцов, а также импорт данных из внешнего источника, например Microsoft Access. Приложение Visual Basic (VBA) — это подмножество мощного языка программирования Visual Basic, которое входит в большинство приложений Office. Несмотря на то, что VBA обеспечивает возможность автоматизации процессов между приложениями Office, вам не нужно знать код VBA или программное программирование, если это нужно.

Важно знать, что при записи макроса регистрируются почти все ваши действия. Поэтому если вы допустите ошибку, например нажмете не ту кнопку, средство записи макросов зарегистрирует это действие. В таком случае можно снова записать всю последовательность или изменить код VBA. Поэтому перед записью процесса следует хорошо проработать его. Чем точнее вы запишете последовательность, тем более эффективно будет работать макрос.

Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее. Дополнительные сведения см. в статье Отображение вкладки «Разработчик».

Запись макроса

Перед записью макросов полезно знать следующее:

  • Макрос, записанный для работы с диапазоном Excel, будет выполняться только для ячеек этого диапазона. Поэтому если вы добавите в диапазон новую строку, макрос не будет применяться к ней.

  • Если вам нужно записать длинную последовательность задач, советуем вместо этого использовать несколько более мелких макросов.

  • В макросе могут содержаться и задачи, не относящиеся к Excel. Процесс макроса может охватывать прочие приложения Office и другие программы, которые поддерживают Visual Basic для приложений (VBA). Например, вы можете записать макрос, который сначала обновляет таблицу в Excel, а затем открывает Outlook для ее отправки по электронной почте.

Чтобы записать макрос, следуйте инструкциям ниже.

  1. На вкладке Разработчик в группе Код нажмите кнопку Запись макроса.

    -ИЛИ-

    Нажмите ALT+T+M+R.

  2. В поле Имя макроса укажите имя макроса. Сделайте имя понятным, чтобы можно было быстро найти нужный макрос.

    Примечание: Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не должно содержаться пробелов; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса..

  3. Чтобы назначить сочетание клавиш для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву. Рекомендуется использовать сочетания клавиш с CTRL+SHIFT, так как они будут заменять собой совпадающие с ними стандартные сочетания клавиш в Excel, пока открыта книга, содержащая макрос. Например, если назначить сочетание клавиш CTRL+Z (Отменить), вы не сможете использовать его для функции «Отменить» в данном экземпляре Excel.

  4. В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.

    Как правило, макрос сохраняется в указанном расположении книги , но если вы хотите, чтобы макрос был доступен при использовании Excel, выберите пункт Личная книга макросов . Если выбрать команду Личная книга макросов, Excel создаст скрытую личную книгу макросов (личное. xlsb), если она еще не существует, и сохранит макрос в этой книге.

  5. В поле Описание при необходимости введите краткое описание действий макроса.

    Хотя поле «Описание» является необязательным, рекомендуется его заполнить. Кроме того, желательно ввести понятное описание, которое будет полезно вам и всем, кто запускает макрос. Если у вас много макросов, описания помогут быстро определить, для чего они нужны.

  6. Чтобы начать запись макроса, нажмите кнопку ОК.

  7. Выполните действия, которые нужно записать.

  8. На вкладке разработчик в группе код нажмите кнопку остановить запись .

    -ИЛИ-

    Нажмите ALT+T+M+R.

Работа с макросами, записанными в Excel

На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. Кроме того, можно нажать клавиши ALT+F8. При этом откроется диалоговое окно Макрос.

Внимание: Макросы нельзя отменить. Прежде чем впервые запускать записанный макрос, сохраните книгу или создайте ее копию, чтобы предотвратить внесение нежелательных изменений. Если вас не устраивают результаты выполнения макроса, вы можете закрыть книгу, не сохраняя ее.

Ниже приведены дополнительные сведения о работе с макросами в Excel.

Задача

Описание

Изменение параметров безопасности макросов в Excel

Сведения о параметрах безопасности макросов и их значении.

Запуск макроса

Макросы можно запускать различными способами, например с помощью сочетания клавиш, графического объекта, панели быстрого доступа, кнопки или даже при открытии книги.

Изменение макроса

С помощью редактора Visual Basic можно изменять макросы, присоединенные к книге.

Копирование модуля макроса в другую книгу

Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic.

Назначение макроса объекту, фигуре или графическому элементу

  1. На листе щелкните правой кнопкой мыши объект, рисунок, фигуру или элемент, которому нужно назначить существующий макрос, а затем выберите команду назначить макрос.

  2. В поле Назначить макроса выберите макрос, который вы хотите назначить.

Назначение макроса кнопке

Вы можете назначить макрос значку и добавить его на панель быстрого доступа или ленту.

Назначение макроса для элемента управления на листе

Вы можете назначать макросы формам и элементам ActiveX на листе.

Включение и отключение макросов в файлах Office

Узнайте, как включать и отключать макросы в файлах Office.

Открытие редактора Visual Basic

Нажмите клавиши ALT+F11.

Поиск справки по использованию редактора Visual Basic

Узнайте, как найти справку по элементам Visual Basic.

Работа с записанным кодом в редакторе Visual Basic (VBE)

С помощью редактора Visual Basic (VBE) вы можете добавлять в записанный код собственные переменные, управляющие структуры и другие элементы, которые не поддерживает средство записи макросов. Так как средство записи макросов фиксирует почти каждый шаг, выполняемый во время записи, может также потребоваться удалить ненужный код. Просмотр записанного кода — отличный способ научиться программировать на VBA или отточить свои навыки.

Пример изменения записанного кода можно найти в статье Начало работы с VBA в Excel.

Запись макроса

Перед записью макросов полезно знать следующее:

  • Макрос, записанный для работы с диапазоном Excel, будет выполняться только для ячеек этого диапазона. Поэтому если вы добавите в диапазон новую строку, макрос не будет применяться к ней.

  • Если вам нужно записать длинную последовательность задач, советуем вместо этого использовать несколько более мелких макросов.

  • В макросе могут содержаться и задачи, не относящиеся к Excel. Процесс макроса может охватывать прочие приложения Office и другие программы, которые поддерживают Visual Basic для приложений (VBA). Например, вы можете записать макрос, который сначала обновляет таблицу в Excel, а затем открывает Outlook для ее отправки по электронной почте.

Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее.

  1. Перейдите в раздел настройки > ExcelПанель инструментов & > ленты.

  2. В категории Настроить ленту в списке Основные вкладки установите флажок Разработчик, а затем нажмите кнопку Сохранить.

Чтобы записать макрос, следуйте инструкциям ниже.

  1. На вкладке Разработчик нажмите кнопку Запись макроса.

  2. В поле Имя макроса введите название макроса. Сделайте имя понятным, чтобы можно было быстро найти нужный макрос.

    Примечание: Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не должно содержаться пробелов; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса..

  3. В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.

    Как правило, макрос сохраняется в указанном расположении книги , но если вы хотите, чтобы макрос был доступен при использовании Excel, выберите пункт Личная книга макросов. Если выбрать команду Личная книга макросов, в Excel будет создана скрытая личная книга макросов (личное. XLSB), если он еще не существует, и сохранение макроса в этой книге. Книги в этой папке открываются автоматически при запуске Excel, а код, хранящийся в личной книге макросов, будет указан в диалоговом окне Макрос, которое описано в следующем разделе.

  4. Чтобы назначить сочетание клавиш для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву. Рекомендуется использовать сочетания клавиш, которые еще не назначены другим командам, так как они будут переопределять совпадающие с ними стандартные сочетания клавиш в Excel, пока открыта книга, содержащая макрос.

  5. В поле Описание при необходимости введите краткое описание действий макроса.

    Хотя поле «Описание» является необязательным, рекомендуется его заполнить. Полезно ввести понятное описание с любой полезной информацией, которая может быть полезна Вам или другим пользователям, которые будут запускать макрос. Если у вас много макросов, описания помогут быстро определить, для чего они нужны.

  6. Чтобы начать запись макроса, нажмите кнопку ОК.

  7. Выполните действия, которые нужно записать.

  8. На вкладке Разработчик щелкните Остановить запись.

Работа с макросами, записанными в Excel

На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. При этом откроется диалоговое окно Макрос.

Примечание: Макросы нельзя отменить. Прежде чем впервые запускать записанный макрос, сохраните книгу или создайте ее копию, чтобы предотвратить внесение нежелательных изменений. Если вас не устраивают результаты выполнения макроса, вы можете закрыть книгу, не сохраняя ее.

Ниже приведены дополнительные сведения о работе с макросами в Excel.

Задача

Описание

Включение и отключение макросов

Узнайте, как включать и отключать макросы в Excel для Mac.

Копирование модуля макроса в другую книгу

Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic.

Назначение макроса объекту, фигуре или графическому элементу

  1. На листе щелкните правой кнопкой мыши объект, рисунок, фигуру или элемент, которому нужно назначить существующий макрос, а затем выберите команду назначить макрос.

  2. В поле Назначить макроса выберите макрос, который вы хотите назначить.

Назначение макроса кнопке

Вы можете назначить макрос значку и добавить его на панель быстрого доступа или ленту.

Назначение макроса для элемента управления на листе

Вы можете назначать макросы формам и элементам ActiveX на листе.

Открытие редактора Visual Basic

На вкладке Разработчик щелкните Visual Basic или выберите Сервис > Макрос > Редактор Visual Basic.

Поиск справки по использованию редактора Visual Basic

Узнайте, как найти справку по элементам Visual Basic.

VBA Excel. Начинаем программировать с нуля

Первое знакомство с редактором VBA Excel, создание процедур (подпрограмм) и написание простейшего кода, работающего с переменными и ячейками рабочего листа.


Эта статья предназначена для тех, кто желает научиться программировать в VBA Excel с нуля. Вы увидите, как это работает, и убедитесь, что не все так сложно, как кажется с первого взгляда. Свою первую программу вы напишите за 7 простых шагов.

Знакомство с редактором VBA

  1. Создайте новую книгу Excel и сохраните ее как книгу с поддержкой макросов с расширением .xlsm. В старых версиях Excel по 2003 год – как обычную книгу с расширением .xls.
  2. Нажмите сочетание клавиш «левая_клавиша_Alt+F11», которое откроет редактор VBA. С правой клавишей Alt такой фокус не пройдет. Также, в редактор VBA можно перейти по ссылке «Visual Basic» из панели инструментов «Разработчик» на ленте быстрого доступа. Если вкладки «Разработчик» на ленте нет, ее следует добавить в настройках параметров Excel.

В левой части редактора VBA расположен проводник проекта, в котором отображены все открытые книги Excel. Верхней строки, как на изображении, у вас скорее всего не будет, так как это – личная книга макросов. Справа расположен модуль, в который записываются процедуры (подпрограммы) с кодом VBA. На изображении открыт модуль листа, мы же далее создадим стандартный программный модуль.

  1. Нажмите кнопку «Module» во вкладке «Insert» главного меню. То же подменю откроется при нажатии на вторую кнопку после значка Excel на панели инструментов.

После нажатия кнопки «Module» вы увидите ссылку на него, появившуюся в проводнике слева.

Первая программа на VBA Excel

Добавляем на стандартный модуль шаблон процедуры – строки ее начала и завершения, между которыми мы и будем писать свою первую программу (процедуру, подпрограмму).

  1. Откройте стандартный модуль двойным кликом по его ссылке в проводнике. Поместите в него курсор и нажмите кнопку «Procedure…» во вкладке «Insert» главного меню. Та же ссылка будет доступна при нажатии на вторую кнопку после значка Excel на панели инструментов.

В результате откроется окно добавления шаблона процедуры (Sub).

  1. Наберите в поле «Name» имя процедуры: «Primer1», или скопируйте его отсюда и вставьте в поле «Name». Нажмите кнопку «OK», чтобы добавить в модуль первую и последнюю строки процедуры.

Имя процедуры может быть написано как на латинице, так и на кириллице, может содержать цифры и знак подчеркивания. Оно обязательно должно начинаться с буквы и не содержать пробелы, вместо которых следует использовать знак подчеркивания.

  1. Вставьте внутрь шаблона процедуры следующую строку: MsgBox "Привет".

Функция MsgBox выводит информационное сообщение с указанным текстом. В нашем примере – это «Привет».

  1. Проверьте, что курсор находится внутри процедуры, и запустите ее, нажав клавишу «F5». А также, запустить процедуру на выполнение можно, нажав на треугольник (на изображении под пунктом меню «Debug») или на кнопку «Run Sub/UserForm» во вкладке «Run» главного меню редактора VBA Excel.


Если вы увидели такое сообщение, как на изображении, то, поздравляю – вы написали свою первую программу!

Работа с переменными

Чтобы использовать в процедуре переменные, их необходимо объявить с помощью ключевого слова «Dim». Если при объявлении переменных не указать типы данных, они смогут принимать любые доступные в VBA Excel значения. Комментарии в тексте процедур начинаются со знака «’» (апостроф).

Пример 2
Присвоение переменным числовых значений:

Public Sub Primer2()

‘Объявляем переменные x, y, z

Dim x, y, z

‘Присваиваем значение переменной x

x = 25

‘Присваиваем значение переменной y

y = 35

‘Присваиваем переменной z сумму

‘значений переменных x и y

z = x + y

‘Выводим информационное сообщение

‘со значением переменной z

MsgBox z

End Sub

Пример 3
Присвоение переменным строковых значений:

Public Sub Primer3()

‘Объявляем переменные x, y, z

Dim x, y, z

‘Присваиваем строку переменной x

x = «Добрый»

‘Присваиваем строку переменной y

y = «день!»

‘Присваиваем переменной z строку,

‘состоящую из строк x и y

‘с пробелом между ними

z = x & » » & y

‘Выводим информационное сообщение

‘со значением переменной z

MsgBox z

End Sub

Скопируйте примеры процедур в стандартный модуль и запустите их на выполнение.

Изменение содержимого ячеек

Для обозначения диапазонов, в том числе и отдельных ячеек, в VBA Excel имеется ключевое слово «Range». Ячейке A1 на рабочем листе будет соответствовать выражение «Range(“A1”)» в коде VBA Excel.

Пример 4

Public Sub Primer4()

‘Объявляем переменную x

Dim x

‘Присваиваем значение переменной x

x = 125.61

‘Присваиваем ячейке A1

‘значение переменной x

Range(«A1») = x

‘Присваиваем значение ячейке B1

Range(«B1») = 356.24

‘Записываем в ячейку C1

‘сумму ячеек A1 и B1

Range(«C1») = Range(«A1») + Range(«B1»)

End Sub

Скопируйте процедуру этого примера в стандартный модуль и запустите на выполнение. Перейдите на активный рабочий лист Excel, чтобы увидеть результат.

Excel — работаем с макросами

В процессе работы неоднократно приходиться сталкиваться с табличными процессорами типа Excel. И хотя это не совсем САПР, но информацию в рамках BIM контекста хочешь не хочешь, а приходится обрабатывать, либо с помощью Базы Данных, либо в тех самых экселевских табличках. А лучше и так и эдак.

Естественно, как и во всем, что связанно с компьютером эту деятельность тоже можно изрядно упростить с помощью автоматизации. С появлением таких вещей как Pivot Tables и Power Queries — так и вовсе становится не понятно как работали с информацией до этого. Но тут мы поговорим о старых добрых ламповых макросах на VBA.

Excel VBA Macro script

Макросы в экселе пишут на VBA (Visual Basic Advance) — слегка переработанный под нужды офисного пакета старый добрый  Бейсик, со всеми своими достоинствами и недостатоками.  Сами программы по умолчанию являются частью эксель файла. И убедится в этом можно с помощью соответствующей консоли (Microsoft Visual Basic for Application)

Добраться до них можно в любое время нажав сочетание клавишь Alt+F11

Но сначала надо включить вкладку Developers в стандартной ленте экселя.

 

 

Для этого:

  1. Ннаводим курсор на ленту и нажимаем Правую Клавишу Мыши (ПКМ)
  2. В открывшемся списке выбираем — Customize the Ribbon (Настройка Ленты)
  3. Ищем как показано на скриншоте пункт Developer (Разработка) и нажимаем чтобы появилась галочка
  4. Ок.

Путем этих не хитрых манипуляций мы получили доступ к панели разработчика в Excel — не будем особо заострять на ней внимание. Нам там понадобится буквально несколько кнопок

— Visual Basic — собственно уже обусжденная выше консоль для работы со скриптами.

— Macos — список доступных макросов для использования.

— Record Macro — эта кнопка позволяет включить запись ваших  действий с табличным редактором.

Ну и дальше порядок работы довольно простой — запускаете запись макроса, производите необходимые манипуляции с данными, останавливаете запись (той же кнопкой что и включили), идете в редактор, правите если необходимо. Потом с помощью списка макросов вызываете вновь созданный макрос в любое удобное время.

Однако есть нюанс. Созданный макроскрипт будет по умолчанию доступен только в одном эксель файле. Скопировать его в другой — конечно можно, но довольно заморочно. Есть ли выход из этой ситуации? Конечно!

Создаем собственную библиотеку Excel макросов — Personal.xlsb

Для этого нам нужно создать файл Personal.xlsb. Создается он один раз, и потом автоматически подгружается Экселем, благодаря чему сохраненные в нем Скрипты и функции становятся доступны во всех ваших файлах. Другой плюс — теперь они не сохраняются в самих файлах, и соответственно можно без опаски передавать результаты за пределы компании.

Собственно смотрим на картинку:


1. Необходимо включить макрос на запись.

2. В появившемся окне в выпадающем списке выбрать пункт — Personal Macro Workbook. Если такого файла не существует — он будет создан автоматические (то что нам и нужно)

3. Запускаем скрипт на запись

4. И останавливаем её.

Готово. Теперь у нас есть файл в который наши модули и функции можно закинуть единожды, а доступны они будут сразу во всех эксель файлах. К тому же так они не утекут за пределы компании, вместе с файлами.

 

Обзор API JavaScript для Excel — Office Add-ins

  • Чтение занимает 2 мин

В этой статье

Надстройка Excel взаимодействует с объектами в Excel с помощью API JavaScript для Office, включающего две объектных модели JavaScript:An Excel add-in interacts with objects in Excel by using the Office JavaScript API, which includes two JavaScript object models:

  • API JavaScript для Excel. Это API-интерфейсы для определенных приложений в Excel.Excel JavaScript API: These are the application-specific APIs for Excel. Появившийся в Office 2016 API JavaScript для Excel предоставляет строго типизированные объекты, с помощью которых можно получать доступ к листам, диапазонам, таблицам, диаграммам и другим объектам.Introduced with Office 2016, the Excel JavaScript API provides strongly-typed objects that you can use to access worksheets, ranges, tables, charts, and more.

  • Общие API. Появившиеся в Office 2013 общие API можно использовать для доступа к таким компонентам, как пользовательский интерфейс, диалоговые окна и параметры клиентов, общие для нескольких типов приложений Office.Common APIs: Introduced with Office 2013, the Common API can be used to access features such as UI, dialogs, and client settings that are common across multiple types of Office applications.

В этом разделе рассматривается API JavaScript для Excel, используемый для разработки большинства функций в надстройках и предназначенный для Excel в Интернете, Excel 2016 или более поздних версий.This section of the documentation focuses on the Excel JavaScript API, which you’ll use to develop the majority of functionality in add-ins that target Excel on the web or Excel 2016 or later. Сведения об общем API см. в статье Общая объектная модель API JavaScript.For information about the Common API, see Common JavaScript API object model.

Сведения о концепциях, связанных с программированиемLearn programming concepts

Сведения о важных концепциях программирования см. в статье Основные концепции программирования с помощью API JavaScript для Excel.See Fundamental programming concepts with the Excel JavaScript API for information about important programming concepts.

Чтобы получить практический опыт доступа к объектам в Excel с помощью API JavaScript для Excel, выполните инструкции из руководства по надстройкам Excel.For hands-on experience using the Excel JavaScript API to access objects in Excel, complete the Excel add-in tutorial.

Сведения о возможностях APILearn API capabilities

Каждой основной функции API Excel посвящена статья, описывающая ее возможности и соответствующую объектную модель.Each major Excel API feature has an article exploring what that feature can do and the relevant object model.

Дополнительные сведения об объектной модели API JavaScript для Excel см. в справочной документации по API JavaScript для Excel.For detailed information about the Excel JavaScript API object model, see the Excel JavaScript API reference documentation.

Опробуйте примеры кода в Script LabTry out code samples in Script Lab

Используйте Script Lab, чтобы быстро начать работу с коллекцией встроенных примеров, демонстрирующих выполнение задач с помощью API.Use Script Lab to get started quickly with a collection of built-in samples that show how to complete tasks with the API. Вы можете выполнять примеры в Script Lab, чтобы сразу увидеть результат в области задач или листе, изучать примеры, чтобы понять принципы действия API, и даже использовать примеры для создания собственных надстроек.You can run the samples in Script Lab to instantly see the result in the task pane or worksheet, examine the samples to learn how the API works, and even use samples to prototype your own add-in.

См. такжеSee also

Самоучитель по Excel VBA — Microsoft Excel для начинающих

Уроки MS Excel

Excel для новичков нередко кажется какой-то неподъемной программой. Ведь там столько функций, что непонятно

Прочее

В этой короткой статье я покажу вам, как быстро удалить все нежелательные гиперссылки с

Текстовые функции в Excel

Excel предлагает большое количество функций, с помощью которых можно обрабатывать текст. Область применения текстовых

Диаграммы и графика

Некоторые советы, хитрости и приёмы для создания замечательных диаграмм в Microsoft Excel. По своей

Уроки MS Excel

Ячейки, строки, столбцы Примеры диапазона Заполнение диапазона Перемещение диапазона Копировать/вставить диапазон Вставка строки, столбца

Уроки MS Excel

Этот учебник рассказывает о главных преимуществах функций ИНДЕКС и ПОИСКПОЗ в Excel, которые делают

Уроки MS Excel

F1 | F2 | F3 | F4 | F5 | F6 | F7 |

Уроки MS Excel

Представьте, что Вы оформили все заголовки строк и столбцов, ввели все данные на рабочий

Подсчет и суммирование

В этом уроке Вы увидите, как при помощи Excel быстро вычислить проценты, познакомитесь с

Уроки MS Excel

Использование абсолютных ссылок в Excel, позволяет создавать формулы, которые при копировании ссылаются на одну

Диаграммы и графика

Мысль о том, что в отчетах и презентациях можно использовать небрежные (а порой ужасные)

Встречаются ситуации, когда от программы VBA требуется совершить несколько раз подряд один и тот

Самоучитель по работе в Excel для чайников позволит Вам легко понять и усвоить базовые

Прочее

Excel содержит множество мощных инструментов для выполнения сложных математических вычислений, например, Анализ “что если”.

Прочее

Из этой статьи Вы узнаете 2 быстрых способа удалить лишние пробелы между словами или

Диаграммы и графика

О чём мы думаем в первую очередь после создания диаграммы в Excel? О том,

Автоматизация Excel из клиентского скрипта VBScript — Office

  • Чтение занимает 2 мин
  • Применяется к:
    Microsoft Excel

В этой статье

Сводка

В этой статье показан код на стороне клиента Microsoft Visual Basic, Scripting Edition (VBScript), который запускает и автоматизирует Microsoft Office Excel или Microsoft Excel, когда пользователь нажимает кнопку на веб-странице.

Дополнительные сведения

Пример кода

  1. Создайте следующий HTML-файл в любом текстовом редакторе и сохраните его как к:\ексцел.хтм.

    <HTML>
    <BODY>
    
    <INPUT id=button1 name=button1 type=button value=Button>
    
    <SCRIPT LANGUAGE="VBScript">
    
    sub button1_onclick()
    
    ' Launch Excel
              dim app
              set app = createobject("Excel.Application")
    
    ' Make it visible
              app.Visible = true
    
    ' Add a new workbook
              dim wb
              set wb = app.workbooks.add
    
    ' Fill array of values first...
              dim arr(19,9) ' Note: VBScript is zero-based
              for i = 1 to 20
                 for j = 1 to 10
                    arr(i-1,j-1) = i*j
                 next
              next
    
    ' Declare a range object to hold our data
              dim rng
              set rng = wb.Activesheet.Range("A1").Resize(20,10)
    
    ' Now assign them all in one shot...
              rng.value = arr
    
    ' Add a new chart based on the data
              wb.Charts.Add
              wb.ActiveChart.ChartType = 70 'xl3dPieExploded
              wb.ActiveChart.SetSourceData rng, 2 ' xlColumns
              wb.ActiveChart.Location 2, "Sheet1" 'xlLocationAsObject
    
    ' Rotate it around...
              for i = 1 to 360 step 30
                 wb.activechart.rotation = i
              next
    
    ' Give the user control of Excel
              app.UserControl = true
    
    end sub
    </SCRIPT>
    
    </BODY>
    </HTML>
    
    
  2. Запустите Microsoft Internet Explorer, введите к:\ексцел.хтм в адресной строке, а затем нажмите клавишу ВВОД.

  3. Нажмите кнопку, которая отображается на странице.

Примечание

Если на странице появится предупреждение системы безопасности о элементе управления ActiveX, нажмите кнопку Да.

Введение в сценарии Office в Excel

Автоматизируйте повторяющиеся задачи с помощью сценариев Office в Excel в Интернете. Записывайте свои действия, а затем воспроизводите их, когда захотите. Вы также можете редактировать свои сценарии по мере изменения рабочего процесса. Сценарии Office хранятся в облаке, что позволяет обновлять любые книги по мере необходимости.

Когда вы записываете свои действия с помощью Action Recorder, создается сценарий. Эти действия могут включать ввод текста или чисел, щелчок по ячейкам или командам на ленте или в меню, форматирование ячеек, строк или столбцов, форматирование данных в виде таблиц Excel и т. Д.Когда вы закончите, вы увидите чистую панель задач, которая отображает описательный список всех шагов, которые вы только что сделали. Для записи и запуска сценариев Office не требуется никакого опыта программирования. Если вы решите изменить свои действия, вы можете сделать это в редакторе кода, где вы можете редактировать код TypeScript скрипта. Узнайте все о написании сценариев с помощью редактора кода в разделе Запись, редактирование и создание сценариев Office в Excel в Интернете.

  • Активная учетная запись подписки на Microsoft 365 с коммерческой или образовательной лицензией Microsoft 365, которая имеет доступ к настольным приложениям Microsoft 365 Office.Сюда входят:

    • Приложения Microsoft 365 для бизнеса

    • Microsoft 365 бизнес стандарт

    • Приложения Microsoft 365 для предприятий

    • Office 365 профессиональный плюс для устройств

    • Office 365 корпоративный E3

    • Office 365 корпоративный E5

    • Office 365 A3

    • Office 365 A5

  • OneDrive или расположение SharePoint в организации для хранения файлов и обмена ими.

  • Аутентификация сервера — при первом запуске средства записи сценариев или редактора кода вам необходимо будет пройти аутентификацию на сервере, чтобы ваши сценарии можно было сохранить в облаке. Войдите в свою учетную запись Microsoft, как обычно, затем, когда вы увидите запрос Permissions required , выберите Accept , чтобы продолжить.

    Примечание. После того, как вы включите правильную настройку в центре администрирования, конечные пользователи с соответствующей лицензией смогут получить доступ к этой функции.Эта функция пока недоступна в Microsoft 365 для правительства США и клиентов с размещением данных в одном из новых локальных центров обработки данных.

Начало работы

  1. Сначала выберите вкладку Автоматизация на ленте. Это откроет вам два основных параметра в группе Инструменты сценария : Действия записи и Редактор кода .

  2. Чтобы создать новый сценарий Office, нажмите кнопку Записать действия , затем начните выполнять действия, которые нужно автоматизировать.В этом примере мы берем простой диапазон данных, конвертируем его в таблицу Excel, добавляем итоговый столбец и итоговую строку и завершаем форматированием наших значений как валюты.

  3. Когда вы начнете запись нового сценария Office, вы увидите, что панель задач Запись действий открыта справа. Здесь вы увидите краткое описание действий, которые вы выполняете, перечисленные по порядку. Когда вы закончите со всеми своими шагами, вы можете нажать кнопку Stop .

  4. После того, как вы нажали кнопку Стоп , на панели «Действия записи» отобразится диалоговое окно, в котором можно указать имя сценария и дать ему описание. По умолчанию Excel назовет ваши сценарии «Сценарий 1», «Сценарий 2» и т. Д. Однако вы захотите дать своим скриптам осмысленные имена; в противном случае вам придется копаться в каждом из них, чтобы найти тот, который вам нужен. В этом примере мы назвали сценарий Create a Table w-Total Row .Обратите внимание, что в имени сценария могут быть пробелы.

Воспроизведение офисного скрипта

  1. Если панель редактора кода еще не отображается, вы можете запустить ее из Автоматизация > Инструменты сценариев > Редактор кода .

  2. Дважды щелкните скрипт, который хотите запустить, откроется панель кода с видимым кодом TypeScript.

  3. Чтобы запустить код, создайте или скопируйте исходную таблицу на новый лист, затем нажмите > Выполнить . Вы увидите краткое уведомление о том, что скрипт запущен, которое исчезнет, ​​когда скрипт будет завершен.

  4. Другие параметры — Если вы щелкните многоточие (…) в правой части панели редактора кода, вы увидите контекстное меню.Здесь у вас есть возможность:

    • Сделайте копию вашего скрипта

    • Удалить скрипт

    • Вернуться к последнему сохраненному — вы можете использовать эту опцию, если вы внесли изменения в скрипт, которые вы не хотите сохранять.

    • Подробности сценария — Здесь показаны общие сведения о сценарии, такие как описание и дата / время последнего изменения. Вы можете изменить описание, просто щелкнув по нему.

    • Журналы — Здесь будет отображаться история скрипта.

    • Настройки редактора — Это позволяет вам изменить тему редактора, имя шрифта, размер шрифта и так далее.Вы, вероятно, захотите оставить все как есть, пока не освоитесь со скриптами Office.

    • О — показывает внутренние сведения о службе сценариев Office. Здесь ничего менять не нужно.

Возможные ошибки

  • Важно знать, что когда вы записываете сценарий Office, средство записи сценариев фиксирует почти все поддерживаемые вами действия.Поэтому, если вы допустили ошибку в своей последовательности, например, нажав кнопку, которую не собирались нажимать, средство записи сценариев запишет ее. Решением является перезапись всей последовательности или изменение самого кода TypeScript. Вот почему всякий раз, когда вы что-то записываете, лучше всего записывать процесс, с которым вы хорошо знакомы. Чем плавнее вы записываете последовательность, тем эффективнее она будет выполняться при воспроизведении.

  • Некоторые действия могут быть нормальными при первой записи сценария, но терпят неудачу при попытке воспроизвести их.Например, в предыдущем примере, где мы отформатировали некоторые образцы данных в виде таблицы, наш код завершился бы ошибкой, если бы мы попытались запустить его в обновленной таблице, потому что Excel не позволяет таблицам перекрывать друг друга. На этом этапе редактор кода отобразит сообщение об ошибке.

    При нажатии кнопки Просмотр журналов отображается краткое объяснение ошибки в нижней части панели редактора кода.

  • Неподдерживаемые функции — Мы постоянно работаем над добавлением поддержки для большего количества функций, но в настоящее время поддерживается не все.Когда это произойдет, вы увидите примечание на панели «Действия записи». Вы можете воспроизвести код, и он просто проигнорирует любые шаги, которые не смог записать.

Нужна дополнительная помощь?

Вы всегда можете спросить эксперта в техническом сообществе Excel, получить поддержку в сообществе Answers или предложить новую функцию или улучшение в Excel User Voice.

См. Также

Техническая документация по Office Scripts

Запись, редактирование и создание сценариев Office в Excel в Интернете

Устранение неполадок скриптов Office

Примеры сценариев для сценариев Office в Excel в Интернете

.

сценариев Office в Excel в Интернете — сценарии Office

  • 3 минуты на чтение

В этой статье

Сценарии

Office в Excel в Интернете позволяют автоматизировать повседневные задачи. Вы можете записывать свои действия в Excel с помощью средства записи действий, которое создает сценарий. Вы также можете создавать и редактировать сценарии с помощью редактора кода.Затем ваши сценарии могут быть переданы в вашу организацию, чтобы ваши коллеги также могли автоматизировать свои рабочие процессы.

Из этой серии документов вы узнаете, как пользоваться этими инструментами. Вы познакомитесь с устройством записи действий и узнаете, как записывать свои частые действия в Excel. Вы также узнаете, как создавать или обновлять собственные сценарии с помощью редактора кода.


Требования

Примечание

Сценарии

Office в Excel в Интернете находятся в общедоступной предварительной версии и должны быть включены администратором.Описанные здесь функциональные возможности могут изменяться по мере развития функции. Вы можете отправить отзыв о сценариях Office с помощью кнопки «Справка »> «Отзыв » в Excel. Вы можете отправить отзыв о документации в репозиторий OfficeDev / office-scripts-docs на GitHub.

Для использования сценариев Office вам потребуется следующее.

  1. Excel в Интернете (другие платформы, например настольные, не поддерживаются).

  2. Офисные скрипты, разрешенные вашим администратором.

  3. Любая коммерческая или образовательная лицензия Microsoft 365 с доступом к настольным приложениям Microsoft 365 Office, например:

    • Office 365 бизнес
    • Office 365 бизнес премиум
    • Office 365 профессиональный плюс
    • Office 365 профессиональный плюс для устройств
    • Office 365 корпоративный E3
    • Office 365 корпоративный E5
    • Office 365 A3
    • Office 365 A5

Когда использовать сценарии Office

Сценарии

позволяют записывать и воспроизводить действия Excel в разных книгах и листах.Если вы обнаружите, что делаете одно и то же снова и снова, вы можете превратить всю эту работу в простой в использовании сценарий Office. Запустите свой сценарий одним нажатием кнопки в Excel или объедините его с Power Automate, чтобы оптимизировать весь рабочий процесс.

В качестве примера предположим, что вы начинаете свой рабочий день с открытия файла .csv на сайте бухгалтерского учета в Excel. Затем вы тратите несколько минут на удаление ненужных столбцов, форматирование таблицы, добавление формул и создание сводной таблицы на новом листе. Действия, которые вы повторяете ежедневно, можно записать один раз с помощью Action Recorder.С этого момента запуск сценария позаботится обо всем вашем преобразовании .csv. Вы не только избавитесь от риска забыть шаги, но и сможете поделиться своим процессом с другими, не обучая их чему-либо. Сценарии Office автоматизируют ваши общие задачи, поэтому вы и ваше рабочее место можете быть более эффективными и продуктивными.

Регистратор действий

Устройство записи действий записывает действия, которые вы выполняете в Excel, и сохраняет их в виде сценария. Запустив средство записи действий, вы можете фиксировать действия Excel при редактировании ячеек, изменении форматирования и создании таблиц.Полученный сценарий можно запустить на других листах и ​​книгах, чтобы воссоздать ваши исходные действия.

Редактор кода

Все сценарии, записанные с помощью Action Recorder, можно редактировать с помощью редактора кода. Это позволяет настраивать сценарий в соответствии с вашими потребностями. Вы также можете добавить логику и функции, которые не доступны напрямую через пользовательский интерфейс Excel, например условные операторы (if / else) и циклы.

Один из простых способов начать изучение возможностей сценариев Office — записать сценарии в Excel в Интернете и просмотреть полученный код.Другой вариант — следовать нашим руководствам, чтобы учиться в более управляемой и структурированной форме.

Совместное использование скриптов

Сценарии

Office можно использовать совместно с другими пользователями книги Excel. Когда вы делитесь сценарием с другими в книге, сценарий прикрепляется к книге. Ваши скрипты хранятся в вашем OneDrive, и когда вы делитесь им, вы создаете ссылку на него в открытой книге.

Подробнее о совместном использовании и отмене общего доступа к сценариям можно прочитать в статье Совместное использование сценариев Office в Excel в Интернете.

Подключение сценариев Office к Power Automate

Power Automate — это служба, которая помогает создавать автоматизированные рабочие процессы между несколькими приложениями и службами. Сценарии Office можно использовать в этих рабочих процессах, что дает вам возможность управлять своими сценариями за пределами книги. Вы можете запускать свои скрипты по расписанию, запускать их в ответ на электронные письма и многое другое. Посетите учебник «Запуск сценариев Office в Excel» в Интернете с помощью Power Automate, чтобы изучить основы подключения этих служб автоматизации.

Следующие шаги

Изучите сценарии Office в Excel в Интернете, чтобы узнать, как создать свои первые сценарии Office.

См. Также

.

Как мне создать сценарий Microsoft Excel?

Microsoft Excel поддерживает автоматизацию команд и функций Excel с помощью макросов и сценариев Visual Basic для приложений. Макросы — это заранее записанная серия команд, запускаемых автоматически при вводе определенной команды. VBA является диалектом языка программирования Visual Basic и может использоваться для создания макросов, а также для выполнения автоматических команд на основе определенных условий.

Включение макросов и сценариев

Перед тем, как приступить к созданию макросов и сценариев VBA, включите вкладку «Разработчик» в меню ленты.На вкладке «Разработчик» сохраняется возможность создания макросов и сценариев, а также другие инструменты, предназначенные для опытных пользователей и разработчиков Excel. После включения параметра настройте параметры безопасности макросов Excel, чтобы вы могли тестировать и запускать макросы.

Щелкните Файл .

Выберите Опции .

Щелкните Настроить ленту и установите флажок Developer .

Щелкните ОК .

Щелкните вкладку Developer в меню ленты.

Щелкните Macro Security .

Выберите Включить все макросы (не рекомендуется; возможен запуск потенциально опасного кода) и нажмите ОК .

Советы

Когда вы закончите использовать свои макросы и сценарии, вернитесь в это меню и установите параметр Отключить все макросы с уведомлением или Отключить все макросы, кроме макросов с цифровой подписью , чтобы предотвратить запуск потенциально вредоносного кода в других документах Excel.

Создание макросов

Макросы автоматически запускаются через записанные ими команды и действия при вводе определенной команды. Каждое действие, которое вы выполняете в Excel во время записи, добавляется в макрос, поэтому сделайте несколько практических запусков, чтобы упростить процесс, прежде чем начинать запись.

Щелкните Запись макроса на вкладке Developer .

Введите имя, ярлык и описание для вашего макроса в соответствующие поля.

Советы
  • Поскольку ваш макрос запускается с помощью клавиши Ctrl и указанной вами клавиши, выберите комбинацию клавиш, которую вы обычно не используете или которая не связана с функцией, встроенной в Excel.
  • Имена макросов должны начинаться с буквы, не могут содержать пробелов, а сочетание клавиш должно быть буквой.

Щелкните макрос Store в раскрывающемся списке и выберите, где вы хотите сохранить макрос.

  • Эта книга ограничивает макрос документом Excel, который вы редактируете в данный момент.
  • Новая книга создает новый документ Excel специально для хранения этого макроса.
  • Персональная книга макросов создает скрытый документ Excel, в котором хранятся все ваши макросы для использования с любым документом Excel.

Щелкните ОК .

Выполните действия, которые хотите автоматизировать, а затем щелкните Остановить запись . Используйте указанное сочетание клавиш для использования нового макроса.

Использование сценариев VBA

Для правильного понимания и применения VBA требуется определенная практика, поэтому, если вы новичок в этом языке, ознакомьтесь с такими руководствами, как Excel Easy и курсы и учебные пособия Home & Learn по Excel VBA. Привет, писатель из Microsoft! Серия блогов также содержит несколько полезных примеров скриптов для Excel.

Щелкните Visual Basic на вкладке Developer .

Найдите лист, на который нужно добавить сценарий VBA, из панели «Проект — VBAProject » и дважды щелкните лист.

Введите или вставьте сегмент кода VBA, который вы хотите добавить на свой лист, в окно Code .

Щелкните Выполнить , а затем Выполнить Sub / UserForm , чтобы протестировать сценарий VBA.

Советы

Клавиша F5 также запускает ваш сценарий.

Если сценарий работает должным образом, продолжайте создание сценариев или работайте с Excel. Если нет, настройте сценарий в окне Code , пока он не будет вести себя должным образом.

.

VBA в Excel — макросы Easy Excel

VBA ( Visual Basic для приложений) — это язык программирования Excel и других программ Office.

1 Создание макроса: с помощью Excel VBA вы можете автоматизировать задачи в Excel, написав так называемые макросы. В этой главе вы узнаете, как создать простой макрос .

2 MsgBox: MsgBox — это диалоговое окно в Excel VBA, которое вы можете использовать для информирования пользователей о вашей программе.

3 Объект Workbook и Worksheet: дополнительные сведения об объекте Workbook и Worksheet в Excel VBA.

4 Объект Range: Объект Range, представляющий ячейку (или ячейки) на вашем листе, является наиболее важным объектом Excel VBA.

5 Переменные. В этой главе рассказывается, как объявлять, инициализировать и отображать переменную в Excel VBA.

6 Оператор If Then: используйте оператор If Then в Excel VBA для выполнения строк кода, если выполняется определенное условие.

7 Цикл: Цикл — один из самых мощных методов программирования. Цикл в Excel VBA позволяет перемещаться по диапазону ячеек с помощью всего нескольких строк кода.

8 Макро-ошибки. В этой главе рассказывается, как работать с макрокомандами в Excel.

9 Манипулирование строками. В этой главе вы найдете наиболее важные функции для управления строками в Excel VBA.

10 Дата и время: узнайте, как работать с датой и временем в Excel VBA.

11 События: События — это действия, выполняемые пользователями, которые запускают Excel VBA для выполнения кода.

12 Массив: массив — это группа переменных. В Excel VBA вы можете ссылаться на конкретную переменную (элемент) массива, используя имя массива и номер индекса.

13 Функция и подпрограмма: в Excel VBA функция может возвращать значение, а подпрограмма — нет.

14 Объект приложения: Мать всех объектов — это сам Excel.Мы называем это объектом Application. Объект приложения предоставляет доступ ко многим параметрам, связанным с Excel.

15 элементов управления ActiveX: узнайте, как создавать элементы управления ActiveX, такие как командные кнопки, текстовые поля, списки и т. Д.

16 Пользовательская форма: в этой главе рассказывается, как создать пользовательскую форму Excel VBA.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *