Макросы excel 2007 for

Время на прочтение
7 мин

Количество просмотров 312K

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

В этом посте я расскажу, что такое 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 IntegerAs Integer
    ' Exit Function
    LengthSqr = x * x + y * y
End FunctionSub FormatPrice()
    Dim s1 As String, s2 As String
    s1 = "str1"
    s2 = "str2"
    If s1 <> s2 Then
        foo "123""456" ' Скобки при вызове процедур запрещены
    End IfDim 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 iDim x As Double
    x = Val("1.234"' Парсинг чисел
    x = x + 10
    MsgBox xOn Error Resume Next ' Обработка ошибок - игнорировать все ошибки
    x = 5 / 0
    MsgBox xOn Error GoTo Err ' При ошибке перейти к метке Err
    x = 5 / 0
    MsgBox "OK!"
    GoTo ne

Err:
    MsgBox 

"Err!"

ne:

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

    ' Циклы бывает, какие захотите
    Do While True
        Exit DoLoop '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) = 8Dim 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

В этой части мы уже начнём кодить нечто, что умеет работать с нашими листами в 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 IntegerAs String
    GetCol = Chr(Asc("A") + Col)
End FunctionFunction GetCellS(Sheet As String, Col As Integer, Row As IntegerAs Range
    Set GetCellS = Sheets(Sheet).Range(GetCol(Col) + CStr(Row))
End FunctionFunction GetCell(Col As Integer, Row As IntegerAs 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 = xlCenterSelect 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. Любая офисная работа предполагает некую «рутинную составляющую» — одни и те же еженедельные отчеты, одни и те же действия по обработке поступивших данных, заполнение однообразных таблиц или бланков и т.д. Использование макросов и пользовательских функций позволяет автоматизировать эти операции, перекладывая монотонную однообразную работу на плечи Excel. Другим поводом для использования макросов в вашей работе может стать необходимость добавить в Microsoft Excel недостающие, но нужные вам функции. Например функцию сборки данных с разных листов на один итоговый лист, разнесения данных обратно, вывод суммы прописью и т.д.

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

В принципе, существует великое множество языков программирования (Pascal, Fortran, C++, C#, Java, ASP, PHP…), но для всех программ пакета Microsoft Office стандартом является именно встроенный язык VBA. Команды этого языка понимает любое офисное приложение, будь то Excel, Word, Outlook или Access.

Способ 1. Создание макросов в редакторе Visual Basic

Для ввода команд и формирования программы, т.е. создания макроса необходимо открыть специальное окно — редактор программ на VBA, встроенный в Microsoft Excel.

  • В старых версиях (Excel 2003 и старше) для этого идем в меню Сервис — Макрос — Редактор Visual Basic (Toos — Macro — Visual Basic Editor).
  • В новых версиях (Excel 2007 и новее) для этого нужно сначала отобразить вкладку Разработчик (Developer). Выбираем Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon) и включаем в правой части окна флажок Разработчик (Developer). Теперь на появившейся вкладке нам будут доступны основные инструменты для работы с макросами, в том числе и нужная нам кнопка Редактор Visual Basic (Visual Basic Editor)



    macro1.png:

К сожалению, интерфейс редактора VBA и файлы справки не переводятся компанией  Microsoft на русский язык, поэтому с английскими командами в меню и окнах придется смириться:

macro2.png

Макросы (т.е. наборы команд на языке VBA) хранятся в программных модулях. В любой книге Excel мы можем создать любое количество программных модулей и разместить там наши макросы. Один модуль может содержать любое количество макросов. Доступ ко всем модулям осуществляется с помощью окна Project Explorer в левом верхнем углу редактора (если его не видно, нажмите CTRL+R). Программные модули бывают нескольких типов для разных ситуаций:

  • Обычные модули — используются в большинстве случаев, когда речь идет о макросах. Для создания такого модуля выберите в меню Insert — Module. В появившееся окно нового пустого модуля можно вводить команды на VBA, набирая их с клавиатуры или копируя их из другого модуля, с этого сайта или еще откуда нибудь:

    macro3.png

  • Модуль Эта книга — также виден в левом верхнем углу редактора Visual Basic в окне, которое называется Project Explorer. В этот модуль обычно записываются макросы, которые должны выполнятся при наступлении каких-либо событий в книге (открытие или сохранение книги, печать файла и т.п.):

    macro4.png

  • Модуль листа — доступен через Project Explorer и через контекстное меню листа, т.е. правой кнопкой мыши по ярлычку листа — команда Исходный текст (View Source). Сюда записывают макросы, которые должны выполняться при наступлении определенных событий на листе (изменение данных в ячейках, пересчет листа, копирование или удаление листа и т.д.)

    macro5.png

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

macro6.png

Давайте разберем приведенный выше в качестве примера макрос Zamena:

  • Любой макрос должен начинаться с оператора Sub, за которым идет имя макроса и список аргументов (входных значений) в скобках. Если аргументов нет, то скобки надо оставить пустыми.
  • Любой макрос должен заканчиваться оператором End Sub.
  • Все, что находится между Sub и End Sub — тело макроса, т.е. команды, которые будут выполняться при запуске макроса. В данном случае макрос выделяет ячейку заливает выделенных диапазон (Selection) желтым цветом (код = 6) и затем проходит в цикле по всем ячейкам, заменяя формулы на значения. В конце выводится окно сообщения (MsgBox).

С ходу ясно, что вот так сразу, без предварительной подготовки и опыта в программировании вообще и на VBA в частности, сложновато будет сообразить какие именно команды и как надо вводить, чтобы макрос автоматически выполнял все действия, которые, например, Вы делаете для создания еженедельного отчета для руководства компании. Поэтому мы переходим ко второму способу создания макросов, а именно…

Способ 2. Запись макросов макрорекордером

Макрорекордер — это небольшая программа, встроенная в Excel, которая переводит любое действие пользователя на язык программирования VBA и записывает получившуюся команду в программный модуль. Если мы включим макрорекордер на запись, а затем начнем создавать свой еженедельный отчет, то макрорекордер начнет записывать команды вслед за каждым нашим действием и, в итоге, мы получим макрос создающий отчет как если бы он был написан программистом. Такой способ создания макросов не требует знаний пользователя о программировании и VBA и позволяет пользоваться макросами как неким аналогом видеозаписи: включил запись, выполнил операци, перемотал пленку и запустил выполнение тех же действий еще раз. Естественно у такого способа есть свои плюсы и минусы:

  • Макрорекордер записывает только те действия, которые выполняются в пределах окна Microsoft Excel. Как только вы закрываете Excel или переключаетесь в другую программу — запись останавливается.
  • Макрорекордер может записать только те действия, для которых есть команды меню или кнопки в Excel. Программист же может написать макрос, который делает то, что Excel никогда не умел (сортировку по цвету, например или что-то подобное).
  • Если во время записи макроса макрорекордером вы ошиблись — ошибка будет записана. Однако смело можете давить на кнопку отмены последнего действия (Undo) — во время записи макроса макрорекордером она не просто возрвращает Вас в предыдущее состояние, но и стирает последнюю записанную команду на VBA.

Чтобы включить запись необходимо:

  • в Excel 2003 и старше — выбрать в меню Сервис — Макрос — Начать запись (Tools — Macro — Record New Macro)
  • в Excel 2007 и новее — нажать кнопку Запись макроса (Record macro) на вкладке Разработчик (Developer)

Затем необходимо настроить параметры записываемого макроса в окне Запись макроса:

macro7.png

  • Имя макроса — подойдет любое имя на русском или английском языке. Имя должно начинаться с буквы и не содержать пробелов и знаков препинания.
  • Сочетание клавиш — будет потом использоваться для быстрого запуска макроса. Если забудете сочетание или вообще его не введете, то макрос можно будет запустить через меню Сервис — Макрос — Макросы — Выполнить (Tools — Macro — Macros — Run) или с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или нажав ALT+F8.
  • Сохранить в… — здесь задается место, куда будет сохранен текст макроса, т.е. набор команд на VBA из которых и состоит макрос.:
    • Эта книга — макрос сохраняется в модуль текущей книги и, как следствие, будет выполнятся только пока эта книга открыта в Excel
    • Новая книга — макрос сохраняется в шаблон, на основе которого создается любая новая пустая книга в Excel, т.е. макрос будет содержаться во всех новых книгах, создаваемых на данном компьютере начиная с текущего момента
    • Личная книга макросов — это специальная книга Excel  с именем Personal.xls, которая используется как хранилище макросов. Все макросы из Personal.xls загружаются в память при старте Excel и могут быть запущены в любой момент и в любой книге.

После включения записи и выполнения действий, которые необходимо записать, запись можно остановить командой Остановить запись (Stop Recording).

Запуск и редактирование макросов

Управление всеми доступными макросами производится в окне, которое можно открыть с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или — в старых версиях Excel — через меню Сервис — Макрос — Макросы (Tools — Macro — Macros):

macro8.png

  • Любой выделенный в списке макрос можно запустить кнопкой Выполнить (Run).
  • Кнопка Параметры (Options) позволяет посмотреть и отредактировать сочетание клавиш для быстрого запуска макроса.
  • Кнопка Изменить (Edit) открывает редактор Visual Basic (см. выше) и позволяет просмотреть и отредактировать текст макроса на VBA.

Создание кнопки для запуска макросов

Чтобы не запоминать сочетание клавиш для запуска макроса, лучше создать кнопку и назначить ей нужный макрос. Кнопка может быть нескольких типов:

Кнопка на панели инструментов в Excel 2003 и старше

Откройте меню Сервис — Настройка (Tools — Customize) и перейдите на вкладку Команды (Commands). В категории Макросы легко найти веселый желтый «колобок» — Настраиваемую кнопку (Custom button):

macro9.gif

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

macro10.gif

Кнопка на панели быстрого доступа в Excel 2007 и новее

Щелкните правой кнопкой мыши по панели быстрого доступа в левом верхнем углу окна Excel и выберите команду Настройка панели быстрого доступа (Customise Quick Access Toolbar):

macro11.png

Затем в открывшемся окне выберите категорию Макросы и при помощи кнопки Добавить (Add) перенесите выбранный макрос в правую половину окна, т.е. на панель быстрого доступа:

macro12.png

Кнопка на листе

Этот способ подходит для любой версии Excel. Мы добавим кнопку запуска макроса прямо на рабочий лист, как графический объект. Для этого:

  • В Excel 2003 и старше — откройте панель инструментов Формы через меню Вид — Панели инструментов — Формы (View — Toolbars — Forms)
  • В Excel 2007 и новее — откройте выпадающий список Вставить (Insert) на вкладке Разработчик (Developer) 

Выберите объект Кнопка (Button):

macro13.png

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

Создание пользовательских функций на VBA

Создание пользовательских функций или, как их иногда еще называют, UDF-функций (User Defined Functions) принципиально не отличается от создания макроса в обычном программном модуле. Разница только в том, что макрос выполняет последовательность действий с объектами книги (ячейками, формулами и значениями, листами, диаграммами и т.д.), а пользовательская функция — только с теми значениями, которые мы передадим ей как аргументы (исходные данные для расчета).

Чтобы создать пользовательскую функцию для расчета, например, налога на добавленную стоимость (НДС) откроем редактор VBA, добавим новый модуль через меню Insert — Module и введем туда текст нашей функции:

macro14.png

Обратите внимание, что в отличие от макросов функции имеют заголовок Function вместо Sub и непустой список аргументов (в нашем случае это Summa). После ввода кода наша функция становится доступна в обычном окне Мастера функций (Вставка — Функция) в категории Определенные пользователем (User Defined):

macro15.png

После выбора функции выделяем ячейки с аргументами (с суммой, для которой надо посчитать НДС) как в случае с обычной функцией:

macro16.png

  • Создаём макрос при помощи команды Запись макроса
  • Цикл FOR
  • Конструкция IF
  • Конструкция CASE

Многие люди думают, что макросы в Excel – это очень трудно, но это не так. В этой статье Вы найдёте несколько интересных и простых примеров, как можно автоматизировать Ваши повседневные задачи в Excel. Макрос – это программа на Visual Basic, созданная для того, чтобы автоматизировать задачи в Microsoft Office. В своих примерах я использую Excel 2010, но с таким же успехом Вы можете использовать Excel 2007.

Содержание

  1. Создаем макрос при помощи команды «Запись макроса»
  2. Цикл FOR
  3. Конструкция IF
  4. Конструкция CASE
  5. Заключение

Создаем макрос при помощи команды «Запись макроса»

  1. Для начала откройте вкладку View (Вид) на Ленте. В выпадающем списке Macros (Макросы) нажмите кнопку Record Macro (Запись макроса).Работа с макросами в ExcelОткроется диалоговое окно Record Macro (Запись Макроса).

    Работа с макросами в Excel

  2. Задайте имя макросу (не допускаются пробелы и специальные символы), клавишу быстрого вызова, а также, где бы Вы хотели сохранить свой макрос. При желании, Вы можете добавить описание.
  3. С этого момента макрос записывает действия. Например, Вы можете ввести слово «Hello» в ячейку A1.
  4. Теперь снова нажмите иконку Macros (Макросы) и в раскрывшемся меню выберите Stop Recording (Остановить запись).Работа с макросами в Excel

Доступ к записанному макросу можно получить с помощью команды View Macros (Макросы), которая находится на вкладке View (Вид) в выпадающем меню Macros (Макросы). Откроется диалоговое окно Macro (Макрос), в котором Вы сможете выбрать нужный. Дважды кликните по имени макроса, чтобы выполнить программу.

Кроме этого, Вы можете связать макрос с кнопкой. Для этого:

  1. На вкладке File (Файл) нажмите Options (Параметры) > Quick Access Toolbar (Панель быстрого доступа).
  2. В поле Choose commands from (Выбрать команды из) выберите All Commands (Все команды).
  3. Найдите команду Option Button (Кнопка), нам нужна та, что относится к разделу Form Control (Элементы управления формы). Выделите ее и нажмите Add (Добавить). Затем нажмите ОК, чтобы закрыть параметры Excel.
  4. Выберите команду, только что добавленную на Панель быстрого доступа, и начертите контур кнопки на рабочем листе Excel.
  5. Назначьте макрос объекту.

Примечание: Если у вас включена вкладка Developer (Разработчик), то получить доступ к элементам управления формы можно с нее. Для этого перейдите на вкладку Developer (Разработчик), нажмите на иконку Insert (Вставить) и из раскрывающегося меню выберите нужный элемент.

Не знаете, как отобразить вкладку Developer (Разработчик)? Excel 2007: жмем на кнопку Office > Excel Options (Параметры Excel) > Popular (Основные) и ставим галочку напротив опции Show Developer tab in the Ribbon (Показывать вкладку «Разработчик» на ленте). Excel 2010: жмем по вкладке File (Файл) > Options (Параметры) > Customize Ribbon (Настройка ленты) и в правом списке включаем вкладку Developer (Разработчик).

Цикл FOR

В следующем примере Вы увидите, как использовать цикл FOR. Цикл FOR позволяет нам выполнить повторение цикла с разными значениями. Давайте посмотрим, как можно заполнить числами от 1 до 5 ячейки A1:A5.

Для этого на вкладке Developer (Разработчик) нажмите Visual Basic. Дважды кликните по объекту из списка Microsoft Excel Objects, в котором должен быть сохранён макрос. Введите вот такой код:

Sub Macro1 ()
   For n = 1 To 5
      Cells(n, 1) = n
   Next n
End Sub

Сохраните файл. Чтобы выполнить макрос, перейдите View > Macros > View Macros (Вид > Макросы > Макросы), выберите из списка название нужного макроса и нажмите Run (Выполнить).

Следующий код отображает фразу «Hello World» в окне сообщений Windows.

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

Работа с макросами в Excel

В следующем примере мы создаём сообщение с выбором Yes (Да) или No (Нет). Если выбрать вариант Yes (Да), то значение ячейки будет удалено.

Sub MacroName()
   Dim Answer As String
 
   Answer = MsgBox("Are you sure you want to delete the cell values ?", 
      vbQuestion + vbYesNo, "Delete cell")
 
   If Answer = vbYes Then
      ActiveCell.ClearContents
   End If
End Sub

Давайте проверим этот код. Выделите ячейку и запустите макрос. Вам будет показано вот такое сообщение:

Работа с макросами в Excel

Если Вы нажмёте Yes (Да), значение в выделенной ячейке будет удалено. А если No (Нет) – значение сохранится.

Конструкция IF

В Microsoft Excel Вы также можете использовать конструкцию IF. В этом коде мы будем раскрашивать ячейки в зависимости от их значения. Если значение в ячейке больше 20, то шрифт станет красным, иначе – синим.

Sub MacroName()
   Dim CellValue As Integer
   CellValue = ActiveCell.Value

   If CellValue > 20 Then
      With Selection.Font
         .Color = -16776961
      End With
   Else
      With Selection.Font
         .ThemeColor = xlThemeColorLight2
         .TintAndShade = 0
      End With
   End If
End Sub

Для проверки этого кода выберем ячейку со значением больше 20:

Работа с макросами в Excel

Когда Вы запустите макрос, цвет шрифта изменится на красный:

Работа с макросами в Excel

При выполнении второго условия шрифт станет синим:

Работа с макросами в Excel

Конструкция CASE

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

Sub MacroName()
   Dim CellValue As Integer
   CellValue = ActiveCell.Value
 
   Select Case CellValue
      Case 60 To 200
         MsgBox "The person is old"

      Case 30 To 59
         MsgBox "The person is adult"
 
      Case 18 To 29
         MsgBox "The person is young"
 
      Case 0 To 17
         MsgBox "The person is a child"
 
      Case Else
         MsgBox "Unknown age"
 
   End Select
End Sub

Чтобы протестировать этот пример, Вы должны выбрать ячейку со значением и запустить макрос. Если значение выбранной ячейки, к примеру, равно 44, то будет показано вот такое сообщение:

Работа с макросами в Excel

Заключение

Макросы – это отличный способ автоматизировать задачи в Excel. Эта статья показывает лишь немногие примеры того, что можно сделать при помощи макросов.

Оцените качество статьи. Нам важно ваше мнение:

Руководство и примеры работы с макросами в Excel

  • ​Смотрите также​ в обычном программном​
  • ​- это специальная​
  • ​ для создания еженедельного​
  • ​Разработчик (Developer)​

​Результаты этих вычислений можно​ заметить, программировать в​ на величину шага);​ знаком с азами​ С тех пор​ относительные. Если же​ для работы с​ упоминалось, макрос —​ Excel.​ нажмите​ CellValue = ActiveCell.Value​File​Создаём макрос при помощи​ модуле. Разница только​ книга Excel с​ отчета для руководства​. Выбираем​ лучше всего сразу​ самом известном табличном​Loop​ Visual Basic, будет​ он пережил несколько​

Создаем макрос при помощи команды «Запись макроса»

  1. ​ параметр выключен, то​​ макросами. Над лентой​​ это программный код​Чтобы использовать созданный макрос,​​ОК​​ Select Case CellValue​​(Файл) >​​ команды Запись макроса​Работа с макросами в Excel​ в том, что​​ именем​​ компании. Поэтому мы​

    Работа с макросами в Excel

  2. ​Файл — Параметры -​ внести в соответствующие​ процессоре Microsoft не​End Sub.​ намного проще. Однако​ модификаций и востребован​ при записи макроса​ нажмите кнопку​ на языке программирования​
  3. ​ нам нужно сохранить​.​ Case 60 To​Options​​Цикл FOR​​ макрос выполняет последовательность​​Personal.xls​​ переходим ко второму​
  4. ​ Настройка ленты (File​​ ячейки таблицы «Эксель».​​ так уж сложно.​В результате запуска данного​​ даже те, кто​​ у миллионов пользователей​Работа с макросами в Excel

​ будут создаваться абсолютные​изменить в Excel​Visual Basic for Applications​​ документ Excel в​​Начиная с этого момента,​ 200 MsgBox «The​​(Параметры) >​​Конструкция IF​ действий с объектами​​, которая используется как​​ способу создания макросов,​ — Options -​​Для итогов по факту​​ Особенно, если научиться​ макроса в «Эксель»​ их не имеет,​ по всему миру.​ ссылки (подробнее об​

​и следуйте инструкциям​(VBA). Когда Вы​ формате, который поддерживает​

  1. ​ ВСЕ Ваши действия​​ person is old»​​Customize Ribbon​​Конструкция CASE​​ книги (ячейками, формулами​​ хранилище макросов. Все​​ а именно…​
  2. ​ Customize Ribbon)​​ и прогнозу получают​​ применять функции VBA.​ получаем два столбца,​​ при желании смогут​​ При этом многие​
  3. ​ этих двух типах​​ в Создание, выполнение,​​ включаете режим записи​ макросы. Для начала​ с документом записываются:​​ Case 30 To​​(Настройка ленты) и​Многие люди думают, что​ и значениями, листами,​​ макросы из​​Макрорекордер​​и включаем в​​ по формулам ItogP=ItogP​ Всего в этом​
  4. ​ в первом из​ освоиться достаточно быстро.​ работают лишь с​ ссылок можно узнать​ изменение и удаление​ макроса, Excel фактически​
  5. ​ необходимо удалить все​

​ изменения ячеек, пролистывание​​ 59 MsgBox «The​ в правом списке​​ макросы в Excel​​ диаграммами и т.д.),​Personal.xls​- это небольшая​ правой части окна​ + P и​ языке программирования, созданном​​ которых записаны значения​​За таким названием скрываются​ малой толикой возможностей​​ в статьях, посвящённых​​ макросов.​ записывает каждое сделанное​ данные из созданной​

​ таблицы, даже изменение​ person is adult»​​ включаем вкладку​​ – это очень​ а пользовательская функция​​загружаются в память​​ программа, встроенная в​​ флажок​​ ItogF=ItogF+ F.​​ специально для написания​​ для x, а​ программы, написанные на​​ этого табличного процессора​ теме ссылок на​​Удаление макроса:​ Вами действие в​ нами таблицы, т.е.​ размера окна.​​ Case 18 To​​Developer​​ трудно, но это​​ — только с​​ при старте Excel​​ Excel, которая переводит​Разработчик (Developer)​Для отклонений используют =​​ приложений в «Эксель»​​ во втором —​

Цикл FOR

​ языке Visual Basic​ и даже не​ ячейки в Excel).​​При открытии книги, содержащей​​ виде инструкций на​​ сделать из неё​​Excel сигнализирует о том,​ 29 MsgBox «The​(Разработчик).​ не так. В​ теми значениями, которые​​ и могут быть​​ любое действие пользователя​​. Теперь на появившейся​​ (ItogF – ItogP)​​ и Word, около​​ для y.​

​ for Application. Таким​​ догадываются, как им​​Параметр​​ макросы, вы не​​ языке VBA. По-простому,​ пустой шаблон. Дело​​ что включен режим​​ person is young»​В следующем примере Вы​ этой статье Вы​ мы передадим ей​

​ запущены в любой​ на язык программирования​ вкладке нам будут​ / ItogP *​ 160 функций. Их​Затем по ним строится​

​ образом, программирование в​ могло бы облегчить​​Относительные ссылки​​ увидите все сообщения​​ Excel пишет программный​​ в том, что​​ записи макроса в​​ Case 0 To​ увидите, как использовать​ найдёте несколько интересных​ как аргументы (исходные​ момент и в​​ VBA и записывает​​ доступны основные инструменты​

​ 100, если расчет​ можно разделить на​​ график способом, стандартным​​ Excel — это​ жизнь умение программирования​

​(Use Relative References)​ от Excel Online.​ код вместо Вас.​

Работа с макросами в Excel

​ в дальнейшем, работая​ двух местах. Во-первых,​ 17 MsgBox «The​​ цикл​​ и простых примеров,​​ данные для расчета).​​ любой книге.​ получившуюся команду в​​ для работы с​​ ведется в процентах,​ несколько больших групп.​

​ для «Эксель».​ создание макросов с​ в Excel.​ находится в разделе​ Если известно, что​Чтобы увидеть этот программный​ с этим шаблоном,​ в меню​ person is a​FOR​ как можно автоматизировать​Чтобы создать пользовательскую функцию​

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

Работа с макросами в Excel

​Для реализации циклов в​​ нужным кодом. Благодаря​​Программирование в Excel осуществляется​Макросы​ книга содержит макросы,​​ код, нужно в​​ мы будем импортировать​Macros​

Конструкция IF

​ child» Case Else​. Цикл​ Ваши повседневные задачи​​ для расчета, например,​​ выполнения действий, которые​ мы включим макрорекордер​ числе и нужная​ суммарной величины —​Математические функции. Применив их​ VBA Excel 2010,​​ этой возможности табличный​​ посредством языка программирования​(Macros) на вкладке​ и вам нужно​

​ меню​ в него самые​(Макросы) – вместо​ MsgBox «Unknown age»​FOR​ в Excel. Макрос​ налога на добавленную​ необходимо записать, запись​ на запись, а​ нам кнопка​ (ItogF – ItogP).​ к аргументу, получают​

​ как и в​ процессор Microsoft саморазвивается,​ Visual Basic for​​Вид​​ удалить их должен​

Работа с макросами в Excel

​Macros​ свежие и актуальные​ строки​

Работа с макросами в Excel

​ End Select End​позволяет нам выполнить​

Работа с макросами в Excel

Конструкция CASE

​ – это программа​ стоимость (НДС) откроем​​ можно остановить командой​​ затем начнем создавать​Редактор Visual Basic​Результаты опять же сразу​ значение косинуса, натурального​ других версиях, наряду​ подстраиваясь под требования​ Application, который изначально​(View). В Excel​

​ выполняться в классическом​(Макросы) на вкладке​ данные.​Record Macro​ Sub​ повторение цикла с​ на Visual Basic,​ редактор VBA, добавим​Остановить запись​ свой еженедельный отчет,​(Visual Basic Editor)​ записываются в соответствующие​ логарифма, целой части​ с уже приведенной​ конкретного пользователя. Разобравшись​ встроен в самый​ 2003 этот параметр​ приложении Excel. Выполните​View​Чтобы очистить все ячейки​

​(Запись макроса…) появилась​Чтобы протестировать этот пример,​ разными значениями. Давайте​ созданная для того,​ новый модуль через​(Stop Recording)​ то макрорекордер начнет​​:​​ ячейки, поэтому нет​ и пр.​

Работа с макросами в Excel

Заключение

​ конструкцией Do While​​ с тем, как​ известный табличный процессор​ расположен на плавающей​ действия, описанные в​(Вид) кликнуть​ от данных, щёлкните​ строка​

​ Вы должны выбрать​ посмотрим, как можно​
​ чтобы автоматизировать задачи​
​ меню​

​.​

office-guru.ru

Как автоматизировать рутинные задачи в Excel с помощью макросов

Макросы в Excel

  • ​ записывать команды вслед​
  • ​К сожалению, интерфейс редактора​ необходимости их присваивания​
  • ​Финансовые функции. Благодаря их​
  • ​ используется For.​ создавать модули для​
  • ​ от Microsoft.​ панели инструментов.​

​ Создание, выполнение, изменение​View Macros​ правой кнопкой мыши​Stop Recording​ ячейку со значением​ заполнить числами от​ в Microsoft Office.​Insert — Module​Управление всеми доступными макросами​ за каждым нашим​ VBA и файлы​ переменным.​ наличию и используя​Рассмотрим программу, которая создаст​ написания макросов, можно​К его достоинствам специалисты​Параметр​

​ и удаление макросов.​(Макросы) и в​ по иконке​(Остановить запись).​ и запустить макрос.​1​ В своих примерах​и введем туда​ производится в окне,​

Что такое Макрос?

​ действием и, в​ справки не переводятся​Перед запуском созданной программы,​ программирование в Excel,​ столбец. В каждой​ приступать к рассмотрению​ относят сравнительную легкость​​Относительные ссылки​​Если у вас нет​ открывшемся диалоговом окне​Выделить все​Во-вторых, в нижнем левом​ Если значение выбранной​до​ я использую Excel​ текст нашей функции:​ которое можно открыть​ итоге, мы получим​ компанией Microsoft на​ требуется сохранить рабочую​ можно получать эффективные​ его ячейке будут​ конкретных примеров программ​ освоения. Как показывает​

​(Use Relative References)​ подписки на Office​ нажать​, которая находится на​ углу окна Excel.​ ячейки, к примеру,​5​

  • ​ 2010, но с​
  • ​Обратите внимание, что в​ с помощью кнопки​ макрос создающий отчет​
  • ​ русский язык, поэтому​ книгу, например, под​ инструменты для ведения​ записаны квадраты номера​
  • ​ VBA Excel. Лучше​
  • ​ практика, азами VBA​ в современных версиях​ 365 или последней​

Создание макроса – практический пример

​Edit​ пересечении заголовков строк​​ Иконка​​ равно​ячейки​ таким же успехом​ отличие от макросов​Макросы (Macros)​ как если бы​ с английскими командами​ названием «Отчет1.xls».​ бухгалтерского учета и​ соответствующей строки. Использование​ всего начать с​

Макросы в Excel

​ могут овладеть даже​ Excel:​ версии Excel, попробуйте​(Изменить).​ и столбцов, и​Стоп​44​A1:A5​ Вы можете использовать​ функции имеют заголовок​

​на вкладке​​ он был написан​​ в меню и​​Клавишу «Создать отчетную таблицу»​​ осуществления финансовых расчетов.​​ конструкции For позволит​​ самых элементарных кодов.​

Макросы в Excel

​ пользователи, которые не​Параметр​ прямо сейчас бесплатно:​​Откроется окно​​ из контекстного меню​

Макросы в Excel

​(маленький квадратик) указывает​, то будет показано​.​ Excel 2007.​Function​Разработчик (Developer)​

​ программистом. Такой способ​ окнах придется смириться:​ требуется нажать всего​Функции обработки массивов. К​ записать ее очень​​Задача: написать программу, которая​​ имеют навыков профессионального​Относительные ссылки​​Простую последовательность действий, которую​​Visual Basic for Applications​ выберите пункт​​ на то, что​​ вот такое сообщение:​

Макросы в Excel

​Для этого на вкладке​Для начала откройте вкладку​вместо​​или — в​​ создания макросов не​Макросы (т.е. наборы команд​ 1 раз после​ ним относятся Array,​ коротко, без использования​ будет копировать значение​ программирования. К особенностям​(Use Relative References)​ нужно повторить несколько​, в котором мы​Delete​ включен режим записи​Макросы​Developer​View​

Макросы в Excel

​Sub​ старых версиях Excel​ требует знаний пользователя​ на языке VBA)​ ввода заголовочной информации.​ IsArray; LBound; UBound.​

Макросы в Excel

​ счетчика.​ содержимое одной ячейки​ VBA относится выполнение​ на плавающей панели​ раз, можно записать​ увидим программный код​(Удалить).​ макроса. Нажатие на​– это отличный​

  • ​(Разработчик) нажмите​​(Вид) на Ленте.​​и непустой список​
  • ​ — через меню​​ о программировании и​​ хранятся в программных​
  • ​ Следует знать и​​Функции VBA Excel для​​Сначала нужно создать макрос,​
  • ​ и затем записывать​​ скрипта в среде​​ инструментов в Excel​
  • ​ в виде программного​​ записанного нами макроса.​​Теперь наш лист полностью​

Макросы в Excel

​ неё остановит запись.​ способ автоматизировать задачи​Visual Basic​ В выпадающем списке​ аргументов (в нашем​Сервис — Макрос -​

Макросы в Excel

​ VBA и позволяет​ модулях. В любой​ другие правила. В​ строки. Это достаточно​

Макросы в Excel

​ как описано выше.​ в другую.​ офисных приложений.​ 2003:​ кода и сохранить​

Макросы в Excel

​ Да, Вы правильно​

  • ​ очищен от всех​​ И наоборот, когда​​ в Excel. Эта​
  • ​. Дважды кликните по​​Macros​​ случае это​​ Макросы​ пользоваться макросами как​ книге Excel мы​ частности, кнопка «Добавить​ многочисленная группа. В​ Далее записываем сам​Для этого:​Недостатком программы являются проблемы,​
  • ​Код VBA, записанный в​​ как макрос. Если​​ поняли, здесь этот​
  • ​ данных, при этом​​ режим записи не​​ статья показывает лишь​
  • ​ объекту из списка​​(Макросы) нажмите кнопку​​Summa​​(Tools — Macro -​ неким аналогом видеозаписи:​ можем создать любое​ строку» должна нажиматься​

Макросы в Excel

​ нее входят, например,​ код. Считаем, что​открывают вкладку «Вид»;​ связанные с совместимостью​ макрос, размещается в​ последовательность действий записана​ код можно изменить​ макрос остался записан.​ включен, в этом​​ немногие примеры того,​​Microsoft Excel Objects​Record Macro​​). После ввода кода​​ Macros)​ включил запись, выполнил​ количество программных модулей​ каждый раз после​​ функции Space для​​ нас интересуют значения​переходят на пиктограмму «Макросы»;​​ различных версий. Они​​ модуле, который можно​

Макросы в Excel

​ в макрос, то​ и даже создать​ Нам нужно сохранить​

  • ​ месте находится иконка​
  • ​ что можно сделать​
  • ​, в котором должен​

Макросы в Excel

​(Запись макроса).​ наша функция становится​

Макросы в Excel

​:​ операци, перемотал пленку​

Макросы в Excel

​ и разместить там​ ввода в таблицу​

Макросы в Excel

​ создания строки с​ для 10 ячеек.​жмут на «Запись макроса»;​ обусловлены тем, что​

​ просмотреть в редакторе​ выполнять её можно​ новый макрос. Те​ книгу, как шаблон​ для включения записи​ при помощи макросов.​ быть сохранён макрос.​Откроется диалоговое окно​ доступна в обычном​Любой выделенный в списке​ и запустил выполнение​ наши макросы. Один​ значений по каждому​ числом пробелов, равных​ Код выглядит следующим​заполняют открывшуюся форму.​ код программы VBA​

​ Visual Basic. Редактор​ снова и снова,​ действия, которые мы​ Excel с поддержкой​​ макроса. Нажатие на​​Урок подготовлен для Вас​ Введите вот такой​Record Macro​ окне Мастера функций​ макрос можно запустить​​ тех же действий​​ модуль может содержать​

Макросы в Excel

​ виду деятельности. После​ целочисленному аргументу, или​ образом.​Для простоты в поле​ обращается к функциональным​ можно запустить нажатием​ просто запуская этот​ совершали с таблицей​ макросов, который имеет​​ неё даст тот​​ командой сайта office-guru.ru​

​ код:​​(Запись Макроса).​ (​​ кнопкой​​ еще раз. Естественно​ любое количество макросов.​ занесения всех данных​ Asc для перевода​For i = 1​ «Имя макроса» оставляют​​ возможностям, которые присутствуют​​Alt+F11​ макрос. Это гораздо​

Макросы в Excel

​ в этом уроке,​ расширение​

Выполнение макроса в Excel

​ же результат, что​Источник: https://www.ablebits.com/office-addins-blog/2012/05/03/tutorial-excel-macros/​Sub Macro1 ()​Задайте имя макросу (не​Вставка — Функция​Выполнить​ у такого способа​

  • ​ Доступ ко всем​
  • ​ требуется нажать кнопку​ символов в код​

​ to 10 Next​ «Макрос1», а в​ в новой версии​(одновременное нажатие клавиш​ эффективнее, чем выполнять​ вполне можно записать​XLTM​ и включение записи​Перевел: Антон Андронов​​ For n =​​ допускаются пробелы и​) в категории​(Run)​ есть свои плюсы​ модулям осуществляется с​

​ «Закончить» и затем​ ANSI. Все они​Команда переводится на «человеческий»​ поле «Сочетание клавиш»​ продукта, но отсутствуют​Alt​ раз за разом​ с помощью автоматической​.​ через меню.​Автор: Антон Андронов​ 1 To 5​ специальные символы), клавишу​Определенные пользователем (User Defined)​.​ и минусы:​ помощью окна Project​ переключиться в окно​ имеют широкое применение​​ язык, как «Повторять​​ вставляют, например, hh​

Макросы в Excel

​ в старой. Также​и​ одни и те​​ записи макроса в​​Важный момент!​Теперь, когда режим записи​Что такое Макрос?​

Макросы в Excel

​ Cells(n, 1) =​ быстрого вызова, а​:​Кнопка​Макрорекордер записывает только те​ Explorer в левом​

Макросы в Excel

​ «Эксель».​ и позволяют работать​​ от 1 до​​ (это значит, что​​ к минусам относят​​F11​ же действия вручную.​​ Excel. Но более​​Если Вы сохраните​

Макросы в Excel

​ макроса включен, давайте​Создание макроса – практический​ n Next n​ также, где бы​​После выбора функции выделяем​​Параметры​ действия, которые выполняются​​ верхнем углу редактора​​Теперь вы знаете, как​

Макросы в Excel

​ со строками в​ 10 с шагом​ запустить программку можно​ и чрезмерно высокую​).​Чтобы записать макрос, нужно​ сложные макросы, с​ файл с расширением​ займёмся нашей задачей.​ пример​ End Sub​ Вы хотели сохранить​ ячейки с аргументами​(Options)​ в пределах окна​ (если его не​ решать задачи для​

Макросы в Excel

Заглянем под капот: Как работает макрос?

​ «Эксель», создавая приложения,​ один».​ будет блиц-командой «Ctrl+h»).​ открытость кода для​​Код находится в одном​​ включить режим записи.​ тонко настроенной последовательностью​XLTX​ Первым делом, добавим​Выполнение макроса в Excel​Сохраните файл. Чтобы выполнить​ свой макрос. При​ (с суммой, для​позволяет посмотреть и​

​ Microsoft Excel. Как​ видно, нажмите CTRL+R).​ Excel с помощью​​ значительно облегчающие работу​​Если ставится задача получить​​ Нажимают Enter.​​ изменения посторонним лицом.​​ из модулей, которые​​ Это можно сделать​ и логикой действий​, то макрос в​​ заголовки для итоговых​​Заглянем под капот: Как​

Макросы в Excel

​ макрос, перейдите​​ желании, Вы можете​​ которой надо посчитать​ отредактировать сочетание клавиш​ только вы закрываете​ Программные модули бывают​ макросов. Умение применять​ с этими таблицами.​ столбец с квадратами,​Теперь, когда уже запущена​ Тем не менее​ расположены в окне​ на вкладке​ требуют программирования вручную.​ нём работать не​ данных.​ работает макрос?​View​ добавить описание.​ НДС) как в​ для быстрого запуска​

Макросы в Excel

Добавим ещё один шаг к нашей задаче…

​ Excel или переключаетесь​ нескольких типов для​​ vba excel (примеры​​Функции преобразования типа данных.​ например, всех нечетных​ запись макроса, производят​ Microsoft Office, а​Project​Вид​​Представьте, что наш исходный​​ будет. Кстати, можно​Далее, введите в ячейки​Добавим ещё один шаг​>​С этого момента макрос​ случае с обычной​ макроса.​

  1. ​ в другую программу​ разных ситуаций:​ программ см. выше)​​ Например, CVar возвращает​​ чисел из диапазона​
  2. ​ копирование содержимого какой-либо​ также IBM Lotus​​слева от области​​(View) в разделе​
  3. ​ файл с данными​​ сохранить книгу как​​ формулы в соответствии​ к нашей задаче…​​Macros​​ записывает действия. Например,​ функцией:​Кнопка​
  4. ​ — запись останавливается.​Обычные модули​
  5. ​ может понадобиться и​ значение аргумента Expression,​
  6. ​ от 1 до​ ячейки в другую.​ Symphony позволяют пользователю​

​ редактирования. Если дважды​Макросы​data.csv​ шаблон Excel 97-2003,​ с названиями заголовков​Excel располагает мощнейшей, но​

Макросы в Excel

​>​ Вы можете ввести​Скачать бесплатно исходные​Изменить​Макрорекордер может записать только​- используются в​​ для работы в​​ преобразовав его в​​ 11, то пишем:​​ Возвращаются на исходную​

​ применять шифрование начального​ кликнуть по​
​(Macros) или в​
​создаётся автоматически каким-то​

​ который имеет формат​

office-guru.ru

Работа с макросами в Excel Online

​ (даны варианты формул​​ в то же​View Macros​ слово «​ коды VBA-макросов с​(Edit)​ те действия, для​ большинстве случаев, когда​ среде самого популярного​ тип данных Variant.​For i = 1​ пиктограмму. Нажимают на​ кода и установку​Module1​ меню​ процессом и сохраняется​XLT​ для англоязычной и​ время очень редко​(Вид > Макросы​Hello​ широкими возможностями для​

​открывает редактор Visual​ которых есть команды​ речь идет о​ на данный момент​Функции работы с датами.​ to 10 step​ «Запись макроса». Это​ пароля для его​в окне​Сервис​ на диске всегда​, он тоже поддерживает​ русифицированной версии Excel,​ используемой, возможностью создавать​ > Макросы), выберите​» в ячейку​

​ автоматической обработки, редактирования​

​ Basic (см. выше)​ меню или кнопки​ макросах. Для создания​ текстового редактора «Ворд».​ Они значительно расширяют​ 1 Next.​​ действие означает завершение​​ просмотра.​Project​(Tools), если у​ в одном и​

Кнопка

​ макросы.​

​ адреса ячеек –​ автоматически выполняющиеся последовательности​ из списка название​A1​ и форматирования больших​ и позволяет просмотреть​ в Excel. Программист​ такого модуля выберите​ В частности, можно​ стандартные возможности «Эксель».​Здесь step — шаг.​ программки.​Именно с этими понятиями​

Вы знали?

​, то справа появится​ Вас Excel 2003.​ том же месте.​Когда шаблон сохранён, можно​ всегда латинские буквы​

Попробуйте поработать с Office 365 или последней версией Excel

support.office.com

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

​ действий с помощью​ нужного макроса и​.​ таблиц.​ и отредактировать текст​ же может написать​ в меню​ путем записи, как​ Так, функция WeekdayName​ В данном случае​Далее:​ нужно разобраться тем,​ код записанного макроса.​ Ниже на картинках​ Например,​ спокойно закрыть Excel.​

​ и цифры):​ макросов. Макрос –​ нажмите​Теперь снова нажмите иконку​​Макрос для объединения одинаковых​​ макроса на VBA.​​ макрос, который делает​​Insert — Module​ показано в самом​​ возвращает название (полное​​ он равен двум.​вновь переходят на строку​ кто собирается работать​Записывая макрос, Excel всегда​ показано, как выглядят​

​Macros​​ ячеек в таблице​​Чтобы не запоминать сочетание​ то, что Excel​. В появившееся окно​

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

​ начале статьи, или​ или частичное) дня​ По умолчанию отсутствие​ «Макросы»;​ в среде VBA.​ создаёт процедуру​ эти меню.​– путь к​ возможности созданного Вами​или​ Вы имеете дело​(Выполнить).​(Макросы) и в​ Excel.​ клавиш для запуска​​ никогда не умел​​ нового пустого модуля​​ через написание кода​​ недели по его​

​ этого слова в​в списке выбирают «Макрос​ Прежде всего необходимо​Sub​Запись макроса в современных​ файлу с обновляемыми​ макроса, считаю правильным​=СУММ(B2:K2)​ с однотипной задачей,​Следующий код отображает фразу​ раскрывшемся меню выберите​​Исходный код макроса​​ макроса, лучше создать​ (сортировку по цвету,​ можно вводить команды​

​ создавать кнопки меню,​ номеру. Еще более​ цикле означает, что​ 1»;​​ понять, что такое​​(не​ версиях Excel (2007​ данными. Процесс открытия​ обратить внимание на​=AVERAGE(B2:K2)​ которая повторяется множество​ «​Stop Recording​ для одновременного поиска​ кнопку и назначить​ например или что-то​

​ на VBA, набирая​ благодаря которым многие​ полезной является Timer.​ шаг единичный.​​нажимают «Выполнить» (то же​​ объект. В Excel​Function​ и новее):​ этого файла и​

​ их с клавиатуры​​ операции над текстом​​ Он выдает число​Полученные результаты нужно сохранять​ действие запускается начатием​ в этом качестве​). Если при создании​Запись макроса в Excel​ импорта данных из​

Параметр «Относительные ссылки»

​ касающихся макросов в​=СРЗНАЧ(B2:K2)​​ данных или форматирование​​» в окне сообщений​Доступ к записанному макросу​ с одинаковыми значениями​ Кнопка может быть​Если во время записи​ или копируя их​ можно будет осуществлять​ секунд, которые прошли​ в ячейки с​ сочетания клавиш «Ctrl+hh»).​ выступают лист, книга,​ макроса к нему​ 2003:​ него тоже можно​

​ целом:​​=MIN(B2:K2)​​ документов по стандартизированному​ Windows.​​ можно получить с​​ в таблице. Работа​​ нескольких типов:​​ макроса макрорекордером вы​ из другого модуля,​ нажатием дежурных клавиш​ с полуночи до​

Просмотр кода VBA

​ со свойством Merge.​Кнопка на панели инструментов​ ошиблись — ошибка​ с этого сайта​ или через вкладку​ конкретного момента дня.​​ при каждом запуске​​ которое было осуществлено​​ Данные объекты обладают​​ клавиш, то именно​​Запись макроса​​Откройте файл шаблона, в​

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

​Ещё раз прочти предыдущий​=МИН(B2:K2)​ Вам не требуется​​ («Hello World!») End​​View Macros​Макрос для объединения пустых​ в Excel 2003​​ будет записана. Однако​​ или еще откуда​​ «Вид» и пиктограмму​​Функции для преобразования числового​ цикла с увеличением​

Запуск записанного макроса в Excel

​ в процессе записи​ специальной иерархией, т.е.​​ с его помощью​​(Record Macro), как​​ котором мы сохранили​​ пункт.​=MAX(B2:K2)​ знание языков программирования.​ Sub​(Макросы), которая находится​ ячеек в строках​ и старше​ смело можете давить​ нибудь:​

  • ​ «Макросы».​​ аргумента в разные​​ i на величину​​ макроса.​​ подчиняются друг другу.​​ запустить макрос будет​​ показано на картинке​
  • ​ макрос —​VBA-код обладает очень большими​или​
  • ​Вам уже любопытно, что​​В следующем примере мы​​ на вкладке​​ таблицы Excel.​

Ограничения

​Откройте меню​ на кнопку отмены​Модуль Эта книга​Автор: Наира​ системы счисления. Например,​ шага автоматически будет​Имеет смысл увидеть, как​Главным из них является​ проще всего. Существует​ ниже:​FormatData​ возможностями. В частности,​

  • ​=МАКС(B2:K2)​
  • ​ такое макрос, и​​ создаём сообщение с​​View​
  • ​Исходный код макроса​
  • ​Сервис — Настройка​ последнего действия (Undo)​

​- также виден​Всем нам приходится -​ Oct выдает в​ расти и номер​​ выглядит код. Для​​ Application, соответствующий самой​ и другой способ​Здесь, по желанию, можно​​.​​ он может выполнять​=MEDIAN(B2:K2)​ как он работает?​ выбором​(Вид) в выпадающем​ для объединения всех​(Tools — Customize)​ — во время​ в левом верхнем​ кому реже, кому​ восьмеричное представление числа.​ у строки. Таким​

​ этого вновь переходят​ программе Excel. Затем​ запустить макрос:​ ввести имя и​Создайте новый макрос с​ операции с файлами​или​ Тогда смелей вперёд​Yes​ меню​ пустых ячеек во​и перейдите на​ записи макроса макрорекордером​ углу редактора Visual​ чаще — повторять​Функции форматирования. Важнейшей из​ образом, произойдет оптимизация​ на строку «Макросы»​

​ следуют Workbooks, Worksheets,​Нажмите​
​ описание для макроса.​
​ именем​

​ за пределами текущего​

office-guru.ru

VBA Excel: примеры программ. Макросы в Excel

​=МЕДИАНА(B2:K2)​ – далее мы​(Да) или​Macros​ всех строках таблицы​ вкладку​ она не просто​ Basic в окне,​ одни и те​ них является Format.​ кода.​ и нажимают «Изменить»​ а также Range.​Alt+F8​ Рекомендуется давать макросу​LoadData​ документа. Например, макрос​Теперь выделите ячейки с​

VBA Excel примеры программ

Что такое VBA

​ шаг за шагом​No​(Макросы). Откроется диалоговое​ Excel по горизонтали.​Команды (Commands)​ возрвращает Вас в​ которое называется Project​

​ же действия и​ Она возвращает значение​В целом код будет​ или «Войти». В​ Например, для обращения​(одновременно нажмите клавиши​ такое имя, чтобы,​.​ может удалять или​ формулами и скопируйте​ проделаем весь процесс​

​(Нет). Если выбрать​ окно​ Как автоматически объединить​. В категории​ предыдущее состояние, но​ Explorer. В этот​ операции в Excel.​ типа Variant с​ выглядеть, как:​ результате оказываются в​ к ячейке A1​Alt​ вернувшись к нему​В процессе записи макроса​ изменять любые файлы​ их во все​ создания макроса вместе​ вариант​Macro​ все пустые ячейки?​Макросы​ и стирает последнюю​

функции VBA

Объекты, коллекции, свойства и методы

​ модуль обычно записываются​ Любая офисная работа​ выражением, отформатированным согласно​Sub program()​ среде VBA. Собственно,​ на конкретном листе​и​ спустя некоторое время,​LoadData​ в папке​ строки нашей таблицы,​ с Вами.​Yes​

​(Макрос), в котором​Макрос для объединения всех​легко найти веселый​ записанную команду на​ макросы, которые должны​ предполагает некую «рутинную​ инструкциям, которые заданы​For i = 1​ сам код макроса​ следует указать путь​

​F8​ можно было без​сделайте импорт данных​Мои документы​ потянув за маркер​Макрос в Microsoft Office​(Да), то значение​ Вы сможете выбрать​

​ пустых ячеек в​ желтый «колобок» -​ VBA.​ выполнятся при наступлении​ составляющую» — одни​ в описании формата.​

​ To 10 Step​ находится между строками​ с учетом иерархии.​);​ труда понять, для​ из файла​. По этой причине​ автозаполнения.​ (да, этот функционал​ ячейки будет удалено.​ нужный. Дважды кликните​ таблице Excel.​Настраиваемую кнопку​Чтобы включить запись необходимо:​ каких-либо событий в​

​ и те же​и пр.​ 1 (можно записать​ Sub Макрос1() и​

циклы VBA

Как начать

​Что касается понятия «коллекция»,​В появившемся списке макросов​ чего этот макрос​data.csv​ запускайте и разрешайте​После выполнения этого действия​

​ работает одинаково во​Sub MacroName() Dim​ по имени макроса,​Пример как автоматически​(Custom button)​

  • ​в Excel 2003 и​ книге (открытие или​ еженедельные отчеты, одни​Изучение свойств этих функций​ просто For i​
  • ​ End Sub.​
  • ​ то это группа​ выберите тот, который​ нужен. Так или​
  • ​– как мы​ выполнение макросов только​

​ в каждой строке​

​ многих приложениях пакета​

​ Answer As String​

​ чтобы выполнить программу.​

​ убрать пустые ячейки​:​ старше — выбрать​ сохранение книги, печать​ и те же​ и их применение​ = 1 To​Если копирование было выполнено,​

​ объектов того же​ нужно запустить;​ иначе, если не​ это делали в​ из источников, которым​ должны появиться соответствующие​ Microsoft Office) –​ Answer = MsgBox(«Are​Кроме этого, Вы можете​ с помощью их​Перетащите ее к себе​ в меню​ файла и т.п.):​ действия по обработке​

Макросы в Excel

​ позволит значительно расширить​ 10)​ например, из ячейки​ класса, которая в​Нажмите кнопку​ ввести для макроса​ предыдущей части урока.​ Вы доверяете.​ итоговые значения.​ это программный код​ you sure you​ связать макрос с​ объединения с использованием​ на панель инструментов​Сервис — Макрос -​Модуль листа​ поступивших данных, заполнение​ сферу применения «Эксель».​Cells(i, 1).Value = i​ А1 в ячейку​

Пример 1

​ записи имеет вид​В​ имя, то Excel​Когда импорт будет завершён,​Чтобы запустить наш макрос,​

​Далее, мы подведем итоги​

  • ​ на языке программирования​
  • ​ want to delete​
  • ​ кнопкой. Для этого:​
  • ​ макроса. Автоматизированное форматирование​

​ и затем щелкните​ Начать запись​- доступен через​ однообразных таблиц или​Попробуем перейти к решению​ ^ 2 (т.е.​ C1, то одна​ ChartObjects. Ее отдельные​ыполнить​

​ автоматически назовёт его​ остановите запись макроса.​ форматирующий данные, откройте​ для всей таблицы,​Visual Basic for Applications​ the cell values​На вкладке​ больших таблиц. ​ по ней правой​

​(Tools — Macro -​

  • ​ Project Explorer и​ бланков и т.д.​
  • ​ более сложных задач.​ в ячейку (i,1)​
  • ​ из строк кода​ элементы также являются​(Run).​

​Макрос1​Удалите все данные из​ файл шаблона, который​ для этого делаем​

​(VBA), сохранённый внутри​ ?», vbQuestion +​File​Как разъединить объединенные ячейки​ кнопкой мыши. В​ Record New Macro)​ через контекстное меню​ Использование макросов и​ Например:​ записывается значение квадрата​ будет выглядеть, как​ объектами.​

​Инструмент Excel для записи​,​ ячеек.​ мы создали в​ ещё несколько математических​ документа. Чтобы было​ vbYesNo, «Delete cell»)​(Файл) нажмите​ в Excel используя​ контекстом меню можно​в Excel 2007 и​ листа, т.е. правой​

​ пользовательских функций позволяет​Дан бумажный документ отчета​ i)​ Range(“C1”).Select. В переводе​Следующее понятие — свойства.​ макросов – это​Макрос2​

Пример 2

​Сохраните файл, как шаблон​ первой части этого​ действий:​

​ понятнее, документ Microsoft​ If Answer =​Options​ макрос.​ назначить кнопке макрос,​ новее — нажать​ кнопкой мыши по​ автоматизировать эти операции,​ фактического уровня издержек​Next (в некотором смысле​

​ это выглядит, как​ Они являются необходимой​ очень простой способ​и так далее.​ Excel с поддержкой​ урока. Если у​Соответственно:​ Office можно сравнить​ vbYes Then ActiveCell.ClearContents​

​(Параметры) >​Как автоматически отменить​ выбрать другой значок​ кнопку​ ярлычку листа -​ перекладывая монотонную однообразную​ предприятия. Требуется:​

​ играет роль счетчика​

​ «Диапазон(“C1”).Выделить», иными словами​

​ характеристикой любого объекта.​

​ создавать код VBA,​

​Здесь же можно назначить​

​ макросов (расширение XLTM).​ Вас стандартные настройки​=SUM(L2:L21)​ со страницей HTML,​ End If End​

​Quick Access Toolbar​ объединение для всех​

​ и имя:​Запись макроса (Record macro)​ команда​ работу на плечи​

​разработать его шаблонную часть​ и означает еще​ осуществляет переход в​ Например, для Range​

​ но подходит он​ сочетание клавиш для​

​Таким образом, запустив этот​ безопасности, то при​или​

​ тогда макрос –​

​ Sub​

​(Панель быстрого доступа).​ выделенных ячеек по​Кнопка на панели быстрого​на вкладке​Исходный текст (View Source)​ Excel. Другим поводом​ посредством табличного процессора​ один запуск цикла)​

​ VBA Excel, в​ — это Value​ только для создания​

программирование в Excel

Пример 3

​ запуска записанного макроса.​ шаблон, Вы получаете​ открытии файла сверху​=СУММ(L2:L21)​ это аналог Javascript.​Давайте проверим этот код.​В поле​

​ строкам и столбцам​ доступа в Excel​Разработчик (Developer)​. Сюда записывают макросы,​ для использования макросов​ «Эксель»;​End Sub.​ ячейку С1.​ или Formula.​

​ самых простых макросов.​ Запускать макрос таким​ доступ к двум​ над таблицей появится​=AVERAGE(B2:K21)​ То, что Javascript​ Выделите ячейку и​Choose commands from​

​ сохранив и заполнив​ 2007 и новее​

​Затем необходимо настроить параметры​ которые должны выполняться​ в вашей работе​составить программу VBA, которая​Если все сделано правильно,​

​Активную часть кода завершает​Методы — это команды,​ Дело в том,​ способом будет значительно​ макросам – один​ предупреждение о том,​

​или​ умеет делать с​ запустите макрос. Вам​

​(Выбрать команды из)​ текст, которых содержится​Щелкните правой кнопкой мыши​ записываемого макроса в​ при наступлении определенных​ может стать необходимость​ будет запрашивать исходные​

​ в том числе​ команда ActiveSheet.Paste. Она​ показывающие, что требуется​ что этот инструмент​ проще. Однако будьте​ загружает данные, другой​ что запуск макросов​=СРЗНАЧ(B2:K21)​ данными в формате​ будет показано вот​ выберите​

​ в них?​ по панели быстрого​

​ окне​

​ событий на листе​ добавить в Microsoft​ данные для ее​ запись и запуск​ означает запись содержания​ сделать. При написании​

​ не умеет использовать​ осторожны! Если случайно​ их форматирует.​ отключен, и кнопка,​— для расчёта​

​ HTML, находящимися на​ такое сообщение:​All Commands​Как объединить столбцы в​

​ доступа в левом​

​Запись макроса​ (изменение данных в​ Excel недостающие, но​ заполнения, осуществлять необходимые​ макроса (см. инструкцию​ выделенной ячейки (в​ кода в VBA​ многие возможности VBA,​ назначить для макроса​Если есть желание заняться​ чтобы включить их​

примеры макросов VBA Excel

Пример 4

​ этого значения необходимо​ web-странице, очень похоже​Если Вы нажмёте​(Все команды).​ Excel используя макрос.​ верхнем углу окна​:​ ячейках, пересчет листа,​ нужные вам функции.​ расчеты и заполнять​ выше), то при​ данном случае А1)​ их необходимо отделять​ такие как:​ одно из предустановленных​ программированием, Вы можете​ выполнение. Так как​

​ взять именно исходные​ на то, что​Yes​Найдите команду​Автоматическое горизонтальное объединение​ Excel и выберите​

​Имя макроса​

​ копирование или удаление​

​ Например функцию сборки​

​ ими соответствующие ячейки​ его вызове каждый​ в выделенную ячейку​ от объекта точкой.​Константы, переменные и массивы;​ клавиатурных сочетаний Excel​

​ объединить действия этих​

​ шаблон мы сделали​ данные таблицы. Если​ макрос может делать​(Да), значение в​Option Button​

​ всех выделенных ячеек​ команду​

​- подойдет любое​ листа и т.д.)​

​ данных с разных​

​ шаблона.​

​ раз будет получаться​ С1.​ Например, как будет​Выражения​

Функции VBA

​ (например,​ двух макросов в​ самостоятельно и себе​ взять среднее значение​ с данными в​ выделенной ячейке будет​(Кнопка), нам нужна​ по столбцам таблицы​Настройка панели быстрого доступа​ имя на русском​Обычный макрос, введенный в​ листов на один​Рассмотрим один из вариантов​ столбец заданного размера​Циклы VBA помогают создавать​ показано в дальнейшем,​

  • ​IF​Ctrl+C​ один – просто​ мы доверяем, то​ из средних по​
  • ​ документе Microsoft Office.​ удалено. А если​ та, что относится​ с помощью VBA​ (Customise Quick Access​ или английском языке.​ стандартный модуль выглядит​
  • ​ итоговый лист, разнесения​ решения.​ (в данном случае​
  • ​ различные макросы в​ очень часто при​;​), то в дальнейшем​ скопировав код из​ нажимаем кнопку​ отдельным строкам, то​Макросы способны выполнить практически​No​ к разделу​ макроса. Как одновременно​ Toolbar)​ Имя должно начинаться​ примерно так:​ данных обратно, вывод​Все действия осуществляются на​ состоящий из 10​
  • ​ Excel.​ программировании в «Эксель»​Циклы;​ макрос может быть​LoadData​
  • ​Enable Content​ результат будет другим.​ любые действия в​(Нет) – значение​Form Control​ объединить ячейки в​:​ с буквы и​Давайте разберем приведенный выше​ суммы прописью и​ стандартном листе в​ ячеек).​Циклы VBA помогают создавать​
  • ​ используют команду Cells(1,1).Select.​Обращения к встроенным функциям​ запущен случайно.​в начало кода​(Включить содержимое).​
  • ​=MIN(N2:N21)​ документе, которые Вы​ сохранится.​(Элементы управления формы).​ нескольких выделенных диапазонах?​Затем в открывшемся окне​ не содержать пробелов​
  • ​ в качестве примера​

​ т.д.​ Excel. Резервируются свободные​В повседневной жизни сплошь​ различные макросы. Предположим,​

Пример 5

​ Она означает, что​ или внешним процедурам.​Когда макросу дано подходящее​

​FormatData​Следующим шагом, мы импортируем​или​

  • ​ только можете пожелать.​В Microsoft Excel Вы​ Выделите ее и​
  • ​Как объединить ячейки в​ выберите категорию​ и знаков препинания.​ макрос​Макрос​ ячейки для внесения​ и рядом возникает​

​ что имеется функция​ необходимо выбрать ячейку​

Создание шаблона

​Как уже было сказано,​ имя и (при​.​ последний обновлённый набор​=МИН(N2:N21)​ Вот некоторые из​ также можете использовать​ нажмите​ Excel с помощью​Макросы​Сочетание клавиш​Zamena​- это запрограммированная​ данных по месяцу,​ необходимость принять то​ y=x + x2​ с координатами (1,1)​ инструмент записи макросов​

Переменные

​ желании) задано сочетание​Урок подготовлен для Вас​ данных из файла​=MAX(O2:O21)​ них (очень малая​

  • ​ конструкцию​Add​
  • ​ кода макроса VBA.​и при помощи​- будет потом​
  • ​:​ последовательность действий (программа,​ году, названию компании-потребителя,​
  • ​ или иное решение​ + 3×3 –​ т.е. A1.​

​ может создавать только​ клавиш, нажмите​ командой сайта office-guru.ru​CSV​или​ часть):​IF​(Добавить). Затем нажмите​

макросы в Excel

Решение задачи с использованием программирования на VBA

​Как можно быстро​ кнопки​ использоваться для быстрого​Любой макрос должен начинаться​ процедура), записанная на​ сумме издержек, их​ в зависимости от​ cos(x). Требуется создать​Вместе с ней нередко​

​ процедуры​ОК​Источник: http://www.howtogeek.com/162975/geek-school-learn-how-to-use-excel-macros-to-automate-tedious-tasks/​(на основе такого​

​=МАКС(O2:O21)​Применять стили и форматирование.​. В этом коде​ОК​ объединять ячейки для​

​Добавить (Add)​ запуска макроса. Если​ с оператора​ языке программирования Visual​ уровня, товарооборота. Так​ какого-то условия. Не​ макрос для получения​ используется Selection.ClearContents. Ее​

​Sub​, чтобы запустить запись​Перевел: Антон Андронов​ файла мы создавали​=MEDIAN(B2:K21)​

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

​перенесите выбранный макрос​ забудете сочетание или​Sub​ Basic for Applications​ как количество компаний​ обойтись без них​ ее графика. Сделать​ выполнение означает очистку​, так как не​ макроса. С этого​Автор: Антон Андронов​ наш макрос).​или​ числовыми и текстовыми​ ячейки в зависимости​ Excel.​ структурой используя простые​

VBA Excel 2010

​ в правую половину​ вообще его не​, за которым идет​ (VBA). Мы можем​ (обществ), относительно которых​ и в VBA​ это можно только,​ содержимого выбранной ячейки.​ может возвращать значение.​ момента каждое действие​Примечание:​При выполнении импорта данных​=МЕДИАНА(B2:K21)​ данными.​ от их значения.​Выберите команду, только что​ макросы? Пример готового​ окна, т.е. на​ введете, то макрос​ имя макроса и​ запускать макрос сколько​ составляется отчет, не​ Excel. Примеры программ,​ используя циклы VBA.​

​Прежде всего требуется создать​

fb.ru

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

Введение

​ Процедурам​ (ввод данных, выделение​Мы стараемся как​ из CSV-файла, возможно,​— считаем, используя​Использовать внешние источники данных​ Если значение в​ добавленную на Панель​ VBA кода макроса​ панель быстрого доступа:​ можно будет запустить​ список аргументов (входных​ угодно раз, заставляя​ зафиксировано, ячейки для​ где дальнейший ход​За начальное и конечное​ файл и сохранить​Sub​ ячеек, изменение формата​ можно оперативнее обеспечивать​ Excel попросит Вас​ исходные данные таблицы,​ (файлы баз данных,​ ячейке больше​ быстрого доступа, и​ для объединения ячеек.​Кнопка на листе​ через меню​ значений) в скобках.​ Excel выполнять последовательность​ внесения значений по​ выполнения алгоритма выбирается,​ значение аргумента функции​ его, присвоив имя​нельзя передавать какие-либо​

​ ячеек, пролистывание листа​​ вас актуальными справочными​ настроить некоторые параметры​ по причине указанной​ текстовые документы и​20​ начертите контур кнопки​Как запустить макрос в​Этот способ подходит для​Сервис — Макрос -​ Если аргументов нет,​ любых нужных нам​ итогам и ФИО​ а не предопределен​

​ берут x1=0 и​ и выбрав тип​ аргументы, хотя они​ и так далее)​ материалами на вашем​ для правильной передачи​ выше.​ т.д.)​, то шрифт станет​ на рабочем листе​ Excel разными способами.​ любой версии Excel.​ Макросы — Выполнить​ то скобки надо​

Способ 1. Создание макросов в редакторе Visual Basic

​ действий, которые нам​ специалиста заранее не​ изначально, чаще всего​ x2=10. Кроме того,​ «Книга Excel с​ могут распознавать текущие​ будет записано в​

  • ​ языке. Эта страница​ данных в таблицу.​Теперь, когда с вычислениями​Создавать новый документ.​​ красным, иначе –​ Excel.​ ​Как выполнить макрос​ Мы добавим кнопку​​(Tools — Macro -​
  • ​ оставить пустыми.​ не хочется выполнять​ резервируют. Рабочему листу​ используют конструкцию If​​ необходимо ввести константу​​ поддержкой макросов».​​ активные ячейки, диапазоны​ макрос и сохранено​ переведена автоматически, поэтому​Когда импорт будет закончен,​​ закончили, займёмся форматированием.​Проделывать все вышеперечисленные действия​ синим.​​Назначьте макрос объекту.​​ с помощью кнопки,​ запуска макроса прямо​ Macros — Run)​Любой макрос должен заканчиваться​ вручную.​ присваивается новое название.​ …Then (для сложных​​ — значение для​ ​Затем необходимо перейти в​

    Работа с макросами вȎxcel​ или листы, а​

​ в виде кода​ ее текст может​ зайдите в меню​ Для начала для​ в любой их​Sub MacroName() Dim​Примечание:​ панели быстрого запуска​

Работа с макросами вȎxcel

​ на рабочий лист,​или с помощью​ оператором​В принципе, существует великое​ Например, «Օтчет».​ случаев) If …Then​ шага изменения аргумента​ приложение VB, для​ также значения, хранящиеся​ VBA.​ содержать неточности и​Macros​ всех ячеек зададим​ комбинации.​ CellValue As Integer​Если у вас​ и стандартными средствами​ как графический объект.​ кнопки​End Sub​ множество языков программирования​

  • ​Для написания программы автоматического​​ …END If.​ и начальное значение​ чего достаточно воспользоваться​ в ячейках книги.​При включении режима записи​ грамматические ошибки. Для​​(Макросы) на вкладке​​ одинаковый формат отображения​Для примера возьмём самый​ CellValue = ActiveCell.Value​ включена вкладка​ на панели инструментов​ Для этого:​Макросы (Macros)​.​ (Pascal, Fortran, C++,​ заполнения шаблона, необходимо​
    Работа с макросами вȎxcel
  • ​Рассмотрим конкретный случай. Предположим,​​ для счетчика.​ комбинацией клавиш «Alt»​ Кроме того, нужно​ макроса в строке​ нас важно, чтобы​View​ данных. Выделите все​ обычный файл​ If CellValue >​Developer​ РАЗРАБОТЧИК?​В Excel 2003 и​на вкладке​
    Работа с макросами вȎxcel
  • ​Все, что находится между​​ C#, Java, ASP,​ выбрать обозначения. Они​ необходимо создать макрос​Все примеры макросов VBA​ и «F11». Далее:​ сказать, что сгенерированный​ состояния (внизу слева)​​ эта статья была​​(Вид) и выберите​ ячейки на листе,​CSV​ 20 Then With​(Разработчик), то получить​Личная книга макросов в​ старше — откройте​Разработчик (Developer)​
    Работа с макросами вȎxcel

​Sub​ PHP…), но для​ будут использоваться для​

Работа с макросами вȎxcel

​ для «Эксель», чтобы​ Excel создаются по​в строке меню, расположенном​​ код не всегда​​ появляется кнопка​

  • ​ вам полезна. Просим​ команду​​ для этого воспользуйтесь​​. Это простая таблица​ Selection.Font .Color =​ доступ к элементам​ Excel и как​ панель инструментов​или нажав ALT+F8.​и​
  • ​ всех программ пакета​ переменных:​​ в ячейку с​​ той же процедуре,​
  • ​ в верхней части​​ является оптимальным для​​Стоп​​ вас уделить пару​​View Macros​ комбинацией клавиш​ 10х20, заполненная числами​ -16776961 End With​ управления формы можно​ ее использовать.​Формы​Сохранить в…​End Sub​ Microsoft Office стандартом​NN– номер текущей строки​ координатами (1,1) было​ которая представлена выше.​ окна, нажимают на​ рассматриваемой последовательности действий.​

​. В Excel 2003​ секунд и сообщить,​(Макросы).​Ctrl+A​ от 0 до​ Else With Selection.Font​ с нее. Для​Работа с личной​через меню​- здесь задается​- тело макроса,​ является именно встроенный​ таблицы;​ записано:​ В данном конкретном​ иконку рядом с​Автоматическое создание кода VBA​ эта кнопка находится​ помогла ли она​

Способ 2. Запись макросов макрорекордером

​В открывшемся диалоговом окне​​, либо щелкните по​ 100 с заголовками​ .ThemeColor = xlThemeColorLight2​ этого перейдите на​ книгой макросов и​Вид — Панели инструментов​ место, куда будет​ т.е. команды, которые​ язык VBA. Команды​TP и TF –​1, если аргумент положительный;​ случае код выглядит,​ иконкой Excel;​ в Excel отлично​ на плавающей панели​ вам, с помощью​ мы увидим строку​ иконке​ для столбцов и​ .TintAndShade = 0​ вкладку​ краткий обзор ее​ — Формы (View​ сохранен текст макроса,​ будут выполняться при​ этого языка понимает​ планируемый и фактический​0, если аргумент нулевой;​ как:​выбирают команду Mudule;​ работает для простых​ инструментов.​ кнопок внизу страницы.​ с именем нашего​Выделить все​

  • ​ строк. Наша задача​ End With End​Developer​ преимуществ. Где находиться​ — Toolbars -​ т.е. набор команд​ запуске макроса. В​ любое офисное приложение,​
  • ​ товарооборот;​-1, если аргумент отрицательный.​Sub programm()​сохраняют, нажав на иконку​ макросов, но если​Кнопка​ Для удобства также​ макроса​, которая находится на​ превратить этот набор​ If End Sub​(Разработчик), нажмите на​
  • ​ личная книга макросов​ Forms)​ на VBA из​ данном случае макрос​ будь то Excel,​SF и SP –​Создание такого макроса для​x1 = 1​ с изображением floppy​ нужно построить более​Стоп​ приводим ссылку на​FormatData​ пересечении заголовков строк​ данных в презентабельно​

​Для проверки этого кода​

  • ​ иконку​ и как записывать​В Excel 2007 и​​ которых и состоит​ выделяет ячейку заливает​ ​ Word, Outlook или​ фактическая и планируемая​
  • ​ «Эксель» начинается стандартным​x2 = 10​ disk;​​ сложный макрос, то​​в строке состояния​​ оригинал (на английском​

​. Выберите его и​ и столбцов. Затем​ отформатированную таблицу и​​ выберем ячейку со​​Insert​

Работа с макросами вȎxcel

  • ​ в нее свои​​ новее — откройте​ макрос.:​ выделенных диапазон (Selection)​ Access.​ сумма издержек;​ способом, через использование​shag = 0.1​
  • ​пишут, скажем так, набросок​​ придётся научиться писать​ в Excel 2007​ языке) .​ нажмите​ нажмите​ сформировать итоги в​ значением​(Вставить) и из​​ макросы?​ выпадающий список​ ​Эта книга​ желтым цветом (код​​Для ввода команд и​IP и IF –​​ «горячих» клавиш Alt​​i = 1​​ кода.​​ код VBA самостоятельно.​
  • ​ и более новых​​Несмотря на то, что​Run​Comma Style​ каждой строке.​больше 20​ раскрывающегося меню выберите​Как создать и добавить​
    • ​Вставить (Insert)​​- макрос сохраняется​ = 6) и​ формирования программы, т.е.​ планируемый и фактически​ и F11. Далее​Do While x1 <​Он выглядит следующим образом:​
    • ​ Тем не менее,​​ версиях:​ не работать с​(Выполнить).​(Формат с разделителями)​Как уже было сказано,​:​ нужный элемент.​ надстройку в Excel​на вкладке​ в модуль текущей​ затем проходит в​
    • ​ создания макроса необходимо​​ уровень издержек.​ записывается следующий код:​ x2 (цикл будет​​Sub program ()​​ запись макроса в​Панель инструментов записи макроса​ макросами в Excel​​Когда макрос начнёт работать,​​ на вкладке​ макрос – это​Когда Вы запустите макрос,​Не знаете, как отобразить​ с кодом VBA.​Разработчик (Developer)​

​ книги и, как​ цикле по всем​ открыть специальное окно​Обозначим теми же буквами,​​Sub program()​ ​ выполняться пока верно​​’Наш код​

Запуск и редактирование макросов

​ Excel – это​ в Excel 2003:​ Online, можно открыть​ Вы увидите, как​​Home​​ код, написанный на​​ цвет шрифта изменится​​ вкладку​Практическое пошаговое руководство​ ​​ следствие, будет выполнятся​ ячейкам, заменяя формулы​ ​ — редактор программ​ но с «приставкой»​​x= Cells(1, 1).Value (эта​

Работа с макросами вȎxcel

  • ​ выражение x1 <​End Sub​ отличны инструмент, при​​Нажмите​ ​ книгу, содержащую макрос,​​ табличный курсор прыгает​
  • ​(Главная).​​ языке программирования VBA.​ ​ на красный:​​Developer​ по созданию надстроек​Выберите объект​ только пока эта​
  • ​ на значения. В​​ на VBA, встроенный​ ​ Itog накопление итога​​ команда присваивает x​ x2)​Обратите внимание, что строка​ помощи которого можно​Стоп​

Создание кнопки для запуска макросов

​ хотя вы не​ с ячейки на​Далее, изменим внешний вид​ Но в Excel​При выполнении второго условия​(Разработчик)? Excel 2007:​ с VBA кодом​

​Кнопка (Button):​ книга открыта в​ конце выводится окно​

​ в Microsoft Excel.​​ по данному столбцу.​ ​ значение содержимого ячейки​​y=x1 + x1^2 +​ «’Наш код» будет​​ создавать первоначальный код,​​, когда выполните все​​ сможете увидеть макросы.​​ ячейку. Через несколько​ заголовков столбцов и​​ Вы можете создать​ ​ шрифт станет синим:​​ жмем на кнопку​

Работа с макросами вȎxcel

​ программ макросов. Управление,​Затем нарисуйте кнопку на​ Excel​ сообщения (MsgBox).​В старых версиях (Excel​ Например, ItogTP –​ с координатами (1,​ 3*x1^3 – Cos(x1)​ выделена другим цветом​

Работа с макросами вȎxcel

​ а в дальнейшем​ действия, которые должны​ Можно редактировать листы​

​ секунд с данными​ строк:​ программу, не написав​Вы также можете использовать​Office​ редактирование и удаление​​ листе, удерживая левую​Новая книга​С ходу ясно, что​​ 2003 и старше)​

Работа с макросами вȎxcel

​ касается столбца таблицы,​ 1))​​Cells(i, 1).Value = x1​​ (зеленым). Причина в​ исправлять или вставлять​​ быть записаны в​​ и сохранение книги​ будут проделаны те​Жирное начертание шрифта.​ и строчки кода,​

Работа с макросами вȎxcel

​ конструкцию​

​>​ надстроек из программы.​ кнопку мыши. Автоматически​- макрос сохраняется​ вот так сразу,​ для этого идем​ озаглавленного, как «планируемый​

  • ​If x>0 Then Cells(1,​ (значение x1 записывается​ апострофе, поставленном в​​ его в более​​ макрос. Теперь код​​ с макросами в​ же операции, что​Выравнивание по центру.​ что мы и​
  • ​Case​Excel Options​Как написать макрос в​​ появится окно, где​​ в шаблон, на​​ без предварительной подготовки​​ в меню​

​ товарооборот».​​ 1).Value = 1​

Работа с макросами вȎxcel

​ в ячейку с​ начале строки, который​ сложные макросы.​ записанного макроса сохранён​ Excel Online. Макросы,​ и при записи​Заливка цветом.​ сделаем прямо сейчас.​

Создание пользовательских функций на VBA

​, чтобы связать выполнение​(Параметры Excel) >​ Excel на языке​ нужно выбрать макрос,​ основе которого создается​ и опыта в​Сервис — Макрос -​Используя введенные обозначения, получаем​If x=0 Then Cells(1,​ координатами (i,1))​ обозначает, что далее​Урок подготовлен для Вас​ в модуле редактора​ останутся в книгу​ макроса. Когда всё​И, наконец, настроим формат​Чтобы создать макрос, откройте​ действия с появлением​Popular​ программирования VBA.​

​ который должен запускаться​ любая новая пустая​ программировании вообще и​ Редактор Visual Basic​ формулы для отклонений.​ 1).Value = 0​Cells(i, 2).Value = y​​ следует комментарий.​​ командой сайта office-guru.ru​ Visual Basic.​

Работа с макросами вȎxcel

​ и откройте книгу​ будет готово, таблица​ итоговых значений.​​View​​ определённого значения в​​(Основные) и ставим​​Как создать макрос​ при щелчке по​ книга в Excel,​​ на VBA в​​(Toos — Macro -​ Если требуется осуществить​If x​ (значение y записывается​Теперь вы можете написать​​Источник: http://www.excelfunctions.net/Record-A-Macro.html​​Если перед началом записи​​ в классическом приложении​​ должна выглядеть так​

Работа с макросами вȎxcel

​Вот так это должно​(Вид) >​ ячейке. В следующем​ галочку напротив опции​ с помощью редактора​ нарисованной кнопке.​ т.е. макрос будет​

Работа с макросами вȎxcel

planetaexcel.ru

Возможности макросов в Excel исходные коды и описание

​ частности, сложновато будет​ Visual Basic Editor)​ расчет в %​End Sub.​ в ячейку с​ любой код и​

Примеры возможностей макросов с описанием кодов

makros-obedineniya-odinakovyh-yacheek​Перевел: Антон Андронов​ макроса включить параметр​ Excel для просмотра​
​ же, как и​ выглядеть в итоге:​Macros​ примере отображается сообщение,​Show Developer tab in​ кода языка программирования​obedinenie-pustyh-yacheek-v-strokah​Создание пользовательских функций или,​ содержаться во всех​ сообразить какие именно​
​.​ имеем (F –​Остается запустить макрос и​ координатами (i,2))​ создать для себя​Автор: Антон Андронов​Относительные ссылки​makros-dlya-obedineniya-pustyh-yacheek​ и редактирования макросов.​ оригинал, который мы​Если Вас все устраивает,​
​(Макросы) >​ содержание которого зависит​ the Ribbon​ Visual Basic for​ как их иногда​ новых книгах, создаваемых​kak-razedinit-obedinennye-yacheyki-makros​ команды и как​В новых версиях (Excel​ P) / P​
​ получить в «Эксель»​i = i +​ новый инструмент в​Немногие знают, что первая​(Use Relative References),​Для изменения макросов:​ форматировали вручную, только​kak-obedinit-stolbcy-makros​ остановите запись макроса.​Record Macro​
​ от указанного возраста​(Показывать вкладку «Разработчик»​ Application? Краткий обзор​ еще называют, UDF-функций​ на данном компьютере​ надо вводить, чтобы​ 2007 и новее)​kak-obedinit-yacheyki-makros​ * 100, а​ нужное значение для​ 1 (действует счетчик);​
​ VBA Excel (примеры​ версия популярного продукта​ то все ссылки​Если у вас есть​ с другими данными​Поздравляем! Вы только что​(Запись макроса…)​kak-zapustit-makros​ человека.​ на ленте). Excel​
​ основных возможностей макросов.​ (User Defined Functions)​ начиная с текущего​ макрос автоматически выполнял​ для этого нужно​ в сумме —​lichnaya-kniga-makrosov​ аргумента.​x1 = x1 +​ программ см. далее).​
​ Microsoft Excel появилась​ в записываемом макросе​ классическое приложение Excel,​ в ячейках.​ самостоятельно записали свой​Дайте своему макросу имя​Sub MacroName() Dim​ 2010: жмем по​sozdat-dobavit-nadstroyku​ 1 2 3​ принципиально не отличается​ момента​
​ все действия, которые,​ сначала отобразить вкладку​ (F – P).​Как вы уже могли​ shag (аргумент изменяется​ Конечно, тем, кто​kak-napisat-makros​ в 1985 году.​ будут создаваться как​ ее можно использовать​
​Как уже не раз​ первый макрос в​ (без пробелов) и​ CellValue As Integer​ вкладке​ 4​ от создания макроса​Личная книга макросов​

exceltable.com

​ например, Вы делаете​

vba excel      Статья предназначена для людей, которые хотят научиться писать программы на встроенном в Excel Visual Basic (VBA), но абсолютно не знают что это такое.

      Для начала — несколько слов о том, зачем это нужно. Средство VBA в MS Excel, представляет нам универсальный инструмент для быстрого и точного решения любых индивидуальных пользовательских задач в MS Excel. Можно конечно использовать и встроенные в MS Excel функции которых великое множество, однако они далеко не всегда решают поставленную задачу.
      Итак, создадим для примера простейшую программу. Будем использовать MS Excel 2007.  Откройте MS Excel, нажмите «сохранить как» и сохраните файл Вашей программы нажав «Книга ексель с поддержкой макросов». 

vba excel
      Далее необходимо включить вкладку «Разработчик». Для этого нажимаем «Параметры Excel» vba excel
       Ставим галочку на «Показывать вкладку «Разработчик» на ленте»

 программа excel
       После этого на ленте, в верху листа Excel, появится вкладка «Разработчик», которая содержит в себе инструменты для создания VBA макросов.
       Представим себе небольшую задачу — допустим мы имеем 2 числа, нам необходимо их сложить и по полученной сумме получить значение из нашей таблицы.
       Поставим в ячейки Листа1 следующие значения:

 программа excel
      на Листе2 заполним ячейки, создав таблицу из 2 столбцов

 программа excel
       Далее перейдем на Лист1, нажмем на вкладку «Разработчик», «Вставить», на ней выберем кнопку программа excel
и нарисуем кнопку на Листе1, после чего сразу появится окно «Назначить макрос объекту», в котором выбираем «Создать» программа excel
       После этого откроется редактор Visual Basic, и автоматически напишется наименование процедуры, которая будет выполняться при нажатии кнопки. Под названием процедуры впишем следующий код:

 vba excel
      Код выполнит следующие действия:

  • MsgBox («Это мой первый Макрос!») — сообщение
  • Переменной q присваивается значение ячейки на Листе1, с координатами 2 строка, 2 столбец
  • Переменной w присваивается значение ячейки на Листе1, с координатами 3 строка, 2 столбец
  • В ячейку на Листе1, с координатами 4 строка, 2 столбец, записывается сумма q+w

vba excel
      Далее получим значение столбца В из Листа2, которое расположено на той же строке где значение нашей суммы совпадает с значением столбца А.
      Введем следующий код:

 vba excel
и получим при нажатии на кнопку следующий результат:

 vba excel
из результата видно что макрос подобрал число из таблицы на Листе2 в соответствии с нашей суммой.
      Не буду вдаваться в подробности этого хитрого кода, так как цель данной статьи — начать писать макросы. Для VBA в интернете есть масса ресурсов, с примерами и разъяснениями, хотя для автоматизации расчетов вполне хватит объема информации в справке.

      Таким образом с помощью VBA возможно автоматизировать расчет любой сложности и последовательности. Справочные таблицы можно копировать из различной литературы на отдельные листы Excel и писать последовательный расчет с кнопками.

Понравилась статья? Поделить с друзьями:
  • Макрос чтобы снять защиту excel
  • Макрос чтобы закрыть excel
  • Макрос часы в excel
  • Макрос счетчика в excel
  • Макрос сцепить если в excel