Как в Excel 2010 или 2013 вставить и запустить код VBA – руководство для начинающих
Это краткое пошаговое руководство предназначено для начинающих и объясняет, как вставить код VBA (Visual Basic для приложений) в книгу Excel и как запустить вставленный макрос для выполнения различных задач на листе.
Большинство пользователей не являются гуру Microsoft Office. Они могут не знать всех тонкостей конкретной функции и не смогут ответить на вопрос, чем отличается скорость выполнения макроса VBA в Excel 2010 и 2013. Многие просто используют Excel в качестве инструмента обработки данных.
Предположим, вы хотите изменить данные на листе Excel определенным образом. Мы много искали в Google и нашли макрос VBA, который решает эту проблему. Однако мы плохо знаем VBA. Здесь на помощь приходят пошаговые инструкции, с помощью которых мы можем использовать найденный код.
Вставляем код VBA в книгу Excel
В этом примере мы будем использовать макрос VBA, который удаляет разрывы строк из ячеек текущего листа Excel.
VBA Excel программирование для начинающих — Новый курс VBA (1)
- Открытие книги в Excel.
- Нажмите Alt + F11, чтобы открыть окно редактора Visual Basic
- На панели Project-VBA Project щелкните правой кнопкой мыши имя книги (в верхнем левом углу окна редактора) и выберите «Вставить»> «Модуль» в контекстном меню.
- Скопируйте код VBA (с веб-страницы или другого источника) и вставьте его в правую панель редактора VBA (окно Module1). Совет: как увеличить скорость выполнения макросов?
В начале вашего макрокода VBA должны быть строки:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Если таких строк нет, обязательно добавьте следующие строки в свой макрос, чтобы он работал быстрее (см. Изображение выше):
- В начале кода после всех строк, начинающихся с Dim (если нет строк, начинающихся с Dim, вставьте его сразу после строки Sub):
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
В конце кода перед End Sub:
Application.ScreenUpdating = True
Application.Calculation = xlAutomaticCalculation
Эти строки, как вы можете понять по их содержимому, отключают обновление экрана и пересчет формул книги перед запуском макроса. После запуска кода эти параметры снова активируются. Этот прием приводит к ускорению выполнения макроса с 10% до 500% (да, макрос может работать в 5 раз быстрее, если есть манипуляции с ячейками без лишних перерывов).
- Нажмите Alt + Q, чтобы закрыть окно редактора VBA и вернуться в книгу Excel.
Запускаем макрос VBA в Excel
Нажмите Alt + F8, чтобы запустить только что добавленный макрос. Откроется диалоговое окно «Макрос». В списке «Имя макроса» выберите нужный макрос и нажмите кнопку «Выполнить).
Excel VBA: возможности программирования в Excel
VBA Excel. Начинаем программировать с нуля
Ваше первое знакомство с редактором Excel VBA, созданием процедур (подпрограмм) и написанием простейшего кода, который работает с переменными и ячейками на листе.
Знакомство с редактором VBA
В левой части редактора VBA находится Project Explorer, в котором отображаются все открытые книги Excel. Верхняя строчка, как на картинке, скорее всего у вас не будет, так как это личная книга макросов. Справа — модуль, в котором написаны процедуры (подпрограммы) с кодом VBA. На изображении открыт модуль листа, но дальше мы создадим стандартный программный модуль.
- Нажмите кнопку «Модуль» на вкладке «Вставка» в главном меню. То же подменю откроется, когда вы нажмете вторую кнопку после значка Excel на панели инструментов.
После нажатия на кнопку «Форма» вы увидите ссылку на нее, появившуюся в проводнике слева.
Первая программа на VBA Excel
Добавим в стандартный модуль шаблон процедуры — его начальную и конечную строки, между которыми мы напишем нашу первую программу (процедуру, подпрограмму).
- Откройте стандартную форму, дважды щелкнув ее ссылку в проводнике. Поместите в него курсор и нажмите кнопку «Процедура…» на вкладке «Вставить» главного меню. Эта же ссылка будет доступна, когда вы нажмете вторую кнопку после значка Excel на панели инструментов.
В результате откроется окно для добавления шаблона процедуры (Sub).
- Введите имя процедуры в поле «Имя»: «Primer1» или скопируйте его отсюда и вставьте в поле «Имя». Нажмите кнопку ОК, чтобы добавить в форму первую и последнюю строки процедуры.
Название процедуры может быть написано как латиницей, так и кириллицей, может содержать цифры и знак подчеркивания. Он должен начинаться с буквы и не содержать пробелов, вместо которых должен использоваться символ подчеркивания.
- Вставьте следующую строку в шаблон процедуры: MsgBox «Hello” .
Функция MsgBox отображает информационное сообщение с указанным текстом. В нашем примере это «Привет».
- Убедитесь, что курсор находится внутри процедуры, и выполните ее, нажав клавишу «F5». Кроме того, вы можете запустить процедуру, щелкнув треугольник (на изображении под пунктом меню «Отладка») или кнопку «Запустить Sub / UserForm» на вкладке «Выполнить» главного меню редактора Excel VBA.
Если вы видели сообщение, подобное изображенному на картинке, поздравляем — вы написали свою первую программу!
Источник: excel-home.ru
Организация ввода и вывода сообщений
Подобно многим языкам программирования Visual Basic for Application (VBA) позволяет создать три типа процедур: Sub, Function, Property.
Процедура – это набор описаний и инструкций, сгруппированных для выполнения.
Процедура Sub – набор команд, с помощью которого можно решить определенную задачу. При ее запуске выполняются команды процедуры, а затем управление передается в приложение или процедуру, которая вызвала процедуру Sub. Записываемые макросы автоматически описываются как процедуры Sub, любой макрос или другой код VBA, который просто выполняет определенный набор действий, используя приложения Office, и обычно является процедурой Sub.
Процедура Function (или функция) также представляет собой набор команд, который решает определенную задачу. Различия заключается в том, что процедуры данного типа обязательно возвращают значение. При создании процедуры Function можно описать тип данных, который возвращает функция. Функции обычно используются при выполнении вычислений, операциями с текстом, либо возвращают логические значения.
Процедура Property используется для ссылки на свойство объекта. Данный тип процедур применяется для установки или получения значения пользовательских свойств форм и модулей. Процедуры облегчают хранение и применение информации, если использовать их сначала для сохранения в свойстве этой информации, а затем для ее чтения.
Структура процедуры
При записи процедуры требуется соблюдать правила ее описания. Упрощенный синтаксис для процедур Sub является следующим:
Sub имя ([аргументы]) Инструкции End Sub
Синтаксис описания функций очень похож на синтаксис описания процедуры Sub, однако, имеются некоторые отличия:
Function имя ([аргументы]) [As Тип] Инструкции имя = выражение End Function
Использование операторов
Процедуры состоят из операторов – наименьших единиц программного кода. Как правило, операторы занимают по одной строке программного кода, и в каждой строке обычно содержится только один оператор, но это не обязательно. В VBA имеется четыре типа операторов: объявления, операторы присваивания, выполняемые операторы и параметры компилятора.
Объявления
Объявление – это оператор, сообщающий компилятору VBA о намерениях по поводу использования в программе именованного объекта (переменной, константы, пользовательского типа данных или процедуры). Кроме того, объявление задает тип объекта и обеспечивает компилятору дополнительную информацию о том, как использовать данный объект. Объявив объект, можно использовать его в любом месте программы.
Переменные – это именованные значения, которые могут изменяться во время выполнения программы.
Рассмотрим пример объявления переменной.
С помощью оператора Dim объявляется переменная с именем МоеЛюбимоеЧисло и объявляется, что значение, которое она будет содержать, должно быть целым:
Dim МоеЛюбимоеЧисло As Integer
Константы представляют собой именованные значения, которые не меняются.
Оператор Constant создает строковую константу (текст) с именем НеизменныйТекст, представляющую собой набор символов Вечность:
Constant НеизменныйТекст = «Вечность»
Оператором Type объявляется пользовательский тип данных с именем Самоделкин, определяя его как структуру, включающую строковую переменную с именем Имя и переменную типа Date с именем ДеньРождения. В данном случае объявление займет несколько строк:
Type Самоделкин Имя As String ДеньРождения As Date End Type
Объявление Private создает процедуру типа Sub с именем СкрытаяПроцедура, говоря о том, что эта процедура является локальной в смысле области видимости. Завершающий процедуру оператор End Sub считается частью объявления.
Private Sub СкрытаяПроцедура () инструкции End Sub
Оператор присваивания
Оператор присваивания = приписывают переменным или свойствам объектов конкретные значения. Такой оператор всегда состоят из трех частей: имени переменной, или свойства, знака равенства и выражения, задающего нужное значение.
Оператор = присваивает переменной МоеЛюбимоеЧисло значение суммы переменной ДругоеЧисло и числа 12.
МоеЛюбимоеЧисло = ДругоеЧисло + 12
В следующей строке кода, записывается, что свойству Color (Цвет) объекта AGraphicShape присваивается значение Blue (Синий) в предположении, что Blue является именованной константой:
AGraphicShape.Color = Blue
В следующеей строке, чтобы задать значение переменной КвадратныйКорень, для текущего значения переменной МоеЛюбимоеЧисло вызывается функция Sqr — встроенная функция VBA вычисления квадратного корня:
КвадратныйКорень = Sqr (МоеЛюбимоеЧисло)
В VBA выражением называется любой фрагмент программного кода, задающий некоторое числовое значение, строку текста или объект. Выражение может содержать любую комбинацию чисел или символов, констант, переменных, свойств объектов, встроенных функций и процедур типа Function, связанных между собой знаками операции (например, + или *). Несколько примеров выражений:
Выражение
Значение
10 (в предположении, что Xn = 2)
Источник: itteach.ru
Как писать программы в excel vba
Что такое макрос?
Макрос (другие названия: код, программа, подпрограмма, процедура, скрипт) — это набор команд (или одна команда), выполняющих заданные пользователем при написании кода макроса действий. Правильно называть все макросы Процедура, но в разговорном русском закрепилось название Макрос, поэтому мы будем далее все процедуры называть макросами.
Зачем нужны макросы?
Макросы используются в двух случаях:
Если необходимо автоматизировать часто повторяющиеся действия;
Если задачу невозможно решить средствами Excel.
На каком языке программирования пишутся макросы?
До выхода Excel 95 разработчиками использовался язык макросов под названием XLM (Excel Macro). Начиная с версии Excel 95 стал использоваться язык VBA (Visual Basic for Applications). Этот язык используется и по сей день, но в будущем Microsoft планирует заменить его на VSTA (Visual Studio Tools for Applications) — инструментарий расширения функциональности приложений, основанный на Microsoft .NET.
В каких программах работают макросы?
Макросы поддерживаются во многих программах пакета MS Office. Помимо Excel, это — Word, Access, Outlook, PowerPoint и т.д. Кроме офисного пакета, макросы на VBA работают, например, в программах AutoCad и CorelDraw.
Безопасно ли использовать макросы?
Нет, опасность существует. На VBA можно написать вредоносный код. Однако на практике такое встречается настолько редко, что этой возможностью можно пренебречь. Если Вы не уверены в том, как именно работает макрос, то лучше его не запускать. Для того что бы макросы не запускались сами, в MS Office по умолчанию макросы отключены.
Как разрешить макросы?
Для версий Excel вышедших после Excel 2003:
Если отображена вкладка «Разработчик», то так:
Для версий Excel вышедших до Excel 2007:
Где можно писать макросы?
Для написания макросов используется редактор VBE (Visual Basic Editor).
Попасть в него можно несколькими способами. Например, нажав сочетание клавиш Alt+F11 или кликнув правой кнопкой по ярлыку любого листа и в появившемся контекстном меню выбрать пункт Исходный текст.
Где хранятся макросы?
Текст макроса хранится в специальном контейнере, называемым модуль. Модули бывают четырёх типов:
Стандартный модуль (или просто модуль);
Модуль листа;
Модуль книги;
Модуль класса
Какие бывают макросы?
Макросы бывают трёх видов: макрос — программа (или просто макрос), макрос — функция (или функция определённая пользователем) и макрос — свойство. Отличаются они тем, что макрос-программа может выполнять любые предусмотренные VBA действия, макрос-функция может только возвращать результат, аналогично функциям листа Excel, а макрос — свойство определяет заданный пользователем класс.
Макрос — программа всегда выглядит так:
Sub Название_макроса() текст макроса (иначе называется телом макроса) End Sub
Макрос — функция всегда выглядит так:
Function Название_макроса() текст макроса End Function
Макрос — свойство всегда выглядит так:
Property Get/let Название_макроса() текст макроса End Property
Порядок вывода комментариев:
Спам-сообщение скрыто. Показать
0
Спам
1 Disskort (05.05.2016 14:34) [ Материал]
Полезная тема!
Вообще раздел с «макросами» очень интересный. хотелось бы видеть дальнейшее развитие данного раздела
Источник: www.excelworld.ru