КАТАЛОГ ТОВАРОВ

Срок доставки товара в течении 1-3 дней !!!

 

ПОЛЬЗОВАТЕЛЬ
КОРЗИНА

Как написать макрос в Excel на языке программирования VBA. Как написать в excel программу


Учимся работать с макросами в эксель, и программировать на VBA

Макросы в Exel - помощь в созданииВ 1982 году появился дедушка современного Exel. Это был фактически простой сумматор, позволяющий быстро и без ошибок сводить табличные расчёты по строкам и столбцам. Тогда ещё трудно было представить, что через тридцать лет он до неузнаваемости изменит представление об автоматизации обработки большинства экономических расчётов.

Вводная часть – зачем нужны макросы

С 1993 года в разработке приложений для компьютеров началась революция, когда был создан объединённый продукт Microsoft Office, где Exel стал играть одну из ключевых ролей. Именно в это время появляется мощное дополнение VBA, позволяющее автоматизировать задачи Exel. Табличный процессор получил возможность не только предоставлять удобный интерфейс для умного пересчёта ячеек, но и стал полноценным продуктом для решения прикладных задач.

Рассмотрим на простых примерах как создавать программы. Автоматизация или программирование работы машины любит точные определения:

  • Работаем в приложении Office 365 для дома. При этом рассматриваются те возможности, которые не принципиальны при переходе на работу в расширенные версии. Например, для малого бизнеса, где наиболее полноценно раскрываются возможности табличного процессора и макросы excel 2010.
  • При описании будет использоваться интерфейс Exel 2016.
  • VBA, диалект предметно ориентированного языка Visual Basic применяемый при работе с приложениями Microsoft Office.
  • Макрос или макрокоманда — программный алгоритм действий, определённый пользователем. Кроме того, это понятие применяется для символьного имени книги-шаблона, в которой хранится код действий.
  • Используется только функциональность, предусмотренная базовым вариантом табличного процессора, использующего макросы для excel 2013.
  • Предполагается, что читатель знаком с возможностями табличного процессора, но никогда не использовал макрос в excel 2007.

Рассмотрим, как создать макрос в excel 2007 на примере решения очень простой задачи:

Таблица учета с применением макросовВ течение шести дней с понедельника по субботу на склад поступал цемент. Работали разные кладовщики. Информация вносится в компьютер последовательно не сортируя.

Задача — используя информацию кладовщиков (см. рис.1) сделать сводную таблицу за неделю. Посчитать общий вес поступившего цемента и по каждому кладовщику отдельно.

Записываем первый свой макрос

Шаблон таблицы - работаем в ЭксельНа странице «Сводный» делаем шаблон исходной таблицы (смотреть рисунок).

Единственное, что надо знать для написания программы в excel — как включить макросы. По ряду существенных причин по умолчанию они отключены. На панели вкладок находим закладку «Вид» и активируем её. Если в базовой версии такой вкладки нет, то добавляем. На всплывающей панели активируем функцию «Макросы». Активируем кнопку «Запись Макроса». Теперь любое действие с таблицей будет фиксироваться и записываться в виде специальных кодов.

Выбираем имя, например «Склад».

  • Как производится активация макроса в ЭксельНазначаем сочетание клавиш, активирующих программу – «Ctrl +Я».
  • Выбираем сохранить в таблице – «Эта книга».
  • Описание – «Сортировка данных кладовщиков».
  • Подтверждаем клавишей OK (результат действий приведён на рис.).

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

Используя стандартные операции и формулы заполняем шаблон (на рис. ниже приведена получившаяся форма).

Завершаем запись. Теперь при всех изменениях исходных данных, нажатием клавиш «Ctrl +Я», будут меняться значения в таблице-шаблоне. Даже на очень простом примере видно, как написать макрос в excel 2007.

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

  • Работа макроса в Exel - что и какXLSM, в отличие от стандартного варианта XLSX, таблица с таким расширением поддерживает макрокоманды.
  • XLSB обычно используется для больших таблиц и хранит информацию в бинарном формате.
  • XLTM для идентификации шаблонов с поддержкой макрокоманд.

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

Предостережения

Формат статьи не позволяет раскрыть все возможности такого мощного инструмента как Макросы и тем более работы с кодами языка VBA, на котором прописываются все действия по работе с таблицами. Желающим использовать макросы в excel самоучитель Office 365, без сомнений, будет полезен. Там же можно найти примеры макросов excel. Здесь будут даны только некоторые наиболее общие понятия.

Чтобы посмотреть VBA программный код в меню открывается вкладка «Вид» и активируется «Макросы». Появится новое окно где будут видны имена всех записанных макросов. Выбирается нужный и с помощью клика «Изменить» смотрим коды Visual Basic for Applications. При определённом опыте непосредственно в этом окне можно менять последовательность действий. Более того, наиболее сложные макросы пишутся именно в кодах VBA. Но это уже другая история. Отметит только, что средства языка позволяют автоматизировать расчёт таблиц и построение графиков любой сложности и последовательности. Экспортировать данные в Exel с документов различного формата, включая интернет-ресурсы.

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

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

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

