Разное

Макросы в эксель для чайников: Макросы в Excel: создание, изменение, выполнение

Содержание

Макросы в Excel: создание, изменение, выполнение

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

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

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

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

Метод 1: Записываем макрос в автоматическом режиме

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

Узнать, как это можно сделать, можно в нашей статье – “Как включать и отключать макросы в Excel”.

После того, как макросы включены, можно перейти к нашей основной задаче.

  1. Переключаемся во вкладку “Разработчик”. В группе инструментов “Код” щелкаем по значку “Записать макрос”.
  2. На экране появится окошко, в котором мы можем выполнить настройки записи. Здесь указывается:
    • имя макроса – любое, но должно начинаться с буквы (не с цифры), не допускаются пробелы.
    • комбинация клавиш, которая будет использоваться для запуска макроса. Обязательной является Ctrl, а вторую мы можем назначить в специальном поле. Допустим, пусть это будет клавиша “r”. Если нужно использовать заглавную букву, нужно зажать клавишу
      Shift
      , которая будет добавлена в сочетание клавиш.
    • место хранения макроса. Стандартно – это будет текущая книга, но, если требуется, можно выбрать новую книгу или личную книгу макросов. В нашем случае оставляем стандартный вариант.
    • При желании можно добавить описание к макросу.
    • По готовности кликаем OK.
  3. Теперь в созданный макрос будут записываться все действия, которые мы будем выполнить в книге. И так до тех пор, пока мы не остановим запись.
  4. Допустим, давайте давайте в ячейке D2 выполним умножение двух ячеек (B2 и B3): =B2*B3.
  5. После того, как выражение готово, нажимаем клавишу Enter, чтобы получить результат. Затем останавливаем запись макроса, нажав на значок “Стоп” (появилась вместо кнопки
    “Записать макрос”
    ) в группе инструментов “Код”.

Запускаем выполнение макроса

Чтобы проверить работу записанного макроса, нужно сделать следующее:

  1. В той же вкладке (“Разработчик”) и группе “Код” нажимаем кнопку “Макросы” (также можно воспользоваться горячими клавишами Alt+F8).
  2. В отобразившемся окошке выбираем наш макрос и жмем по команде “Выполнить”.Примечание: Есть более простой вариант запустить выполнение макроса – воспользоваться сочетанием клавиш, которое мы задали при создании макроса.
  3. Результатом проверки будет повторение ранее выполненных (записанных) действий.

Корректируем макрос

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

  1. Нажимаем кнопку
    “Макросы”
    (или комбинацию Ctrl+F8).
  2. В появившемся окошке выбираем наш макрос и щелкаем “Изменить”.
  3. На экране отобразится окно редактора “Microsoft Visual Basic”, в котором мы можем внести правки. Структура каждого макроса следующая:
    • открывается с команды “Sub”, закрывается – “End Sub”;
    • после “Sub” отображается имя макроса;
    • далее указано описание (если оно есть) и назначенная комбинация клавиш;
    • команда “Range(“…”). Select” возвращает номер ячейки. К примеру, “Range(“B2″).Select” отбирает ячейку B2.
    • В строке “ActiveCell.FormulaR1C1” указывается значение ячейки или действие в формуле.
  4. Давайте попробуем скорректировать макрос, а именно, добавить в него ячейку B4 со значением 3. В код макроса нужно добавить следующие строки:
    Range("B4").Select
    ActiveCell.FormulaR1C1 = "3"
  5. Для результирующей ячейки D2, соответственно, тоже нужно изменить начальное выражение на следующее:
    ActiveCell.FormulaR1C1 = "=RC[-2]*R[1]C[-2]*R[2]C[-2]".Примечание: Обратите внимание, что адреса ячеек в данной строке (ActiveCell.FormulaR1C1) пишутся в стиле R1C1.
  6. Когда все готово, редактор можно закрывать (просто щелкаем на крестик в правом верхнем углу окна).
  7. Запускаем выполнение измененного макроса, после чего можем заметить, что в таблице появилась новая заполненная ячейка (B4 со значением “3”), а также, пересчитан результат с учетом измененной формулы.
  8. Если мы имеем дело с большим макросом, на выполнение которого может потребоваться немало времени, ручное редактирование изменений поможет быстрее справиться с задачей.
    • Добавив в конце команду Application.ScreenUpdating = False мы можем ускорить работу, так как во время выполнения макроса, изменения на экране отображаться не будут.
    • Если потребуется снова вернуть отображение на экране, пишем команду: Application.ScreenUpdating = True.
  9. Чтобы не нагружать программу пересчетом после каждого внесенного изменения, в самом начале пишем команду Application.Calculation = xlCalculationManual, а в конце – Application.Calculation = xlCalculationAutomatic. Теперь вычисление будет выполняться только один раз.

Метод 2: создание макроса вручную

