Создание макросов и пользовательских функций на VBA
Всем нам приходится — кому реже, кому чаще — повторять одни и те же действия и операции в Excel. Любая офисная работа предполагает некую «рутинную составляющую» — одни и те же еженедельные отчеты, одни и те же действия по обработке поступивших данных, заполнение однообразных таблиц или бланков и т.д.
Использование макросов и пользовательских функций позволяет автоматизировать эти операции, перекладывая монотонную однообразную работу на плечи Excel. Другим поводом для использования макросов в вашей работе может стать необходимость добавить в Microsoft Excel недостающие, но нужные вам функции.
Например функцию сборки данных с разных листов на один итоговый лист, разнесения данных обратно, вывод суммы прописью и т.д. Макрос — это запрограммированная последовательность действий (программа, процедура), записанная на языке программирования Visual Basic for Applications (VBA). Мы можем запускать макрос сколько угодно раз, заставляя Excel выполнять последовательность любых нужных нам действий, которые нам не хочется выполнять вручную. В принципе, существует великое множество языков программирования (Pascal, Fortran, C++, C#, Java, ASP, PHP. ), но для всех программ пакета Microsoft Office стандартом является именно встроенный язык VBA. Команды этого языка понимает любое офисное приложение, будь то Excel, Word, Outlook или Access.
Что такое VBA
Способ 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)
:
К сожалению, интерфейс редактора VBA и файлы справки не переводятся компанией Microsoft на русский язык, поэтому с английскими командами в меню и окнах придется смириться:
Макросы (т.е. наборы команд на языке VBA) хранятся в программных модулях. В любой книге Excel мы можем создать любое количество программных модулей и разместить там наши макросы. Один модуль может содержать любое количество макросов. Доступ ко всем модулям осуществляется с помощью окна Project Explorer в левом верхнем углу редактора (если его не видно, нажмите CTRL+R). Программные модули бывают нескольких типов для разных ситуаций:
-
Обычные модули — используются в большинстве случаев, когда речь идет о макросах. Для создания такого модуля выберите в меню Insert — Module. В появившееся окно нового пустого модуля можно вводить команды на VBA, набирая их с клавиатуры или копируя их из другого модуля, с этого сайта или еще откуда нибудь:
Обычный макрос, введенный в стандартный модуль выглядит примерно так:
Давайте разберем приведенный выше в качестве примера макрос 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)
Затем необходимо настроить параметры записываемого макроса в окне Запись макроса:
После включения записи и выполнения действий, которые необходимо записать, запись можно остановить командой Остановить запись (Stop Recording) .
Запуск и редактирование макросов
Управление всеми доступными макросами производится в окне, которое можно открыть с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или — в старых версиях Excel — через меню Сервис — Макрос — Макросы (Tools — Macro — Macros) :
- Любой выделенный в списке макрос можно запустить кнопкой Выполнить(Run) .
- Кнопка Параметры(Options) позволяет посмотреть и отредактировать сочетание клавиш для быстрого запуска макроса.
- Кнопка Изменить(Edit) открывает редактор Visual Basic (см. выше) и позволяет просмотреть и отредактировать текст макроса на VBA.
Создание кнопки для запуска макросов
Чтобы не запоминать сочетание клавиш для запуска макроса, лучше создать кнопку и назначить ей нужный макрос. Кнопка может быть нескольких типов:
Кнопка на панели инструментов в Excel 2003 и старше
Откройте меню Сервис — Настройка (Tools — Customize) и перейдите на вкладку Команды (Commands) . В категории Макросы легко найти веселый желтый «колобок» — Настраиваемую кнопку (Custom button) :
Перетащите ее к себе на панель инструментов и затем щелкните по ней правой кнопкой мыши. В контекстом меню можно назначить кнопке макрос, выбрать другой значок и имя:
Кнопка на панели быстрого доступа в Excel 2007 и новее
Щелкните правой кнопкой мыши по панели быстрого доступа в левом верхнем углу окна Excel и выберите команду Настройка панели быстрого доступа (Customise Quick Access Toolbar) :
Затем в открывшемся окне выберите категорию Макросы и при помощи кнопки Добавить (Add) перенесите выбранный макрос в правую половину окна, т.е. на панель быстрого доступа:
Кнопка на листе
Этот способ подходит для любой версии Excel. Мы добавим кнопку запуска макроса прямо на рабочий лист, как графический объект. Для этого:
- В Excel 2003 и старше — откройте панель инструментов Формы через меню Вид — Панели инструментов — Формы (View — Toolbars — Forms)
- В Excel 2007 и новее — откройте выпадающий список Вставить (Insert) на вкладке Разработчик (Developer)
Выберите объект Кнопка (Button) :
Затем нарисуйте кнопку на листе, удерживая левую кнопку мыши. Автоматически появится окно, где нужно выбрать макрос, который должен запускаться при щелчке по нарисованной кнопке.
Создание пользовательских функций на VBA
Создание пользовательских функций или, как их иногда еще называют, UDF-функций (User Defined Functions) принципиально не отличается от создания макроса в обычном программном модуле. Разница только в том, что макрос выполняет последовательность действий с объектами книги (ячейками, формулами и значениями, листами, диаграммами и т.д.), а пользовательская функция — только с теми значениями, которые мы передадим ей как аргументы (исходные данные для расчета).
Чтобы создать пользовательскую функцию для расчета, например, налога на добавленную стоимость (НДС) откроем редактор VBA, добавим новый модуль через меню Insert — Module и введем туда текст нашей функции:
Обратите внимание, что в отличие от макросов функции имеют заголовок Function вместо Sub и непустой список аргументов (в нашем случае это Summa). После ввода кода наша функция становится доступна в обычном окне Мастера функций (Вставка — Функция) в категории Определенные пользователем (User Defined) :
После выбора функции выделяем ячейки с аргументами (с суммой, для которой надо посчитать НДС) как в случае с обычной функцией:
Источник: www.planetaexcel.ru
Язык Microsoft Visual Basic for Applications
Язык Visual Basic for Applications (VBA) – достаточно популярная в последние годы среда разработки приложений, которая является мощным программным средством, позволяющим реализовать широкий спектр практических задач. Основным её достоинством является оптимальное сочетание простоты использования, доступности и большого набора разнообразных возможностей, которые позволяют охватить все основные направления деятельности разработчика прикладных программ.
Историческая справка
Начало 90-х годов прошлого века ознаменовалось тем, что наметилась отчетливая тенденция включения в приложения, которые были предназначены для конечного пользователя, а также средства внутреннего программирования, с помощью которых можно было настраивать и адаптировать эти пакеты под конкретные условия применения.
Решим твою учебную задачу всего за 30 минут
Попробовать прямо сейчас
В конце 1993 г. корпорация Microsoft объявила о создании на основе языка VB новой универсальной системы программирования для прикладных программ, которая в дальнейшем получила название Visual Basic for Applications (VB для приложений). Вполне естественно, что реализацию данного проекта корпорация начала с собственных офисных пакетов:
- Первая версия VBA 1.0 появилась в составе MS Office 4.0, однако не во всех программах, а только в Excel 4.0 и Project 6.0. В других же приложениях — Word 6.0 и Access 2.0 — были собственные варианты Basic. Кроме того, VBA 1.0 очень отличался, несмотря на то, что имел ряд существенных преимуществ, от используемой на тот момент универсальной системы VB 3.0.
- Качественный перелом произошел в конце 1996 года, когда был выпущен MS Office 97 с единой средой программирования VBA 5.0, включенной в приложения Word, Excel и PowerPoint. Кроме того, VBA 5.0 использовал языковый механизм и среду разработки, которые использовала и универсальная система VB 5.0.
- В состав MS Office 2000 вошла уже версия VBA 6.0, использовавшаяся на тот момент уже в 6 приложениях: Word, Excel, PowerPoint, Access, Outlook, Frontpage.
Подобрали для написания работы по теме «Язык Microsoft Visual Basic for Applications»
Готовые курсовые работы и рефераты
Консультации эксперта по предмету
Помощь в написании учебной работы
В настоящее время корпорация Microsoft занимает твердую позицию, согласно которой пакет MS Office выступает не просто как набор прикладных программ, а как комплексная платформа для создания всевозможных бизнес-приложений, которые позволяют решить широкий круг специализированных задач пользователей всего мира. Именно поэтому и появился в его составе специальный выпуск для разработчиков приложений — Developer Edition. Помимо всего прочего, в это же время VBA активно продвигают в качестве отраслевого стандарта для управления программируемыми приложениями.
В наши дни уже многие ведущие мировые фирмы-разработчики прикладных программ (в их рядах и российские) приобрели лицензии на VBA и включают его в состав разрабатываемых приложений. Таким образом, осваивая механизм программирования VBA, реализованный в пакетах офисных программ, которые установлены на компьютерах нынешних пользователей, они смогут использовать полученные знания и навыки при работе с десятками и сотнями других программ, в том числе и тех, которые еще не созданы. Начиная с составлений простейших макрокоманд, при большом желании можно в рамках одного инструментария стать хорошим профессионалом по разработке программных систем любой сложности. Лет двадцать назад во всем мире насчитывалось не более 2 млн. программистов. Сегодня же их десятки миллионов, и из них, вероятнее всего, не менее 70% используют хотя бы один из инструментов VB или VBA.
Достоинства и недостатки
Замечание 1
Одним из достоинств языка VBA является сравнительно легкое освоение, благодаря которому приложения может создавать даже пользователь, который никогда в своей жизни не писал программы на профессиональном уровне. К особенностям VBA относится выполнение скрипта именно в среде офисных приложений.
Кроме достоинств имеются конечно же и недостатки. Одним из них является проблема обратной совместимостью разных версий. Эта проблема в основном связана только с тем, что код программы обращается к функциональным возможностям, появившимся в новой версии программного продукта, которые отсутствовали в прежней версии. Также к недостаткам можно отнести и достаточно высокую открытость кода, что чревато случайными изменениями, однако все же многие программные продукты (например, Microsoft Office) дают возможность пользователю применять шифрование исходного кода и устанавливать пароль на его просмотр.
По мнению большинства программистов, этому языку не нужно уделять особого внимания по той лишь причине, что он ломает мышление программистов и не позволяет перейти после него на другие, по их мнению, нормальные языки как Python.
Возможности VBA ничуть не уступают другим системам программирования Windows и постоянно растут. К основным возможностям VBA относятся:
- реализация максимально гибкого и удобного интерфейса для приложения;
- создание различных разнообразных многоуровневых и всплывающих меню;
- обработка событий мыши и клавиатуры;
- работа с графикой.
Разработчикам предоставляется возможность использовать в программе как стандартные, так и встроенные диалоги, необходимые для организации обратной связи с пользователем. Кроме этого, приложение осуществляет работу с таймером, обрабатывает файлы и каталоги на жестком диске, а также предоставляет доступ к базам данных. В среде VBA разработчик может внедрять в приложение различные объекты, которые, в свою очередь, поддерживаются другими программами. Помимо этого, в среде VBA имеется возможность реализации связи одного или нескольких компьютеров, на которых установлено созданное приложение, с сетью Internet.
Язык программирования VBA представляет собой реализацию объектно-ориентированного написания программ в системе MS Office. Синтаксис языка VBA основывается на правилах языка Basic, который, в свою очередь, является одним из самых ранних языков программирования. В процессе написания программы на VBA происходит последовательное заполнение параметров различных объектов.
Язык VBA – это мощное программное средство, посредством которого осуществляется обработка файловой информации. Но наиболее привлекательным является то, что с помощью данного языка представляется возможным заносить результаты вычислений и любые данные в приложения Office. Таким образом, можно отметить, что в настоящее время большое внимание уделяется программированию на VBA.
Описание языка VBA и системы программирования в Office
Операционная система Windows корпорации Microsoft обладает поразительно удобным интерфейсом, а также разнообразными интеллектуальными средствами, освобождающими пользователя от рутинной работы, которая характерна для других операционных систем. Единственным и незаменимым дополнением этой операционной системы являются программные продукты Microsoft Office, с помощью которых даже начинающий пользователь способен с легкостью создать идеально оформленную документацию, а также выполнить финансовые, инженерные и другие расчеты, создать различные базы данных и работать с ними, разработать и оформить всевозможные презентации. Операционная система Windows совместно с программными продуктами Microsoft Office, покорили весь мир.
Microsoft интегрировала в свои офисные программы и в операционную среду поразительно простой и необычайно эффективный язык программирования Visual Basic for Applications. С помощью него в настоящее время каждый пользователь способен автоматизировать работу любого приложения и адаптировать ее для решения конкретных практических задач, не только добавив интерфейсу новую функциональность, но и удалив из него ненужные для данного приложения элементы, тем самым обеспечив ему дополнительную стабильность.
С помощью VBA пользователь может по своему вкусу изменить внешний вид или способ применения имеющихся средств приложения и кроме того добавить свои, абсолютно новые возможности. Приведем несколько примеров, когда VBA окажется наиболее оптимальным вариантом использования:
- Возможность, которую приходится часто использовать, почему-то оказывается спрятанной в глубинах диалоговых окон. Не плохо было бы поместить соответствующую команду в виде кнопки на панель инструментов, чтобы без проблем в нужный момент вызывать команду одним щелчком. А лучшим вариантом будет появление кнопки только в том случае, когда команда действительно понадобилась.
- Пользователю довольно часто приходится сталкиваться с повторением одного и того же набора команд. Вероятнее всего, он предпочел бы иметь программу, запоминающую все нужные для этого шаги, которая запускала бы сразу всю последовательность действий одной командой.
- В случае, когда вашему программному обеспечению просто не хватает нескольких возможностей, которые, ну просто, очень необходимы. Почему бы вам не добавить недостающие команды самостоятельно?
Замечание 2
VBA позволяет выполнить любую из перечисленных выше модификаций приложения. Кроме того, с его помощью вы будете иметь возможность создавать свои законченные и полностью работоспособные программы.
Источник: spravochnick.ru
VBA Excel: что это такое, как пользоваться объектами и применить макросы
Первая версия Excel появилась в 1985 году. С этого времени ПО продолжать развиваться, в результате чего появился vba excel. Что это такое и для чего можно использовать, стоит рассмотреть более подробно.
Что это такое
При создании программы Excel использовался специальный технический язык Visual Basic for Application. Первоначально его устанавливают в процессор Microsoft. Технические специалисты отмечают, что данный язык легко изучить и использовать в работе.
Однако существует нюанс, о котором должен знать каждый пользователь: не все версии могут быть совместимы. Это связано с тем, что функционально VBA связана с новой версией продукта, при этом в старых программах таких возможностей нет. Кроме того, код открыт для посторонних пользователей, поэтому его легко изменить. Однако посредством IBM Lotus Symphony можно задать комбинацию пароля, чтобы просматривать документы смог только один пользователь.
Объекты, коллекции, свойства и методы
Для пользователей, которые планируют в будущем использовать VBA, необходимо разобраться с ключевыми понятиями и узнать, что такое объект. Обратившись к программе Excel, здесь в данном случае объектами являются:
Все объекты создают определенную иерархию, в которой подчиняются друг другу. Имеющийся Application должен соответствовать продукту Excel. Так, например, чтобы использовать определенную ячейку, пользователь должен задать определенный путь к ней.
Коллекция – это группа объектов, принадлежащих к тому же классу с форматом записи ChartObjects. Отдельные составляющие также принадлежат категории объектов.
Еще одно понятие, с которым важно ознакомиться, это «Свойства». Каждый объект имеет обязательную характеристику. Для Range, как правило, Value и Formula.
Методы – это задаваемые команды, которые требуется осуществить пользователю. Если требуется заполнить команду в форме VBA, то в обязательном порядке нужно проставлять точки, отделяя объект. В качестве примера: Cells (1,2).Select. Данная команда предполагает, что требуется выбрать ячейку под номером 1.2. Если значение было задано неверно или потребуется удалить все содержимое ячейки, то необходимо задать команду Selection.ClearContents.
Как начать этим пользоваться
Для начала необходимо создать файл в формате Excel и сохранить на рабочем столе. Важно, чтобы файл поддерживал макросы. Далее нужно перейти к VB. Для этого потребуется зажать комбинацию из клавишей «Alt+F1». Потом требуется следовать инструкции:
- Рядом с Excel в верхней части можно найти специальное меню;
- Из перечисленных функций выбрать «Mudule»;
- Сохранить и нажать на изображение с надписью «floppy disk»;
- Вписываем код.
Формат кодировки должен выглядеть в таком формате: Sub program-‘код-End Sub.
Внимание: строка, в которой должен прописываться код будет выделена зеленым цветом. Перед тем, как прописывать кодировку, крайне важно поставить апостроф. Он означает, что после шифра должен проставляться определенный комментарий.
Это все, что понадобиться, чтобы сформировать инструмент VBA. Для пользователей, которые имеют представление о том, как использовать Visual Basic, весь процесс займет минимум времени. Но процесс также не предполагает сложностей для тех пользователей, которые ранее не сталкивались с решением подобной задачи.
Макросы в Excel
Макросом называют специальный код, который записывается на специальном языке VBA. Их можно создавать в ручном или автоматическом режиме. Для этого потребуется использовать специальный макроредактор.
Программа, которая записывает каждое действие, произведенное в программе Excel, преобразует их в специальный язык VBA. Код, который создается посредством макрорекодера, легко поддается редактированию и удобен в использовании. Важно отметить, что макрос можно использовать неограниченное количество раз. Даже если пользователь не знает, каким образом нужно обращаться с VBA, он может максимально автоматизировать весь процесс.
Чтобы самостоятельно создать макрос, рекомендуется использовать следующую инструкцию:
- Кликнуть правой кнопкой мыши на созданную ленту и жать на функцию настройки. С его помощью можно открыть параметры диалогового окна:
- В открывшемся окне появится параметр настройки ленты. В правой части находятся основные функции, где потребуется поставить галочку напротив разработчика:
- Подтвердить действие, нажимая кнопку «ОК».
Если все действия выполнены в правильной последовательности, в основной меню должно появиться дополнительное меню Разработчик, как указано на скриншоте:
Чтобы воспользоваться расширенными функциями таблицы Excel, стоит попробовать самостоятельно записать макрос. Он будет самостоятельно выбирать ячейку и формировать в ней заданный текст. Для этого потребуется сделать следующие шаги:
- Перейти в созданную вкладку разработчика;
- В меню кода выбрать функцию записи. Должно открыться отдельное окно
- В окне записи потребуется задать имя для будущего макроса. Однако важно отметить, что важно выполнить несколько правил, чтобы правильно задать имя: нельзя использовать пробелы. Поэтому лучше задавать слитное название, даже если оно состоит из двух слов. Также разрешается использовать нижний дефис.
- Если возникает необходимость, то можно задать комбинацию из клавиш. В таком случае нужно одновременно зажать следующее сочетание: «Ctrl+Shift+N». Важно запомнить, что данная комбинация при использовании способна отменить абсолютно любые заданные действия посредством горячих клавиш. Если ранее для автоматического сохранения использовалось сочетание «Ctrl+S», то более для этой функции его нельзя использовать.
- Перед тем, как сохранить документ, нужно проверить, правильно ли задана опция. Это необходимо для того, чтобы удостовериться в том, что макрос является составляющей выбранной книги. Он будет присутствовать даже при автоматическом сохранении или если потребуется с кем-то поделиться файлом.
- Как дополнение можно придумать описание к файлу. Чаще всего это требуется, если пользователь планирует создать несколько макросов подряд, чтобы в будущем не запутаться, какой из них за что отвечает;
- Остается нажать «OK». После этого макрос начнет автоматически записывать информацию в книге. Если нужно остановить запись, то кликаем по соответствующей кнопке рядом с меню разработчика;
- Выбираем другую ячейку, например А2;
- Вводим любой текст и нажимает кнопу «Enter»
- Далее приостанавливаем запись.
На этом все действия выполнены и остается использовать макрос при необходимости. Стоит отметить, что с его помощью каждый пользователь сможет понять, каким образом устроен макрорекодер.
Чтобы ознакомиться с полученными результатами, достаточно перейти в VB в Excel:
- Открыть вкладку разработчика
- В меню кодировки открыть Visual Basic.
Чтобы перейти к кодировке VBA или его редактор, можно использовать комбинацию из клавиш Alt и F11. Для ознакомления, каким образом выглядит сам редактор, представлен следующий скриншот:
Меню Visual Basic
Когда записывается новый макрос, должны происходить следующие изменение:
- Появление нового модуля
- Появление набранного названия
- Добавляется новая функция.
Чтобы показалось окно ввода, остается дважды кликнуть на модуль, чтобы появилась следующая запись, как показано на скриншоте:
Важно принять к сведению, что самостоятельно записанный код эффективен в определенных областях применения (финансовой или математической). Кроме того, зачастую макрорекодер может к имеющемуся инструментарию предлагать совершенно новые и ненужные функции.
Функции VBA
На примере инструкций, которые были приведены ранее, можно сделать вывод о том, что использование VBA и макросов не предполагает больших сложностей. Общее количество функций, которые были созданы специально для программирования на языке VBA, составляет 160 возможностей. Все функции подразделяются на несколько групп:
Решение задачи с использованием программирования на VBA
Чтобы просчитать возможные отклонения, требуется ввести обозначения и получить заданную формулу. Для того, чтобы просчитать процентное обозначение потребуется использовать следующую формулу: (F-P)разделить на P*100, суммарное значение должно получиться при действии (F-P). Полученные результаты рекомендуется сразу вводить в таблицу.
Чтобы сформировать в надлежащем виде прогноз, нужно применить следующую формулу: ItogP=ItogP + P, ItogF=ItogF+ F. Для просчета отклонений требуется использовать (ItogF – ItogP) / ItogP * 100. Как только все действия будут выполнены, значения вносятся в ячейки, а значит присваивать переменные нет необходимости.
Чтобы осуществить запуск, в первую очередь требуется сохранить созданную книгу. Также стоит обращать внимание и на другие условия. Так, например, добавлять строки придется каждый раз после введения новых обозначений в таблице.
Если требуется создать таблицу для отчетности, то по данной функции достаточно кликнуть все раз. Как только работа подойдет к завершению, нужно нажать на закончить, а затем переключиться в соответствующее окно программы Excel.
Заключение
Выше были изучены все аспекты, каким образом можно использовать макросы, для чего нужен VBA в Excel и каким образом его применять. Стоит отметить, что благодаря простым инструкциям, научиться этим действиям сможет любой начинающий пользователь, который ранее не имел возможность изучать Visual Basic. Подобные возможности помогают в организации финансовой отчетности и проведения математических функций.
Источник: activation-keys.ru
VBA Excel. Начинаем программировать с нуля
Эта статья предназначена для тех, кто желает научиться программировать в VBA Excel с нуля. Вы увидите, как это работает, и убедитесь, что не все так сложно, как кажется с первого взгляда. Свою первую программу вы напишите за 7 простых шагов.
Знакомство с редактором VBA
В левой части редактора VBA расположен проводник проекта, в котором отображены все открытые книги Excel. Верхней строки, как на изображении, у вас скорее всего не будет, так как это – личная книга макросов. Справа расположен модуль, в который записываются процедуры (подпрограммы) с кодом VBA. На изображении открыт модуль листа, мы же далее создадим стандартный программный модуль.
- Нажмите кнопку «Module» во вкладке «Insert» главного меню. То же подменю откроется при нажатии на вторую кнопку после значка Excel на панели инструментов.
После нажатия кнопки «Module» вы увидите ссылку на него, появившуюся в проводнике слева.
Первая программа на VBA Excel
Добавляем на стандартный модуль шаблон процедуры – строки ее начала и завершения, между которыми мы и будем писать свою первую программу (процедуру, подпрограмму).
- Откройте стандартный модуль двойным кликом по его ссылке в проводнике. Поместите в него курсор и нажмите кнопку «Procedure…» во вкладке «Insert» главного меню. Та же ссылка будет доступна при нажатии на вторую кнопку после значка Excel на панели инструментов.
В результате откроется окно добавления шаблона процедуры (Sub).
- Наберите в поле «Name» имя процедуры: «Primer1», или скопируйте его отсюда и вставьте в поле «Name». Нажмите кнопку «OK», чтобы добавить в модуль первую и последнюю строки процедуры.
Имя процедуры может быть написано как на латинице, так и на кириллице, может содержать цифры и знак подчеркивания. Оно обязательно должно начинаться с буквы и не содержать пробелы, вместо которых следует использовать знак подчеркивания.
- Вставьте внутрь шаблона процедуры следующую строку: MsgBox «Привет» .
Функция MsgBox выводит информационное сообщение с указанным текстом. В нашем примере – это «Привет».
- Проверьте, что курсор находится внутри процедуры, и запустите ее, нажав клавишу «F5». А также, запустить процедуру на выполнение можно, нажав на треугольник (на изображении под пунктом меню «Debug») или на кнопку «Run Sub/UserForm» во вкладке «Run» главного меню редактора VBA Excel.
Если вы увидели такое сообщение, как на изображении, то, поздравляю – вы написали свою первую программу!
Работа с переменными
Чтобы использовать в процедуре переменные, их необходимо объявить с помощью ключевого слова «Dim». Если при объявлении переменных не указать типы данных, они смогут принимать любые доступные в VBA Excel значения. Комментарии в тексте процедур начинаются со знака «’» (апостроф).
Пример 2
Присвоение переменным числовых значений:
Источник: vremya-ne-zhdet.ru
Программа vba что это
Visual Basic for Applications (VBA, Visual Basic для приложений) является интерпретируемым языком. Как и следует из его названия, VBA близок к Visual Basic, но может выполняться лишь в рамках приложения, в которое он встроен. Кроме того, он может использоваться для управления одним приложением из другого, с помощью OLE Automation (например, таким образом можно создать документ Word на основе данных из Excel). В будущем Microsoft планирует заменить VBA на Visual Studio Tools for Applications (VSTA) — инструментарий расширения функциональности приложений, основанный на Microsoft.NET [15].
Популярность VBA и Microsoft Office как средства разработки офисных приложений стремительно растёт. В результате все больше прикладных программистов — профессиональных разработчиков офисных приложений — переходят на использование платформы Microsoft Office [14].
Главная причина преимущества языка VBA — он встроен в приложения Office (и не только), и код на языке VBA можно хранить внутри документов приложений Office — документах Word, книгах Excel, презентациях PowerPoint и т.п. Конечно же, этот код можно запускать оттуда на выполнение, поскольку среда выполнения кода VBA (на программистском сленге — хост) встроена внутрь этих приложений.
В настоящее время VBA встроен во все главные приложения MS Office — Word, Excel, Access, PowerPoint, Outlook, FrontPage, InfoPath; в другие приложения Microsoft, например, Visio и M icrosoft Project; в более чем 100 приложений третьих фирм, например, CorelDraw и CorelWordPerfect Office 2000, AutoCAD и т.п.
У VBA есть также множество других преимуществ:
VBA — универсальный язык. Его использование создавать полноценные приложения на Visual Basic (поскольку эти языки — близкие родственники); использовать все возможности языка VBScript (это — вообще урезанный VBA). В результате в вашем распоряжении будут универсальные средства для создания скриптов администрирования Windows, для создания Web-страниц (VBScript в Internet Explorer), для создания Web-приложений ASP, для применения в пакетах DTS и заданиях на MS SQL Server, для создания серверных скриптов Exchange Server и многое-многое другое [13].
VBA изначально был ориентирован на пользователей, а не на профессиональных программистов (хотя профессионалы пользуются им очень активно), поэтому создавать программы на нем можно очень быстро и легко. Кроме того, в Office встроены мощные средства, облегчающие работу пользователя: подсказки по объектам и по синтаксису, макрорекордер и т.п.
При создании приложений на VBA не приходится заботиться о установке и настройке специальной среды программирования и наличии нужных библиотек на компьютере пользователя — MS Office есть практически на любом компьютере.
Несмотря на то, что часто приложения VBA выполняются достаточно медлено, они нересурсоемки и очень хорошо работают, например, на сервере терминалов. Но, как правило, для программ на VBA особых требований про производительности и нет: для написания игр, драйверов, серверных продуктов они не используется. Практика показывает, что проблемы с производительностью VBA-приложений — это не проблемы VBA, а проблемы баз данных, к которым они обращаются. Если проблемы действительно в VBA, то всегда есть возможность написать важный код на C++ и обращаться к нему как к обычной библиотеке DLL или встраиваемому приложению (Add-In) для Word, Excel, Access и т.п. [15].
Программы на VBA по умолчанию не компилируются и поэтому вносить в них исправления очень удобно. Не нужно разыскивать исходные коды и перекомпилировать программы. В среде программистов-профессионалов считается, что самый короткий путь «с нуля» и программ типа «Hello, World» до профессиональных программ, которые делаются под заказ — именно через связку Office — VBA (а конечно, не через C++, Java или Delphi).
VBA использует тот же редактор и интерфейс программирования, что и приложения Microsoft Office, поэтому обмен данными рисунков с другими пользователями быстр и прост. Еще одно преимущество VBA заключается в том, что в мире существует более 3 миллионов программистов на VBA, которые могут заняться расширением функций AutoCAD.
Электронные таблицы Microsoft Excel — чрезвычайно мощная программа, позволяющая достигать нужного результата различными способами даже, в самых, казалось бы, простых ситуациях. Excel предлагает богатые возможности для построения сложных формул. Вооружившись несколькими математическими операторами и правилами ввода значений в ячейки, можно превратить рабочий лист в мощный программируемый калькулятор.
Excel имеет несколько сотен встроенных функций, которые выполняют широкий спектр различных вычислений. Функции — это специальные, заранее созданные формулы, которые позволяют легко и быстро выполнять сложные вычисления, производить финансовый и статистический анализ.
С помощью Excel можно создавать сложные диаграммы для данных рабочего листа. Использование макросов в рабочих листах Excel, позволяет вести работу с пользователем в интерактивном режиме и выполнять громоздкие и рутинные операции всего несколькими щелчками кнопки мыши.
Пакет Microsoft Excel 2007 еще более упростил работу с электронными таблицами и сделал ее комфортной и понятной даже для неподготовленных пользователей [17].
Структура программ на VBA
Программы на VBA хранятся в проектах. Проект содержит модули различных типов, а модули включают различные процедуры. Проект может содержать несколько модулей. Имеется два типа модулей:
— стандартные модули — это модули, в которых можно описать доступные во всем проекте процедуры;
— модули класса содержат описание объекта, который является членом класса. Процедуры, написанные в модуле класса, используются только в этом модуле. Среди модулей класса выделяют модули форм и отчетов, которые связаны с конкретной формой или отчетом. Модули форм и отчетов часто содержит процедуры обработки событий, которые срабатывают в ответ на событие в форме или отчете. Процедуры обработки событий используются для управления поведением форм и отчетов и их реакцией на действия пользователя типа щелчка мыши на кнопке.
Модули содержат описания и процедуры — наборы описаний и инструкций, сгруппированных для выполнения. Существует три типа процедур:
— процедура Sub — набор команд, с помощью которого можно решить определенную задачу. При ее запуске выполняются команды процедуры, а затем управление передается в приложение пакета MS Office или процедуру, которая вызвала данную процедуру;
— процедура Function (функция) также представляет собой набор команд, который решает определенную задачу. Различие заключается в том, что такие процедуры обязательно возвращают значение, тип которого можно описать при создании функции;
— процедура Property используется для ссылки на свойство объекта. Данный тип процедур применяется для установки или получения значения пользовательских свойств форм и модулей [17].
Для создания модуля в любом приложении MS Office необходимо выбрать команду меню СервисМакросРедактор Viual Basic. В окне «Проект» необходимо щелкнуть правой кнопкой мыши на любом элементе либо в окне редактора выбрать команду меню Вставка, а далее тип модуля. При выборе формы (Userform) для перехода к ее модулю используется команда ВидПрограмма или кнопка «Программа» в окне «Проект».
Самое начало модуля называется общей областью, в которой располагаются общие описания, например, типа данных, используемого по умолчанию (DefТип), инструкция Option Explicit, требующая явного описания всех используемых в модуле переменных, а также описания общих (глобальных) для всех модулей и для данного модуля переменных [18].
Источник: studbooks.net