komp.guru

Как написать макрос в Excel на языке программирования VBA

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

Написание макросов в Excel

Код макроса Excel написанный на языке Visual Basic for Application (VBA), а его выполняет инструмент приложения, к которому он присоединен. Большинство этих инструментов не доступно на уровне окна программы Excel. Как написать макрос.

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

Чтобы написать макрос:

  1. Откройте рабочую книгу Excel, в которой необходимо использовать макрос: «РАЗРАБОТЧИК»-«Код»-«Visual Basic». Или нажмите комбинацию горячих клавиш ALT+F11.
  2. Перед началом работы в редакторе следует сделать простую настройку. Выберите инструмент в редакторе Visual Basic: «Tools»-«Options». И на вкладке «Editor» активируйте опцию «Require Variable Declaration». Это позволит реализовать автоматическое заполнение инструкций Options Explicit в начале каждого ново созданного кода. А в поле ввода «Tab Width:» укажите значение 2 вместо 4-х. Это позволит уменьшить ширину кода. Данная настройка редактора распространяется на все листы, но в границах одной рабочей книги.
  3. Выберите инструмент: «Insert»-«Module» чтобы создать новый стандартный модуль для макросов. В появившемся окне модуля под текстом Option Explicit введите следующий код макроса:
  4. Sub MyMakros()Dim polzovatel As StringDim data_segodnya As Datepolzovatel = Application.UserNamedata_segodnya = NowMsgBox "Макрос запустил пользователь: " & polzovatel & vbNewLine & data_segodnyaEnd Sub
  5. Нажмите на кнопку в редакторе «Run Macro» или клавишу F5 на клавиатуре. В появившемся окне «Macros» нажмите на кнопку «Run», чтобы посмотреть результат работы макроса.

Примечание. Если в главном меню отсутствует закладка «РАЗРАБОТЧИК», тогда ее необходимо активировать в настройках: «ФАЙЛ»-«Параметры»-«Настроить ленту». В правом списке «Основные вкладки:» активируйте галочкой опцию «Разработчик» и нажмите на кнопку ОК.



Возможности макросов в Excel

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

Читайте также: Как работать с макросами в Excel 2010 без программирования кода

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

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

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

Excel предоставляет большой и изобильный арсенал инструментов для хранения и обработки огромного количества информации с данными. Хотя для самой универсальной аналитической программы Excel – хранение данных само по себе менее интересно, чем возможность их обрабатывать, структурировать и анализировать с презентацией в отчетах. Для этих целей служит сильнейший аналитических инструмент по обработке данных такой как «Сводные таблицы». Но и его можно еще более усовершенствовать с помощью макросов. И тогда возможности сводных таблиц не знают границ.

exceltable.com

Как написать макрос в Excel — создание, запись и редактирование VBA макросов в Excel

макросы excel

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

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

По умолчанию, вкладка, отвечающая за управление и навигацию  макросов в Excel, скрыта. Чтобы активировать данную опцию перейдите по вкладке Файл в группу Параметры. В появившемся диалоговом окне Параметры Excel, перейдите по вкладке Настройка ленты, в правом поле со списком ставим маркер напротив вкладки Разработчик. Данные действия актуальны для версий Excel 2010 и старше.

отображение вкладки разработчик

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

вкладка разработчик excel

Написание макросов в Excel

Во вкладке Разработчик в группе Код, нажмите кнопку Запись макроса. Появиться диалоговое окно Запись макроса, которая запрашивает некоторую информацию о будущем записываемом коде. Если вы впервые создаете макрос, можете просто нажать кнопку ОК. С данного момента Excel будет фиксировать каждое действие пользователя в модуле VBA, будь то ввод данных, форматирование или создание диаграмм. Чтобы остановить запись макроса, нажмите кнопку Остановить запись, которая находится в той же группе Код.

отключить макросы в excel

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

Теперь вы можете посмотреть список всех созданных макросов, нажав на кнопку Макрос, находящуюся в группе Код. В появившемся диалоговом окне вы можете дать более описательные имена своим кодам или задать сочетания клавиш, которые бы запускали тот или иной макрос. Альтернативным вариантом запуска данного окна является нажатие клавиш Alt + F8.

список макросов

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

Поздравляю! Вы написали свой первый макрос. Логичным будет проверить теперь, какой же код сгенерировал нам Excel. Сгенерированный код написан на языке VBA (Visual Basic for Applications). Чтобы увидеть его, нужно открыть Редактор VB (VBE), который запускается нажатием клавиш Alt + F11 или кнопкой Visual Basic на вкладке Разработчик.

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