Опытные пользователи Эксель в некоторых случаях предпочитают создавать макросы от начала до конца полностью вручную . План действий следующий:

  1. Во вкладке “Разработчик” нажимаем на значком “Visual Basic” (группа инструментов “Код”).
  2. В результате, на экране появится уже знакомое окно, которое мы рассмотрели выше.
  3. Здесь создается макрос и пишется ее код – полностью вручную.

Заключение

Таким образом, использование макросов в табличном редакторе Эксель позволяет повысить эффективность и скорость работы. Создать их можно, как в автоматическом  режиме, просто записав выполненные действия, так и написав код с нуля. Также, при необходимости, можно внести изменения в ранее созданный макрос и настроить отдельные аспекты его работы.

Автоматизация рутины в 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 2016 для чайников с примерами

Самоучитель по Excel VBA

​Смотрите также​ как создать и​ выберите категорию​Personal.xls​ же может написать​ с оператора​ правой части окна​Макрос для объединения повторяющихся​Выберите в списке макрос,​ выделение ячеек, строк​ записываются в соответствующие​Функции форматирования. Важнейшей из​ в ячейку с​ его ячейке будут​ сам код макроса​сохраняют, нажав на иконку​

​ программирования. К особенностям​Данный учебник является введением​ использовать макрос внутри​Макросы​, которая используется как​ макрос, который делает​Sub​ флажок​ ячеек в таблице​ который требуется удалить,​ или столбцов, а​ ячейки, поэтому нет​ них является Format.​ координатами (1,1) было​ записаны квадраты номера​ находится между строками​ с изображением floppy​ VBA относится выполнение​ в язык программирования​ файла одной рабочей​и при помощи​ хранилище макросов. Все​ то, что Excel​, за которым идет​Разработчик (Developer)​ Excel.​

  • ​ и нажмите кнопку​
  • ​ также выделение ячеек​ необходимости их присваивания​
  • ​ Она возвращает значение​
  • ​ записано:​ соответствующей строки. Использование​
  • ​ Sub Макрос1() и​
  • ​ disk;​
  • ​ скрипта в среде​ Excel VBA (Visual​
  • ​ книги. В случаи,​ кнопки​
  • ​ макросы из​ никогда не умел​
  • ​ имя макроса и​
  • ​. Теперь на появившейся​

​Практический пример и​ «Удалить». ​ путем перетаскивания указателя​ переменным.​

​ типа Variant с​1, если аргумент положительный;​
​ конструкции For позволит​
​ End Sub.​

​пишут, скажем так, набросок​

office-guru.ru>

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

​ офисных приложений.​ Basic for Applications).​ когда необходимо использовать​Добавить (Add)​Personal.xls​ (сортировку по цвету,​ список аргументов (входных​ вкладке нам будут​ пошаговый разбор исходного​К началу страницы​ мыши. Команды для​Перед запуском созданной программы,​ выражением, отформатированным согласно​0, если аргумент нулевой;​ записать ее очень​Если копирование было выполнено,​ кода.​Недостатком программы являются проблемы,​

Что такое VBA

​ Изучив VBA, Вы​ тот же макрос​перенесите выбранный макрос​загружаются в память​ например или что-то​ значений) в скобках.​ доступны основные инструменты​

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

​ в других файлах​ в правую половину​ при старте Excel​ подобное).​ Если аргументов нет,​ для работы с​ автоматического объединения повторяющихся​ простых программ макросов​ удаления макросов доступны​ книгу, например, под​ в описании формата.​Создание такого макроса для​ счетчика.​ А1 в ячейку​Sub program ()​ различных версий. Они​ и выполнять в​ рабочих книг, тогда​ окна, т.е. на​ и могут быть​Если во время записи​ то скобки надо​

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

​ макросами, в том​ одинаковых ячеек в​ необходимых при работе​ на вкладке ленты​ названием «Отчет1.xls».​и пр.​ «Эксель» начинается стандартным​Сначала нужно создать макрос,​ C1, то одна​’Наш код​ обусловлены тем, что​ Excel практически любые​ можно сохранить его​

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

​ способом, через использование​ как описано выше.​ из строк кода​End Sub​ код программы VBA​ задачи. Вы очень​ в личной книге​Кнопка на листе​

​ момент и в​ ошиблись — ошибка​Любой макрос должен заканчиваться​ нам кнопка​ 2 3 4​ каждый день.​

​.​ требуется нажать всего​ и их применение​ «горячих» клавиш Alt​ Далее записываем сам​ будет выглядеть, как​Обратите внимание, что строка​ обращается к функциональным​ скоро поймёте, что​ макросов. У нее​Этот способ подходит для​ любой книге.​ будет записана. Однако​ оператором​Редактор Visual Basic​

​Всем нам приходится -​Макрос для копирования листа​Если вкладка​ 1 раз после​

Как начать

​ позволит значительно расширить​ и F11. Далее​ код. Считаем, что​ Range(“C1”).Select. В переводе​ «’Наш код» будет​ возможностям, которые присутствуют​

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

  • ​End Sub​(Visual Basic Editor)​ кому реже, кому​ в Excel c​Разработчик​
  • ​ ввода заголовочной информации.​
  • ​ сферу применения «Эксель».​ записывается следующий код:​ нас интересуют значения​
  • ​ это выглядит, как​ выделена другим цветом​

