Как писать макросы в Excel
![](http://officeassist.ru/wp-content/uploads/15457/tmp-2e4f5d1b-6160-425f-b540-e80858f9c68f.jpg)
![vba excel](http://officeassist.ru/wp-content/uploads/15457/tmp-2e4f5d1b-6160-425f-b540-e80858f9c68f.jpg)
Статья предназначена для людей, которые хотят научиться писать программы на встроенном в Excel Visual Basic (VBA), но абсолютно не знают что это такое. Для начала — несколько слов о том, зачем это нужно. Средство VBA в MS Excel, представляет нам универсальный инструмент для быстрого и точного решения любых индивидуальных пользовательских задач в MS Excel
. Можно конечно использовать и встроенные в MS Excel функции которых великое множество, однако они далеко не всегда решают поставленную задачу. Итак, создадим для примера простейшую программу. Будем использовать MS Excel 2007. Откройте MS Excel, нажмите «сохранить как» и сохраните файл Вашей программы нажав «Книга ексель с поддержкой макросов».
![vba excel](http://officeassist.ru/wp-content/uploads/15457/tmp-973208fb-d178-4ab0-b7ce-380f306f565e.jpg)
Далее необходимо включить вкладку «Разработчик». Для этого нажимаем «Параметры Excel»
![vba excel](http://officeassist.ru/wp-content/uploads/15457/tmp-e9f240e7-95ce-4f86-96f2-13dc5128767d.jpg)
Ставим галочку на «Показывать вкладку „Разработчик“ на ленте»
![программа excel](http://officeassist.ru/wp-content/uploads/15457/tmp-a9cc935f-48df-49ca-bd93-be120b51478d.jpg)
После этого на ленте, в верху листа Excel, появится вкладка «Разработчик», которая содержит в себе инструменты для создания VBA макросов. Представим себе небольшую задачу — допустим мы имеем 2 числа, нам необходимо их сложить и по полученной сумме получить значение из нашей таблицы. Поставим в ячейки Листа1 следующие значения:
![программа excel](http://officeassist.ru/wp-content/uploads/15457/tmp-6b959318-4b7a-4f0f-84b8-5d63d3f7b628.jpg)
на Листе2 заполним ячейки, создав таблицу из 2 столбцов
![программа excel](http://officeassist.ru/wp-content/uploads/15457/tmp-79ceeca5-c792-40a8-a94f-548751cdf5a2.jpg)
Далее перейдем на Лист1, нажмем на вкладку «Разработчик», «Вставить», на ней выберем кнопку
![программа excel](http://officeassist.ru/wp-content/uploads/15457/tmp-9a9ab96d-ac2a-4519-86ce-af3f450bd72d.jpg)
и нарисуем кнопку на Листе1, после чего сразу появится окно «Назначить макрос объекту», в котором выбираем «Создать»
![программа excel](http://officeassist.ru/wp-content/uploads/15457/tmp-76c3f44f-c067-4823-8e70-aeb25d995a10.jpg)
После этого откроется редактор Visual Basic, и автоматически напишется наименование процедуры, которая будет выполняться при нажатии кнопки. Под названием процедуры впишем следующий код:
![vba excel](http://officeassist.ru/wp-content/uploads/15457/tmp-268e4f4a-b280-4dd0-9e1e-fbcf903e1efc.jpg)
Код выполнит следующие действия:
- MsgBox («Это мой первый Макрос!») — сообщение
- Переменной q присваивается значение ячейки на Листе1, с координатами 2 строка, 2 столбец
- Переменной w присваивается значение ячейки на Листе1, с координатами 3 строка, 2 столбец
- В ячейку на Листе1, с координатами 4 строка, 2 столбец, записывается сумма q+w
![vba excel](http://officeassist.ru/wp-content/uploads/15457/tmp-548fceb4-98a3-4c60-bb49-70f0feac95f4.jpg)
Далее получим значение столбца В из Листа2, которое расположено на той же строке где значение нашей суммы совпадает с значением столбца А. Введем следующий код:
![vba excel](http://officeassist.ru/wp-content/uploads/15457/tmp-3a2fbffd-6bc7-4032-ad7f-14e3b48b2610.jpg)
и получим при нажатии на кнопку следующий результат:
![vba excel](http://officeassist.ru/wp-content/uploads/15457/tmp-6b805755-f6c3-433c-87f5-65cf7838e3f8.jpg)
из результата видно что макрос подобрал число из таблицы на Листе2 в соответствии с нашей суммой. Не буду вдаваться в подробности этого хитрого кода, так как цель данной статьи — начать писать макросы. Для VBA в интернете есть масса ресурсов, с примерами и разъяснениями, хотя для автоматизации расчетов вполне хватит объема информации в справке.
Таким образом с помощью VBA возможно автоматизировать расчет любой сложности и последовательности. Справочные таблицы можно копировать из различной литературы на отдельные листы Excel и писать последовательный расчет с кнопками.