редактор макросов

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

Для просмотра кода, щелкните по ветке Modules в окне проектов и дважды щелкните по появившейся ветке Module1. Редактор откроет окно с кодом, как изображено на картинке.

код в редакторе макросов

Здесь можно редактировать сгенерированный код, который был записан при работе в Excel. К примеру, вам требуется заполнить определенный столбец значениями от 1 до 10. У вас уже есть первые три шага, которые вводят значения 1, 2 и 3 в первые три ячейки столбца А. Нам необходимо дописать оставшиеся семь шагов.

Если вы посмотрите на приведенный выше код, вы увидите, что макрос определенным образом структурирован. Сначала приложение перемещает курсор на ячейку с помощью команды Range("A1").Select, затем редактирует его содержимое с помощью ActiveCell.FormulaR1C1 = "1". Таким образом, для оставшихся шагов мы можем повторить эти действия, меняя адрес ячейки и значение, которое вы хотите записать в эту ячейку. Например, чтобы задать ячейке A4 значение 4, вы должны написать:

12

Range("A4").SelectActiveCell.FormulaR1C1 = "4"

И повторить аналогичные шаги для оставшихся значений.

После того, как вы закончите редактирование, сохраните книгу. Запустить макрос вы сможете нажатием кнопки F5, либо, вернувшись в рабочую книгу Excel, перейти по вкладке Разработчик в группу Код -> Макросы и выбрать из списка, интересующий вас макрос.

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

Увеличение скорости выполнения макросов Excel

Пока все хорошо. Давайте разберем пару хитростей, которые помогут ускорить выполнение макроса. Рассмотрим в качестве примера фрагмент кода, приведенный выше. Современные компьютеры отработают рассматриваемый код так быстро, что вы даже не заметите этого. Но что если вам необходимо выполнить операцию 50000 раз. Это займет какое-то время. Если макрос, написанный вами, исчисляется сотнями строк, ускорить выполнение кода можно путем обрезки части процессов, который не используется во время исполнения макроса.

Использование команды Application.ScreenUpdating

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

12345678910

Sub Макрос1()Application.ScreenUpdating = FalseRange("A1").SelectActiveCell.FormulaR1C1 = "1"Range("A2").SelectActiveCell.FormulaR1C1 = "2"Range("A3").SelectActiveCell.FormulaR1C1 = "3"Application.ScreenUpdating = TrueEnd Sub

Команда Application.ScreenUpdating говорит Excel, чтобы он прекратил выводить пересчитанные данные на экран, а выдал готовые значения в конце выполнения кода.

Использование команды Application. Calculation

Вторая хитрость заключается в отключении автоматических вычислений. Давайте я поясню. Каждый раз, когда пользователь или процесс обновляет ячейку, Excel пытается пересчитать все зависимые от нее ячейки. Так скажем, если ячейка, которую пытается обновить макрос, влияет на 10000 остальных ячеек, Excel будет пытаться пересчитать их все до того, как закончится выполнение кода. Соответственно, если существует целый ряд влияющих ячеек, пересчет может значительно замедлить выполнение кода. Чтобы этого не происходило, вы можете установить команду Application. Calculation в начале кода, которая переключит пересчет формул в ручной режим, а затем вернуть автоматическое вычисление в конце макроса.

123456789101112

Sub Макрос1()Application.ScreenUpdating = FalseApplication.Calculation = xlCalculationManualRange("A1").SelectActiveCell.FormulaR1C1 = "1"Range("A2").SelectActiveCell.FormulaR1C1 = "2"Range("A3").SelectActiveCell.FormulaR1C1 = "3"Application.Calculation = xlCalculationAutomaticApplication.ScreenUpdating = TrueEnd Sub

Будьте внимательны, не забудьте переключить данную опцию снова в автоматический режим в конце макроса. В противном случае, вам необходимо будет это сделать в самом Excel, перейдя по вкладке Формулы в группу Вычисление и выбрать Параметры вычислений –> Автоматический.

Избежание выбора ячеек и диапазонов

В режиме автоматической записи макросов, вы можете заметить, что Excel очень часто использует команду выбора ячеек, например, Range(«A1»).Select. В нашем примере, мы использовали данную команду несколько раз, чтобы выбрать ячейку и изменить ее значение. Вы можете избежать этого просто указав адрес ячейки и задав ей необходимое значение (Макрос записал движение курсора от одной ячейки к другой, следовательно, вставил эти шаги. Однако они не являются необходимыми). Так что, более эффективный код будет выглядеть следующим образом.

1234567891011