​ в новой версии​

​ уйму времени благодаря​

​ – Personal.xlsb. Она​

​ Мы добавим кнопку​

​ выполнения действий, которые​ на кнопку отмены​.​:​ чаще — повторять​ любым количеством копий.​недоступна, выполните перечисленные​ Следует знать и​

​Попробуем перейти к решению​Sub program()​ для 10 ячеек.​ «Диапазон(“C1”).Выделить», иными словами​ (зеленым). Причина в​ продукта, но отсутствуют​ автоматизации повторяющихся задач​ всегда открывается при​ запуска макроса прямо​ необходимо записать, запись​ последнего действия (Undo)​Все, что находится между​К сожалению, интерфейс редактора​ одни и те​

Макросы в Excel

​Практический пример с​ ниже действия, чтобы​ другие правила. В​ более сложных задач.​x= Cells(1, 1).Value (эта​ Код выглядит следующим​ осуществляет переход в​ апострофе, поставленном в​ в старой. Также​ и обеспечить гибкое​ запуске программы Excel,​ на рабочий лист,​ можно остановить командой​ — во время​Sub​ VBA и файлы​ же действия и​ описанием и исходным​ открыть ее.​ частности, кнопка «Добавить​

Пример 1

​ Например:​ команда присваивает x​ образом.​ VBA Excel, в​ начале строки, который​

​ к минусам относят​

  • ​ взаимодействие с другими​
  • ​ только скрыто. Данная​
  • ​ как графический объект.​
  • ​Остановить запись​

​ записи макроса макрорекордером​и​ справки не переводятся​ операции в Excel.​ кодом макроса для​Выберите​ строку» должна нажиматься​Дан бумажный документ отчета​ значение содержимого ячейки​

​For i = 1​ ячейку С1.​ обозначает, что далее​ и чрезмерно высокую​ пользователями.​ книга не является​ Для этого:​(Stop Recording)​ она не просто​

​End Sub​

  • ​ компанией Microsoft на​ Любая офисная работа​
  • ​ одновременного копирования любого​Excel​
  • ​ каждый раз после​ фактического уровня издержек​ с координатами (1,​

​ to 10 Ne

Макросы в эксель для чайников

Самоучитель по Excel VBA

​Смотрите также​Samir_Baku​ и правила, конечно,​ приходится делать с​ кликом. Или нужно​Откройте рабочую книгу Excel,​ для выполнения всех​ создавать качественные макропрограммы​ знать язык программирования​ ниже действия.​ с просроченными счетами.​ импорта данных из​View Macros​ данных, при этом​— для расчёта​Начиная с этого момента,​

​ Вам не требуется​Данный учебник является введением​: Супер справочник, мне​ придётся запомнить.​ помощью макросов, но​ одновременно создать сразу​ в которой необходимо​ этих функций, в​ автоматически:​ «VBA» чтобы создавать​Выберите​ Для этого можно​ него тоже можно​(Макросы).​ макрос остался записан.​ этого значения необходимо​ ВСЕ Ваши действия​ знание языков программирования.​ в язык программирования​ как раз такой​Ну, это как​ я в них​ определенное количество копий​ использовать макрос: «РАЗРАБОТЧИК»-«Код»-«Visual​ том числе открытие​Присваивайте макросам короткие, но​

  • ​ свои макро-программы с​
  • ​Excel​ создать и выполнить​
  • ​ записать в макрос:​
  • ​В открывшемся диалоговом окне​ Нам нужно сохранить​
  • ​ взять именно исходные​
  • ​ с документом записываются:​
  • ​Вам уже любопытно, что​ Excel VBA (Visual​
  • ​ нужен! Спасибо вам​ научиться ездить на​
  • ​ полный «дундук». Даже​ определенного рабочего листа.​
  • ​ Basic». Или нажмите​
  • ​ и соединение всех​

​ содержательные имена. Когда​ помощью инструмента записи​>​ макрос, который быстро​

​Откройте файл шаблона, в​ мы увидим строку​
​ книгу, как шаблон​
​ данные таблицы. Если​

​ изменения ячеек, пролистывание​

office-guru.ru>

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

  • ​ такое макрос, и​
  • ​ Basic for Applications).​ Алексей!​
  • ​ автомобиле: нужно знать,​
  • ​ те макросы которые​ Список потребностей пользователей​
  • ​ комбинацию горячих клавиш​ листов в одну​

​ вы войдете вкус,​ макросов.​Параметры​ применяет такое форматирование​ котором мы сохранили​ с именем нашего​ Excel с поддержкой​ взять среднее значение​ таблицы, даже изменение​ как он работает?​ Изучив VBA, Вы​Я здесь давно,​ что он может​ я нашел здесь​ в автоматизации процессов​ ALT+F11. ​ комбинированную таблицу.​

​ со временем вам​Сначала надо включить панель​>​ к выделенным ячейкам.​ макрос —​ макроса​ макросов, который имеет​ из средних по​ размера окна.​

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

​ Тогда смелей вперёд​ сможете создавать макросы​ просто сейчас зарегистрировался.​ делать, какая финтифлюшечка​ на форуме и​ работы можно продолжать​Перед началом работы в​​Используйте кнопки со стрелками​​ придется создавать много​ разработчика. Для этого​Лента и панель​Windows macOS ​FormatData​FormatData​ расширение​ отдельным строкам, то​Excel сигнализирует о том,​ – далее мы​ и выполнять в​Alex_ST​ для какого действия​ вообще на «планете»​ до бесконечности.​ редакторе следует сделать​

​ для управления курсором​ макросов. При выборе​ в меню «Файл»​.​Действия перед записью макроса​.​. Выберите его и​

  • ​XLTM​
  • ​ результат будет другим.​ что включен режим​ шаг за шагом​
  • ​ Excel практически любые​: Да мне особо​ предназначена, основные правила​ (которые мне написали​
  • ​Если бы не было​
  • ​ простую настройку. Выберите​ (Ctrl + Up,​ в диалоговом окне​

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

​ открываем группу опций​В категории​​   ​​Создайте новый макрос с​ нажмите​.​=MIN(N2:N21)​ записи макроса в​ проделаем весь процесс​ задачи. Вы очень​ не за что…​ эксплуатации (ну и​ другие участники форума,​ возможности создавать макросы​

​ инструмент в редакторе​ и т.п.). Позиционируйте​ их легче найти​ «Параметры». В появившемся​Настроить ленту​Макросы и средства VBA​ именем​Run​Важный момент!​или​

​ двух местах. Во-первых,​​ создания макроса вместе​​ скоро поймёте, что​​Главный респект -​​ движения тоже, конечно,​​ ОГРОМНОЕ ИМ СПАСИБО!),​​ во всех программах,​

​ Visual Basic: «Tools»-«Options».​ курсор, так чтобы​ с короткими и​​ окне «Параметры Excel»​​в списке​

​ находятся на вкладке​LoadData​(Выполнить).​Если Вы сохраните​=МИН(N2:N21)​ в меню​

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

​Когда макрос начнёт работать,​ файл с расширением​=MAX(O2:O21)​​Macros​​Макрос в Microsoft Office​ уйму времени благодаря​ А.Климову​ но ПДД -​ только так как​ MS Office. То​ «Editor» активируйте опцию​ изменить или удалить​ VBA предоставляет вам​ ленты». Обратите внимание​установите флажок​, которая по умолчанию​В процессе записи макроса​ Вы увидите, как​XLTX​

​или​(Макросы) – вместо​ (да, этот функционал​ автоматизации повторяющихся задач​Я, правда не​ это в программировании​

​ они написаны изначально,​ множество операций в​ «Require Variable Declaration».​ данные внутри таблицы​ возможность указа

Написать макрос в excel для новичков чайников

Макросы в Excel для начинающих

Никогда не программировавшим часто трудно сразу читать примеры программ, нужно сначала понять основные принципы, узнать слова, которыми оперируют программисты. Эта страница специально создана для самых начинающих.

Итак, что такое макросы и как их писать?

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

Макросы пишутся на языке VBA – Visual Basic for Applications. Эту аббревиатуру стоит запомнить и использовать в поисковых запросах при поиске нужной информации. VBA – объектно-ориентированный, иерархический язык. Это значит, что управлять придется объектами, подчиненными друг другу. Например, книга Excel – объект. В ней есть листы, на листах есть ячейки. Листы, ячейки, диапазоны и многое другое – это объекты. Подчиненность можно примерно приравнять вложенности – например, ячейка вложена в лист, а лист в книгу.

С объектами можно производить ряд действий, например, открывать, активировать, выделять, удалять, копировать и многое многое другое.

У объектов есть свойства. Например, лист может быть видимым или скрытым, активным или неактивным. У ячейки множество свойств, также всем известных: заливка, границы, цвет и размер текста, выравнивание. Свойства, естественно, можно менять.

Итак, объекты “встроены” друг в друга и имеют различные свойства. Познакомимся с ними поближе.

Не будем здесь приводить весь список, потому что он огромен. Ограничимся тем, что понадобится даже на первом этапе.

Объекты:

Workbook – рабочая книга Excel.

Действия с объектами

Activate – активировать, то есть, “поставить курсор”. Активировать можно книгу, лист, ячейку.

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

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

И отдельно идет действие Paste – вставить. Если за всеми предыдущими действиями стоит слово “что?” (что активировать, что скопировать), то за словом вставить идет вопрос “куда?”. Поэтому и при написании программы нужно указывать не что вставить, а куда вставить.

Кроме выполнения программ Excel может “отдавать информацию” по заданным командам. Вот несколько примеров таких команд:

Sheets.Count – выдает количество листов в книге.

Date – выдает сегодняшнюю дату в формате строки.

Len(“строка”) – выдает длину строки в количестве символов. В этом примере длина равна 6.

Теперь нужно пару слов сказать о типах данных (переменных).

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

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

И числа, и строки можно присваивать переменным.

Можно переопределять значения переменных, например, так:

После этого i=11, а s=”Привет, мир!”.

Тут мы столкнулись с первой операцией над строковыми величинами. Знак & означает, что две строки нужно соединить. Порядок важен: если написать

s=”, мир!” & s, то получим, s=”, мир!Привет”.

Так как переменная s уже хранит в себе кавычки, при её использовании не нужно заключать её в кавычки. Наоборот, именно отсутствие кавычек подскажет Excel’ю, что воспринимать её нужно как переменную, а не как текст. То есть, записи:

дадут одинаковый результат – присвоят переменной h значение “Привет, мир!”

присвоит переменной h значение “s”.

Надо сказать, что объекты в Excel иногда пишут в единственном числе, иногда во множественном. Как запомнить, в каком случае что используется? Можно использовать такое правило: всё, чего в Excel’е много, пишется во множественном числе, всё, что в единственном экземпляре – в единственном. В Excel’е много книг, много листов и очень много ячеек. Все они одинаковы для Excel’я и отличить их можно только по имени или координатам. Поэтому в программе используется множественное число. Например:

Ячейки определяются по координатам: первая – номер строки, вторая – столбца.

поставит курсор в левую верхнюю ячейку.

“Обращаться” к книгам и листам можно не только по имени, но и по номеру. Чаще всего это нужно именно в работе с листами, когда нужно перебрать все. При обращении по номеру, номер не нужно заключать в кавычки

Единственное число используется, например, при ссылке на активную ячейку или лист, потому что, очевидно, активной может быть только одна ячейка или один лист. Например, “запомним” номер строки активной ячейки

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

скопирует верхнюю левую ячейку на активном листе.

скопирует верхняя левую ячейку на листе “Лист1”, независимо от того, активен этот лист сейчас или нет.

После этого вы уже можете писать макросы 🙂

Но лучше прочитайте еще про циклы и условный оператор, а потом про то, что такое коллекции объектов и что они нам могут дать.

Источник: analitica.jimdofree.com

Макросы в Excel для начинающих

Никогда не программировавшим часто трудно сразу читать примеры программ, нужно сначала понять основные принципы, узнать слова, которыми оперируют программисты. Эта страница специально создана для самых начинающих.

Итак, что такое макросы и как их писать?

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

Макросы пишутся на языке VBA – Visual Basic for Applications. Эту аббревиатуру стоит запомнить и использовать в поисковых запросах при поиске нужной информации. VBA – объектно-ориентированный, иерархический язык. Это значит, что управлять придется объектами, подчиненными друг другу. Например, книга Excel – объект. В ней есть листы, на листах есть ячейки. Листы, ячейки, диапазоны и многое другое – это объекты. Подчиненность можно примерно приравнять вложенности – например, ячейка вложена в лист, а лист в книгу.

С объектами можно производить ряд действий, например, открывать, активировать, выделять, удалять, копировать и многое многое другое.

У объектов есть свойства. Например, лист может быть видимым или скрытым, активным или неактивным. У ячейки множество свойств, также всем известных: заливка, границы, цвет и размер текста, выравнивание. Свойства, естественно, можно менять.

Итак, объекты “встроены” друг в друга и имеют различные свойства. Познакомимся с ними поближе.

Не будем здесь приводить весь список, потому что он огромен. Ограничимся тем, что понадобится даже на первом этапе.

Объекты:

Workbook – рабочая книга Excel.

Действия с объектами

Activate – активировать, то есть, “поставить курсор”. Активировать можно книгу, лист, ячейку.

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

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

И отдельно идет действие Paste – вставить. Если за всеми предыдущими действиями стоит слово “что?” (что активировать, что скопировать), то за словом вставить идет вопрос “куда?”. Поэтому и при написании программы нужно указывать не что вставить, а куда вставить.

Кроме выполнения программ Excel может “отдавать информацию” по заданным командам. Вот несколько примеров таких команд:

Sheets.Count – выдает количество листов в книге.

Date – выдает сегодняшнюю дату в формате строки.

Len(“строка”) – выдает длину строки в количестве символов. В этом примере длина равна 6.

Теперь нужно пару слов сказать о типах данных (переменных).

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

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

И числа, и строки можно присваивать переменным.

Можно переопределять значения переменных, например, так:

После этого i=11, а s=”Привет, мир!”.

Тут мы столкнулись с первой операцией над строковыми величинами. Знак & означает, что две строки нужно соединить. Порядок важен: если написать

s=”, мир!” & s, то получим, s=”, мир!Привет”.

Так как переменная s уже хранит в себе кавычки, при её использовании не нужно заключать её в кавычки. Наоборот, именно отсутствие кавычек подскажет Excel’ю, что воспринимать её нужно как переменную, а не как текст. То есть, записи:

дадут одинаковый результат – присвоят переменной h значение “Привет, мир!”

присвоит переменной h значение “s”.

Надо сказать, что объекты в Excel иногда пишут в единственном числе, иногда во множественном. Как запомнить, в каком

Макросы в Excel — Инструкция по использованию

Грамотно организовать процесс работы в эксэле помогут такие объекты, как макросы в Excel.

Рассмотрим более подробно все особенности работы с данными объектами в пакете программ MS Office.

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

Что такое макросы и зачем они нужны

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

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

Их создание и использование поможет существенно сэкономить время и максимально автоматизировать роботу в программе.

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

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

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

С понятием макроса можно также столкнуться в программе Ворд, но в Экселе он имеет несколько преимуществ:

  • Во-первых, он объединяет все инструкции в один полный сценарий выполнения, что позволяет оптимизировать нагрузку на программу и начать работать быстрее;
  • Вызвать его можно с помощью клавиши на панели инструментов или с помощью специальной комбинации клавиш. Это позволит пользователю не отрываться от клавиатуры в процессе работы;

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

  • Практичные советы — Как объединить ячейки в Excel
  • Сводные таблицы Excel — Примеры создания

Создание собственных макросов в Excel 2010, 2007, 2013

Рассмотрим более подробно примеры создания в Excel 2007, 2013:

  • Откройте документ, с которым работаете и для которого хотите создать макрос. К слову, каждая ячейка, над которой производится действие должна быть проработана;
  • Отобразите вкладку разработчика в ленте. Для этого откройте пункт меню «Файл» и откройте параметры, как показано на рисунке;

Параметры программы

  • Затем выберите настройку ленты и добавьте окно разработчика в список основных окон, как это показано на рисунке ниже;

Добавление вкладки разработчика в список основных пользовательских окон на главной панели инструментов программы

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

Клавиша создания макроса во вкладке для разработчика программы ексель

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

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

  • Далее нажмите ОК. Окно закроется и начнется процесс записи. Для остановки записи, нажмите соответствующую клавишу на панели управления;

Процесс записи

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

Как включать и работать с макросами в Excel

Для этого следуйте нижеприведенной инструкции:

  • На вкладке разработчика найдите кнопку под названием «Макросы». Нажмите на нее;

Клавиша для открытия основного окна макросов в программе

  • Выберите нужный вам макрос из списка и нажмите кнопку «Выполнить»;

Запуск выбранного макроса

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

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

Также вам может быть полезным прочтение статей:

  • Как закрепить строку в Excel — Подробные инструкции
  • Выпадающий список в Excel — Инструкция по созданию

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

Макросы создаются с помощью языка программирования под названием Visual Basic (или просто аббревиатура VB).

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

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

Удобнее всего их создавать в таких версиях Ворда: 2007, 2010, 2013.

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

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

Существую разные типы операторов.

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

В то же время практически девяносто процентов всех представленных в программе макрооператоров выполняют функции обычных кнопок и значков на панели инструментов программы.

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

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

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

Макрос их переведет в язык программирования и запомнит все проделанные пользователем команды.

Чтобы удалить макрос, следуйте инструкции:

  • Откройте окно управления с помощью клавиши «Макросы» на главной вкладке разработчика;
  • Выберите необходимый вам объект и в правой части окна нажмите на кнопку удаления;
  • Подтвердите удаление.
  • Удаление пользовательского макроса в программе Excel

    Тематические видеоролики:

    Макросы в Excel. Запись и запуск макросов

    Макросы в Excel — Инструкция по использованию

    Изучение автоматической записи макросов и работа с готовыми макросами в среде MS Excel.

    Макросы в Excel — Инструкция по использованию

    Макросы в Excel: с чего начать

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


     

    « Предыдущая запись Следующая запись » Макросы

    Excel: образцы файлов — макеты

    1. Программное обеспечение
    2. Microsoft Office
    3. Excel
    4. Макросы Excel: образцы файлов

    Автор Майкл Александр

    С каждым макросом в Excel Macros for Dummies book есть связанный образец файл, позволяющий увидеть работу макроса и просмотреть код. Вы также можете использовать образцы файлов для копирования и вставки кода в свою среду (в отличие от ввода каждого макроса с нуля).В общих чертах, вы открываете образец файла, связанный с макросом, переходите в редактор Visual Basic (нажав Alt + F11) и копируете код. Затем вы переходите к своей книге, открываете редактор Visual Basic и вставляете код в соответствующее место.

    Здесь вы можете скачать образцы файлов макросов Excel.

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

    При работе с этими макросами необходимо учитывать следующее:

    • Любой файл, содержащий макрос, должен иметь расширение .xlsm.

      Начиная с Excel 2007, книги Excel получали стандартное расширение файла .xlsx. Файлы с расширением .xlsx не могут содержать макросы. Если ваша книга содержит макросы, а затем вы сохраняете эту книгу как файл . xlsx, ваши макросы удаляются автоматически. Excel предупреждает вас, что содержимое макроса будет отключено при сохранении книги с макросами в виде файла.xlsx файл.

      Если вы хотите сохранить макросы, вы должны сохранить файл как книгу Excel с поддержкой макросов. Это дает вашему файлу расширение .xlsm.

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

      Когда вы открываете книгу, содержащую макросы, в Excel 2010 или более поздней версии, вы видите сообщение желтой полосы под лентой о том, что макросы (активное содержимое) отключены. Чтобы использовать макрос, необходимо выбрать параметр «Включить» на желтой полосе.

    • Вы не можете отменить действия макроса.

      При работе в Excel вы часто можете отменить предпринятые действия, потому что Excel ведет журнал (называемый стеком отмены), в котором записываются ваши последние 100 действий. Однако запуск макроса автоматически уничтожает стек отмены, поэтому вы не можете отменить действия, выполняемые в макросе.

    • Вам нужно настроить макросы, чтобы они соответствовали вашей книге.

      Многие макросы ссылаются на примеры имен листов и диапазонов, которых может не быть в вашей книге.Обязательно замените ссылки, такие как Лист 1 или Диапазон («A1»), на имена листов и адреса ячеек, с которыми вы работаете в своих собственных книгах.

      Если макрос использует каталог, вы должны отредактировать макрос, чтобы он ссылался на ваш целевой каталог. Например, в примере макроса, который печатает все книги в каталоге, макрос указывает на каталог C: Temp. Перед использованием этого макроса необходимо изменить его так, чтобы он ссылался на каталог, содержащий ваши книги.

    Об авторе книги

    Майкл Александр — сертифицированный разработчик приложений Microsoft (MCAD), получивший звание Microsoft MVP за его постоянный вклад в сообщество Excel.Он имеет более чем 15-летний опыт консультирования и разработки решений Office и делится базовыми советами по Access и Excel на своем бесплатном учебном сайте www. datapigtechnologies.com.

    Редактирование и удаление макросов в Excel

    Редактирование макроса

    Если вам нужно внести простые изменения в макрос, например, вставить текст или удалить команду, например, применить определенный формат к ячейке, вы можете отредактировать макрос.Вы редактируете макрос в редакторе Visual Basic, показанном на рисунке 2-6. Элементы редактора Visual Basic описаны в таблице ниже.

    Обозреватель проекта, окно свойств и окно кода появляются при открытии редактора Visual Basic. Поскольку при простом редактировании вам не понадобится окно «Свойства», вы можете закрыть окно «Свойства», а затем развернуть проводник проекта, чтобы просмотреть больше его окон.

    Каждая открытая книга в Excel имеет проект, связанный с ней в Project Explorer. Навигация в Project Explorer похожа на навигацию в Windows Explorer, поскольку они оба имеют иерархическую структуру. Код макроса хранится в модуле, который является просто местом хранения кода, так же как рабочий лист является местом хранения данных в ячейках. Двойной щелчок по модулю в Project Explorer отображает код модуля в окне Code. Редактирование кода Visual Basic аналогично редактированию текста в текстовом редакторе.

    Чтобы получить более подробную информацию об обучении макросам и VBA Excel в Лос-Анджелесе, позвоните нам по телефону 888.815.0604. Наши занятия проходят под руководством инструктора. Также доступны классы Excel для начинающих, среднего и продвинутого уровней.

    Рисунок 2-6: Редактор Visual Basic

    Элемент Описание
    Обозреватель проекта Содержит проекты, в которых хранится код Visual Basic для каждой открытой книги. Каждый проект может содержать папки для объектов (таких как рабочие листы в книге), форм, ссылок и модулей. Вы выбираете модуль, чтобы просмотреть его код, скопировать модули в другие открытые книги и удалить модули.
    Окно кода Отображает код Visual Basic для выбранного модуля в проекте.
    Окно свойств Отображает определенные характеристики объекта, такие как имя объекта или стандартную ширину столбцов.
    Стандартная (макро) панель инструментов Отображает основные инструменты, необходимые для использования редактора Visual Basic.
    Ящик для объектов Содержит раскрывающийся список, из которого можно выбрать желаемый объект, код которого вы хотите просмотреть в окне кода. Если в поле «Объект» отображается «Общие», весь код макросов, связанных с выбранным модулем, отображается в окне «Код».
    Ящик для процедур Содержит раскрывающийся список, из которого можно выбрать макрос для отображения кода макроса в окне кода.
    Шаги для редактирования макроса
    Для отображения редактора Visual Basic:
    1. В группе «Код» на вкладке «Разработчик» нажмите кнопку Visual Basic.
    Для редактирования макроса:
    1. Откройте редактор Visual Basic.
    2. В меню «Инструменты» выберите «Макросы».
    3. В диалоговом окне «Макросы» из раскрывающегося списка «Макросы в» выберите проект, содержащий макрос, который нужно отредактировать.
    4. В поле списка «Имя макроса» выберите нужный макрос.
    5. Выберите «Изменить».
    6. В окне кода внесите необходимые изменения.
    7. Закройте диалоговое окно «Макросы».
    Чтобы закрыть редактор Visual Basic:
    1. В меню «Файл» выберите «Закрыть и вернуться в Microsoft Excel».

    Также посмотрите, как записать макрос.

    Удаление макроса

    Если вам больше не нужен макрос, вы можете его удалить. Удаление нежелательных макросов упрощает просмотр макросов в окне кода в редакторе Visual Basic, а также просмотр макросов в диалоговом окне «Макрос».

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

    Шаги по удалению макроса
    Метод диалогового окна макроса:
    1. Найдите группу «Код» на вкладке «Разработчик» на ленте
    2. В группе «Код» на вкладке «Разработчик» нажмите кнопку «Макросы».
    3. В диалоговом окне «Макрос» в списке «Имя макроса» выберите макрос, который нужно удалить.
    4. Выберите Удалить.
    5. В появившемся окне сообщения выберите Да.
    Метод редактора Visual Basic:
    1. Найдите группу «Код» на вкладке «Разработчик» на ленте.
    2. В группе «Код» на вкладке «Разработчик» нажмите кнопку Visual Basic.
    3. В меню «Инструменты» выберите «Макросы».
    4. В диалоговом окне «Макросы» из раскрывающегося списка «Макросы в» выберите проект, содержащий макрос, который нужно удалить.
    5. В поле списка «Имя макроса» выберите нужный макрос.
    6. Выберите Удалить.
    7. В меню «Файл» выберите «Закрыть и вернуться в Microsoft Excel».

    Использование SUM в макросе (Microsoft Excel)

    Бобу необходимо использовать функцию СУММ в макросе, чтобы найти сумму всех значений в столбце. Проблема в том, что количество суммируемых ячеек будет различным; при одном запуске макроса это может быть 100 ячеек, при следующем — 300, а при третьем — только 25.

    Во-первых, большинство функций рабочего листа (например, СУММ) легко использовать из макроса. Все, что вам нужно сделать, — это поставить перед именем функции «Application.WorksheetFunction». или просто «WorksheetFunction». Таким образом, если вы знаете, что каждый запуск макроса потребует суммирования A1: A100, затем A1: A300 и, наконец, A1: A25, вы можете использовать такой макрос:

    Публичная подписка Sum_Demo ()
        Dim myRange
        Тусклые результаты
        Тусклый бег, пока
    
        Для бега = от 1 до 3
            Выберите Case Run
            Случай 1
                myRange = Рабочие листы ("Лист1"). Диапазон («A1», «A100»)
            Случай 2
                myRange = Worksheets ("Sheet1"). Range ("A1", "A300")
            Случай 3
                myRange = Worksheets ("Sheet1"). Range ("A1", "A25")
            Конец Выбрать
            Результаты = WorksheetFunction.Sum (myRange)
            Диапазон ("B" & Выполнить) = Результаты
        Следующий запуск
    Конец подписки
     

    В этом макросе используется For. . . Следующий цикл для указания различных диапазонов суммирования ячеек. Затем он использует функцию рабочего листа SUM для присвоения суммы переменной результатов, которая (наконец) вставляется в ячейку в столбце B.Результаты первого прогона помещаются в B1, второго — в B2, а третьего — в B3.

    Хотя этот конкретный макрос может быть не таким полезным, он показывает несколько полезных методов, например, как определить именованный диапазон, как использовать функцию СУММ и как вставить сумму в ячейку. Макрос не показывает, как выбрать переменное количество ячеек для суммирования. Для этого лучше всего полагаться на метод End объекта Range. В следующей строке кода показано, как можно заполнить сумму диапазона, начинающегося с A1 и расширяющегося непосредственно перед первой пустой ячейкой в ​​столбце:

    myRange = ActiveSheet.Диапазон ("A1", Диапазон ("A1"). Конец (xlDown))
    Диапазон ("B1") = WorksheetFunction.Sum (myRange)
     

    Обратите внимание, что диапазон (myRange) определяется как начинающийся с A1 и продолжающийся до всего, что возвращает метод End. Затем это суммируется и вставляется в B1.

    ExcelTips — ваш источник экономичного обучения Microsoft Excel. Этот совет (3217) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и более поздних версий) здесь: Использование SUM в макросе .

    Автор Биография

    Аллен Вятт

    Аллен Вятт — всемирно признанный автор, автор более чем 50 научно-популярных книг и многочисленных журнальных статей. Он является президентом Sharon Parq Associates, компании, предоставляющей компьютерные и издательские услуги. Узнать больше о Allen …

    Создание таблиц с определенной шириной столбцов

    Создайте таблицу, и Word вычислит ширину столбцов, разделив горизонтальное пространство на количество столбцов, в которых вы хотите…

    Узнайте больше

    Обнаружение и удаление ссылок

    Excel позволяет ссылаться на данные в других книгах, устанавливая ссылки на эти данные. Если позже вы захотите избавиться от …

    Узнайте больше

    Как заставить Word помнить мои настройки

    Когда-либо имел опыт настройки некоторых параметров конфигурации в Word, только чтобы иметь возможность вернуться к другому …

    Узнайте больше .

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

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