Как писать программы в excel vba

Как в 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)

  1. Открытие книги в Excel.
  2. Нажмите Alt + F11, чтобы открыть окно редактора Visual Basic
  3. На панели Project-VBA Project щелкните правой кнопкой мыши имя книги (в верхнем левом углу окна редактора) и выберите «Вставить»> «Модуль» в контекстном меню.
  4. Скопируйте код 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 раз быстрее, если есть манипуляции с ячейками без лишних перерывов).

  • Давайте сохраним книгу как книгу Excel с поддержкой макросов. Для этого нажмите Ctrl + S и в окне с предупреждением Следующие функции нельзя сохранить в книге без макросов, нажмите Нет). Откроется диалоговое окно «Сохранить как». В раскрывающемся списке Тип файла выберите книгу Excel с поддержкой макросов и нажмите кнопку Сохранить).
    1. Нажмите Alt + Q, чтобы закрыть окно редактора VBA и вернуться в книгу Excel.

    Запускаем макрос VBA в Excel

    Нажмите Alt + F8, чтобы запустить только что добавленный макрос. Откроется диалоговое окно «Макрос». В списке «Имя макроса» выберите нужный макрос и нажмите кнопку «Выполнить).

    Читайте также:
    Программа для монтажа звука

    Excel VBA: возможности программирования в Excel

    VBA Excel. Начинаем программировать с нуля

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

    Знакомство с редактором VBA

    В левой части редактора VBA находится Project Explorer, в котором отображаются все открытые книги Excel. Верхняя строчка, как на картинке, скорее всего у вас не будет, так как это личная книга макросов. Справа — модуль, в котором написаны процедуры (подпрограммы) с кодом VBA. На изображении открыт модуль листа, но дальше мы создадим стандартный программный модуль.

    1. Нажмите кнопку «Модуль» на вкладке «Вставка» в главном меню. То же подменю откроется, когда вы нажмете вторую кнопку после значка Excel на панели инструментов.

    После нажатия на кнопку «Форма» вы увидите ссылку на нее, появившуюся в проводнике слева.

    Первая программа на VBA Excel

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

    1. Откройте стандартную форму, дважды щелкнув ее ссылку в проводнике. Поместите в него курсор и нажмите кнопку «Процедура…» на вкладке «Вставить» главного меню. Эта же ссылка будет доступна, когда вы нажмете вторую кнопку после значка Excel на панели инструментов.

    В результате откроется окно для добавления шаблона процедуры (Sub).

    1. Введите имя процедуры в поле «Имя»: «Primer1» или скопируйте его отсюда и вставьте в поле «Имя». Нажмите кнопку ОК, чтобы добавить в форму первую и последнюю строки процедуры.

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

    1. Вставьте следующую строку в шаблон процедуры: MsgBox «Hello” .

    Функция MsgBox отображает информационное сообщение с указанным текстом. В нашем примере это «Привет».

    1. Убедитесь, что курсор находится внутри процедуры, и выполните ее, нажав клавишу «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

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...
    EFT-Soft.ru