Sub Макрос1()Application.ScreenUpdating = FalseApplication.Calculation = xlCalculationManualRange("A1").Value = 1Range("A2").Value = 2Range("A3").Value = 3Range("A4").Value = 4Range("A5").Value = 5Application.Calculation = xlCalculationAutomaticApplication.ScreenUpdating = TrueEnd Sub

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

Примеры макросов Excel

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

Макрос вставки строки

123

Sub Макрос1()Rows(2).EntireRow.Insert 'Вставляет строку перед второй строкойEnd Sub

Макрос вставки столбца

123

Sub Макрос1()Columns(3).EntireColumn.Insert 'Вставляет столбец левее 3-го столбцаEnd Sub

Макрос форматирования

123456

Sub Макрос1()'Делает формат ячейки D2 жирным, подчеркнутым и курсивCells(2, 4).Font.Bold = TrueCells(2, 4).Font.Underline = xlUnderlineStyleSingleCells(2, 4).Font.Italic = TrueEnd Sub

Макрос обхода диапазона ячеек

123456

Sub Макрос1()For Each cel In Range(Cells(1, 1), Cells(10, 5))counter = counter + 1cel.Value = counterNext celEnd Sub

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

Вам также могут быть интересны следующие статьи

exceltip.ru

Как в excel создать программу?

Пакет программ «Microsoft Office» состоит из приложений, которые не только содержат в себе огромное количество инструментов для упрощения работы с данными, но и дают возможность пользователю самому задавать определенные параметры и внедрять, так называемые скрипты в уже готовые приложения. Скрипты – это исполняемые коды или также специальные программы, которые можно внедрить в объекты «Microsoft Office» написав их прямо внутри их системы.

Инструкции

1. Для того, чтобы уметь, к примеру, в «Excel» создать программу вовсе не обязательно ходить на специальные курсы, ниже представлена подробная пошаговая инструкция для решения этой задачи.

2. Основы, позволяющие в «Excel» создать программу с помощью инструмента «Visual Basic»:Откройте программу «Microsoft Office Excel».На панели инструментов выбрать вкладку «Сервис» и открыть ее меню. Из меню выбрать «Макрос» и далее пункт «Visual Basic»

3. При необходимости можно создать формы. Для этого выбрать пункт «Insert» и далее «UserForm». Так будет создана форма. Для того, чтобы добавить элементы управления в окно формы, их нужно перетащить мышью из панели «Toolbox». Сохранить форму можно сочетанием клавиш «Ctrl+S»

4. Для создания модулей необходимо выбрать в главном меню вкладку «Insert», а в нем либо пункт под названием «Module» либо или «Class Module».Чтобы добавить в модули классов декларации определенных классов нужно определить их при помощи ключевого слова «Class»

5. Теперь можно добавить методы в определения классов и заготовки процедур и функций в модули. Для объявления функций используется ключевое слово «Function». Далее в скобках указываются имя и параметры.Использование предложения «Dim…As», позволит объявить переменные (глобальные и локальные), а также члены классов. Декларируйте массив, указывая его размерность в скобках

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

7. В соответствии с поставленными задачами изменяйте написанные программы с помощью инструментов «Visual Basic»

qalib.net

Excel - Обучение компьютеру

Создаем фотоальбомВ программе PowerPoint есть возможность создания фотоальбома. Конечно, создавать слайды с картинками, можно и вручную, но на эту работу уйдет много времени. И так, для создания альбома, следует проделать следующие действия:Первым делом запускаем программу. Для этого, переходим в главное меню «Пуск» — «Все программы» — «Microsoft office» — «PowerPoint» и перед нами откроется программа с чистым окном.

Подробнее →

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

Подробнее →

tabl-excel.gifПрограмма Excel, сама по себе, является большой таблицей. То есть, для стандартных работ (подсчет данных, создание графиков и т.п.), создавать дополнительную таблицу не следует. Но, если вы хотите правильно оформить объекты, то рекомендую прочитать несколько советов ниже.

Подробнее →

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

Подробнее →

ячейки в excelПри создании нового документа в программе Excel, иногда требуется сделать из нескольких ячеек одну. О том, как в excel объединить ячейки, вы сможете прочитать ниже.

Подробнее →

Иконка ExcelЗдравствуйте, уважаемые читатели сайта. С этой статьи я начинают раздел, который будет посвящен такой программе, как Microsoft Excel. Основной задачей программы, является создание таблиц, в которые вводятся определенные показатели. Также в Excel, можно с легкостью можно считать различные цифры, введя несколько форму. Обо всем этом, и другом, вы сможете прочитать в этом разделе.

Подробнее →

vertik-tekst-excel.gifВ некоторых случаях, требуется написание текста в вертикальном положении. То есть, нужно сделать так, чтобы буквы шли не по горизонтали, а сверху вниз или снизу вверх. Именно о том, как перевернуть текст в Excel, вы сможете прочитать ниже.

Подробнее →

komputs.ru