Краткое руководство: создание макроса. Автоматизация задач с помощью средства записи макросов — Excel Макрос на языке visual basic

Сегодня я снова представляю вашему вниманию статью Чернякова Михаила Константинович , который расскажет о работе с макросами.

Поработав с документами Ехсеl 2010, вы можете обнаружить, что часто выполняете одни и те же задачи. Некоторые из них (такие как сохранение и закрытие файлов) выполняются достаточно бы-стро, другие включают последовательность шагов, что требует определенного времени и усилий. Вместо того чтобы каждый раз выполнять одни и те же действия вручную, можно создать МАКРО-СЫ , которые представляют собой программы, автоматизирующие выполнение заданной последовательности действий.

Прежде чем приступать к созданию макроса, нужно тщательно продумать процедуру, которую он должен автоматизировать. По-скольку современные компьютеры отличаются высоким быстро-действием, лишние шаги практически не влияют на результат, однако пропуск нужных шагов потребует перезаписи макроса. Спланировав все шаги, которые должен выполнить макрос, щелк-ните на стрелке кнопки Макросы в разделе Макросы на вкладке Вид За-пись макроса . Появится диалоговое окно

Создание макросов

1. Введите имя макроса, например, Таблица Умножения в предназначенное для этого поле.

2. Добавьте в сочетание клавиш букву «у».

3. В описание добавьте текст «Таблица умножения до 100 »

4. Щелк-ните на кнопке ОК .

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

6. В ячейку А2 введите 1, выделите эту ячейку и протяните на 9 ячеек вниз. При необходимости укажите в параметрах автозаполнения флажок Заполнить .

7. В ячейку В1 введите 1, выделите эту ячейку и протяните на 9 ячеек вправо. При необходимости укажите в параметрах автозаполнения флажок Заполнить .

8. Введите в ячейку В2 формулу: =$A2*B$1. Выделите ее и протяните сначала на 9 ячеек вниз, а затем выделенный столбец на 9 колонок вправо. Закончив, щелкните на стрелке кнопки Макросы на вкладке Вид Остановить запись

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

Удалить в разделе Ячейки на вкладке Вид , а затем щелкните на команде За-пись макроса .

2. Введите имя макроса, например, Очистка в предназначенное для этого поле и добавьте в сочетание клавиш букву «о ».

3. Выделите диапазон ячеек А1:К11 .

Макросы в разделе Макросы на вкладке Главная , а затем щелкните на команде Удалить ячейки - Удалить со сдвигом вверх .

5. Щелкните на стрелке кнопки Макросы на вкладке Вид , а затем щелк-ните на команде Остановить запись .

Запуск, изменение и удаление макроса

Щелк-ните на стрелке кнопки Макросы в разделе Макросы на вкладке Вид , а затем щелкните на команде Макросы . Появится диалоговое окно Макрос .

1. Чтобы запустить Макрос и щелкнуть на кнопке Выполнить.

2. Чтобы изменить существующий макрос, можно просто удалить его и записать снова.

3. Если же требуется незначительное измене-ние, можно открыть макрос в редакторе VBA и внести изменения в код макроса. Для этого достаточно выде-лить его в диалоговом окне Макрос и щелкнуть на кнопке Изменить.

4. Чтобы удалить макрос, достаточно выде-лить его в диалоговом окне Макрос и щелкнуть на кнопке Удалить.

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

Редактирование макросов осуществляется средствами Microsoft Visual Basic for Applications (VBA ) . Редактор можно запустить командой Visual Basic в группе Код вкладки Разработчик или нажатием клавиш Alt + F 11 .

Добавление кнопок макросов на вкладки

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

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

2. Выделить вкладку, например, Разработчик , и нажать кнопку Добавить группу .

3. Нажать кнопку Переименовать и ввести в поле Отображаемое имя название новой группы, например, Макросы ОК .

4. Из списка Выбрать команды щелкнуть Макросы .

5. Найти макрос ТаблицаУмножения и кнопкой Добавить Макросы.

6. Нажать кнопку Переименовать и ввести в поле Отображаемое имя ТаблицаУмножения , выбрать символ и нажать кнопку ОК .

7. Найти макрос Очистить и кнопкой Добавить включить его в созданную группу Макросы.

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

9. После нажатия кнопки ОК диалогового окна Параметры Excel на вкладке Разработчик появиться группа Макросы с командами Таблица умножения и Очистить .

Рис. 4. Добавление кнопок макросов на вкладку Разработчик

Добавление кнопки макросов на панель быстрого доступа

Новый пользовательский интерфейс Ехсеl 2010 позволяет быстро находить встроенные команды, однако потребуется несколько се-кунд, чтобы запустить макрос с помощью диалогового окна Мак-рос . В Ехсеl 2010 имеется несколько способов сде-лать макросы более доступными.

Можно упростить доступ к диалоговому окну Мак-рос , добавив кнопку Макросы на панель быстрого доступа.

1. Для этого правой кнопкой щелк-ните на стрелке кнопки Макросы в разделе Макросы на вкладке Вид .

2. В контекстном меню щелкните на команде Добавить на панель быстрого доступа.

3. На панели быстрого доступа появится кнопка Макросы , щелчок на которой открывает диалоговое окно Макрос .

Рис. 5. Добавление кнопки макросов на панель быстрого доступа

Если вы предпочитаете выполнять макрос, не открывая диало-говое окно Макрос , можно добавить кнопку, запускающую макрос, на панель быстрого доступа. Это особенно удобно, если мак-рос автоматизирует задачу, которая часто выполняется. Чтобы до-бавить кнопку для макроса на панель быстрого доступа:

1. Щелкните на кнопке Настройка напели быстрого доступа в конце панели быстрого доступа.

2. Щелкните на Другие команды , чтобы отобразить страницу Настройка диалогового окна Параметры Ехсе l .

3. Щелкните на стрелке поля Выбрать команды из .

5. Щелкните на макросе, для которого нужно создать кнопку.

6. Щелкните на кнопке Добавить .

7. Щелкните на кнопке ОК .

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

Щелкните на команде Очистить группы Макросы вкладки Разработчик правой кнопкой мыши и из контекстного меню выберите Добавить на панель быстрого доступа.

Создание объектов для выполнения макросов

Назначение макросов фигурам позволяет создавать «кнопки» более сложной формы, чем те, которые отображаются на панели быстрого доступа. При желании можно даже разрабо-тать собственные макеты кнопок для различных объектов. Чтобы назначить макрос фигуре, щелкните на ней правой кнопкой мыши, а затем щелкните на команде Назначить макрос в контекстном меню. В диалоговом окне, которое появится, щелкни-те на нужном макросе, а затем щелкните на кнопке ОК .

При назначении макросов фигурам не следует из-менять имя макроса, которое отображается в диалоговом окне Назна-чить макрос объекту , поскольку оно содержит ссылку на объект. Изменение имени макроса разрывает эту связь и препятству-ет выполнению макроса.

Для запуска макроса ТаблицаУмножения можно создать фигуру в виде прямоугольника, а для Очистить - в виде элипса:

1. Щелк-ните на стрелке кнопки Фигуры в разделе Иллюстрации на вкладке Вставка , а затем щелкните на команде Скругленный прямоугольник .

2. Впишите фигуру Скругленный прямоугольник в диапазон ячеек М2:Р4 . Введите текст «Таблица умножения ». Установите размер шрифта введенного текста 18.

3. Щелкните на прямоугольнике правой кнопкой мыши, а затем щелкните на команде Назначить макрос ТаблицаУмножения , а затем щелкните на кнопке ОК .

4. Щелк-ните на стрелке кнопки Фигуры в разделе Иллюстрации на вкладке Вставка , а затем щелкните на команде Овал .

5. Впишите фигуру Овал в диапазон ячеек М7:Р10 . Введите текст «Очистка ». Установите размер шрифта введенного текста 18. Выровняйте надпись по центру. Измените цвет заливки фигуры на красный.

6. Щелкните на овале правой кнопкой мыши, а затем щелкните на команде Назначить макрос в контекстном меню. В диалоговом окне, которое появится, щелкни-те на макросе Очистить , а затем щелкните на кнопке ОК .

Теперь для запуска макроса достаточно щелчка по фигуре. Щелкните по фигуре Овал и с листа исчезнет таблица. Щелкните по фигуре Скругленный прямоугольник и таблица умножения вновь появиться на листе.

1. Макросы целесообразно создавать для рутинных многократно повторяющихся действий. Для создания макросов не требуется знания языков программирования.

2. Макросы можно запускать, изменять, редактировать и удалять по мере необходимости. Для редактирования макросов необходимы знания алгоритмического языка Basic, оптимально Visual Basic for Applications. Последний позволяет управлять диалоговыми окнами и решать нестандартные задачи.

3. Кнопки запуска макросов можно располагать на вкладках, панели быстрого запуска или фигурах любых типов.

    В Excel и Word макросы отлично помогают, когда надо срочно посмотреть конкретный кусок объектной модели, а под рукой нет интернета, например. Правда, чаще всего придется внимательно почистить полученный код от лишних "следов" перемещения по ячейкам и других необязательных действий. Но это того стоит. Запись и просмотр макроса займет минуты 2. А вот поиск некоторых видов информации (особенно, связанной с графиками) на MSDN в контексте объектной модели может длиться часами и не факт, что окажется результативным.

    Ну, а для пользователей, не знакомых с VBA, макросы – вещь безусловно незаменимая и полезная.

Введение

Без преувеличения можно сказать, Microsoft Office любых версий является самым полезным и самым используемым продуктом Microsoft. И современный руководитель, и менеджер, и преподаватель, и студент, и школьник – все, кто имеет в своем распоряжении компьютер, в той или иной степени используют эту систему.

Одним из наиболее важных и полезных аспектов подготовки Microsoft Office к выполнению определенных задач является автоматизация процессов взаимодействия пользователя с приложениями Microsoft Office. Эти приложения не являются законченными продуктами, настроенными на выполнение всех возможных задач, а представляют собой системы, которые нуждаются в определенной настройке, что обеспечивается разнообразными средствами, как интерактивными, так и программными. Все приложения Microsoft Office поддерживают язык программирования Visual Basic for Applications (VBA). VBA позволяет работать с Microsoft Office, как с некоторым конструктором: в распоряжении разработчика VBA-приложения не только большое количество объектов и коллекций, но и возможности настроек, позволяющие до такой степени программно настроить любое приложение, что пользователь такого приложения может и не понять, с каким приложением происходит «общение».

Важнейшим достоинством VBA является возможность объединять любые приложения Microsoft Office для решения, практически, любых задач по обработке информации. В этом смысле Microsoft Office можно считать системой программирования, подобной C++, Delphi и т.д., но с более мощными и разнообразными функциями, поскольку здесь имеется неизмеримо большее количество управляемых системой объектов и готовых решений для конечных пользователей.

Привлекательная особенность VBA в том, что он очень удобен для первого знакомства с программированием в среде Windows. Этому способствует широкое распространение приложений Microsoft Office, бесконечное разнообразие возможных практических задач, интуитивно понятная интегрированная среда редактора Visual Basic, возможность обучения программированию посредством анализа кода, записанного при помощи макрорекордера, наличие огромного количества объектов, которыми можно управлять из VB-кода. Более глубокие знания VBA-программирования позволят решать, практически, любые задачи: от автоматизации создания простых документов до обработки баз данных с использованием как настольных, так и сетевых СУБД.

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

На базе предложенного материала можно организовать вариативность в преподавании VBA в зависимости от подготовки студентов. Лабораторные работы охватывают основы языка Visual Basic, а также операции по созданию макросов, процедур и функций, приложений обработки электронных таблиц с

использованием диалоговых окон. Предполагается освоить язык программирования Visual Basic.

По структуре каждая работа имеет следующие составные части:

ь цель занятия;

ь необходимые материалы к заданиям;

ь справочный материал;

ь комментированные практические задания;

ь упражнения для самостоятельной работы;

ь контрольные вопросы.

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

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

Часть 1. Макросы и язык программирования vba. Среда редактора visual basic

Независимо от используемых вами операционной системы и программных приложений вы часто выполняете одни и те же последовательности команд для многих рутинных задач. Вместо повторения последовательности команд каждый раз, когда вам необходимо выполнить какую-либо задачу, вы можете создать макрос (macro ), который вместо вас будет выполнять эту последовательность. Макросы позволяют вводить одиночную команду, выполняющую ту же задачу, для реализации которой вам было бы необходимо вводить несколько команд вручную.

Макросы, кроме удобства, имеют и другие преимущества. Поскольку компьютеры больше приспособлены для выполнения повторяющихся задач, чем люди, запись макрорекордером неоднократно выполняемых команд повышает точность и скорость работы. Другим преимуществом использования макросов является то, что при их выполнении обычно нет необходимости в присутствии человека-оператора.

Макрорекордер (или просто «рекордер») записывает все действия пользователя, включая ошибки и неправильные запуски. Когда программа воспроизводит макрос, она выполняет каждую записанную рекордером команду точно в такой последовательности, в которой вы их выполняли во время записи.

Записанные макрорекордером макросы лишены гибкости, поэтому они не могут реагировать на изменившиеся или меняющиеся условия. Законченный макрос сохраняется как процедура VBA. На языке VBA вы можете написать макрос, который проверяет соответствие различным предопределенным условиям и выбирает соответствующую последовательность действий на основе этих условий. Что касается повторяющихся действий в самом макросе, записанные рекордером макросы имеют значительные ограничения. Если вам необходимо, чтобы записанный макрос повторял какое-либо действие несколько раз, вы должны вручную повторять это действие нужное количество раз, когда записываете макрос. Такой макрос всегда повторяет это действие одинаковое количество раз, всякий раз, когда вы его запускаете, до тех пор, пока вы не отредактируете или не перезапишете его.

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

С помощью макросов можно создавать пользовательские меню, диалоговые окна и панели инструментов, которые могут до неузнаваемости изменить интерфейс всем известных продуктов Word, Excel, Access, PowerPoint. Уместно здесь отметить также и возможность создания разнообразной системы проверки данных, вводимых пользователем в диалоговых окнах. Когда вы научитесь писать программы на языке VBA, вы, скорее всего, уже никогда не станете начинать создание макроса с использования рекордера.

Лабораторная работа № 1. Запись новых макросов в Excel. Выполнение

макросов

Цель занятия: Уметь задавать стартовые условия для макроса, запускать макроредактор и присваивать имя макросу, выполнять действия, которые необходимо записать для использования позже, останавливать макроредактор, запускать на выполнения макросы.

Материалы к занятию: MS Excel 2003.

Задание 1. Создайте макрос в Excel, который форматирует текст в текущей ячейке шрифтом Arial, полужирным, 12 размером.

1. Задайте стартовые условия.

Для этого:

^Запустите Excel 2003 (Пуск/Все программы / Microsoft Office / Microsoft Office Excel 2003), если он еще не запущен;

    откройте какую-либо рабочую книгу;

    выберите какой-либо рабочий лист;

    выделите любую ячейку в рабочем листе.

2. Выберете место и имя хранения макроса.

Для этого:

Выберете в меню Сервис/Макрос/Начать запись… (Tools/Macro/Record New Macro…);

* в раскрывшимся диалоговом окне Запись макроса (Record Macro ) (рис. 1), в текстовом окне Имя макроса (Macro Name ) введите FormatArialBold 12 в качестве имени макроса;

ь оставьте без изменений текст, который Excel вставила в поле Описание (Description ), но добавьте следующее: Форматирует текст диапазона: Arial , Bold , 12 ; этот дополнительный комментарий поможет вам (и другим) определить назначение данного макроса;

ь если вы уверены в том, что будете часто использовать макрос, который

собираетесь записывать, можете назначить для его запуска горячую клавишу; если - да, введите горячую клавишу в текстовое окно Сочетание клавиш (Shortcut Key ) окна Запись макроса;

* щелкните на кнопке ОК для начала записи макроса; как только вы щелкните на кнопке ОК в диалоговом окне Запись макроса, Excel запустит

макрорекордер, отобразит панель ^ Остановить запись (Stop Recorder ) и начнет запись ваших действий. Макрорекордер сохранит каждое ваше действие в новом макросе.

Замечание 1. Доступными вариантами при сохранении макросов являются Личная книга макросов (Personal Macro Workbook ), Новая книга (New Workbook ) и Эта книга (This Workbook ). Когда вы выбираете в качестве места для хранения макроса Личная книга макросов, Excel сохраняет макрос в файле специальной книги с именем Personal.xls в папке, в которую установлена Excel. Excel автоматически открывает эту книгу каждый раз в начале работы. Поскольку вам всегда доступны макросы из всех открытых книг, макрос, сохраненный в книге Personal.xls, также будет доступен вам всегда. Если книга Personal.xls не существует, Excel создаст ее. Выбор Эта книга приведет к тому, что Excel сохранит новый макрос в текущей активной рабочей книге. Выбор Новая книга приведет к созданию в Excel новой рабочей книги, в которой будет сохранен этот макрос, - рабочая книга, которая была активной при запуске вами макрорекордера, остается активной рабочей книгой; любые действия, которые вы записываете, выполняются в этой книге, а не в новой рабочей книге, созданной для сохранения макроса.

Замечание 2. Не всегда при запуске макрорекордера вы можете увидеть на экране панель Остановить запись. Поскольку это - обычная панель, ее можно отображать или не отображать. Этим, как и другими панелями, управляет команда Панели инструментов (Toolbars ) меню Вид (View ). В любом случае (при наличии на экране панели Остановить запись или ее отсутствии) вы можете остановить макрорекордер, выбрав Сервис/Макрос/Остановить запись.

3. Запишите действия и остановите макрорекордер.

Для этого:

    выберите команду Формат/Ячейки… (Format / Cells …) для отображения диалогового окна Формат ячеек (Format Cells );

    щелкните на ярлычке Шрифт (Font ) для отображения опций шрифта (рис. 2);

    выберите Arial в списке Шрифт (Font ); выполните этот шаг, даже если шрифт Arial уже выбран;

    выберите Полужирный (Bold ) в списке Начертание (Font Style );

    щелкните на кнопке ОК, чтобы закрыть диалоговое окно Формат ячеек и изменить выделенную ячейку в рабочем листе;

    щелкните на кнопке Остановить запись (Stop Macro ) на панели Остановить запись (Stop Recorder ) или выберите команду Сервис/Макрос/Остановить запись (Tools / Macro / Stop Recording ).

Замечание 3. По умолчанию панель l ? f Остановить запись в Excel содержит две командные кнопки. Левая кнопка - это кнопка Остановить запись (Stop ); щелкните на этой кнопке для остановки макрорекордера. Правая кнопка -это кнопка Относительная ссылка (Relative Reference ). По умолчанию Excel записывает абсолютные ссылки на ячейки в ваши макросы. Кнопка Относительная ссылка является кнопкой-переключателем (toggle). Когда запись с относительными ссылками отключена, кнопка Относительная ссылка выглядит плоской; при помещении курсора мыши на кнопку вид кнопки изменяется и она выглядит отжатой. Когда запись с относительной ссылкой включена, кнопка Относительная ссылка на панели Остановить запись нажата (находится в «утопленном» положении). Щелкая на кнопке Относительная ссылка, можно включать и выключать запись с относительными ссылками во время записи по вашему желанию.

Задание 2. Выполните макрос FormatArialBoIdl 2.

Для этого:

^выберите ячейку в рабочем листе (предпочтительнее ячейку, содержащую некоторый текст, чтобы вы могли видеть изменения);

^выберите команду Сервис/Макрос/Макросы… для отображения диалогового окна Макрос;

Выберите макрос PERSONAL . XLS ! FormatA ri aIBoIdl 2 в списке Имя макроса и щелкните на кнопке Выполнить для запуска макроса FormatArialBoldl2. Текст в любой ячейке, которая была выделена до запуска вами этого макроса, будет теперь иметь формат полужирного шрифта Arial 12-го размера.

Упражнение

    Создайте макрос в Excel, который вычисляет сумму ячеек A1, A2 и выводит результат в ячейку A3 шрифтом Times New Roman, курсивом, 12 размером.

    Создайте макрос в Excel, который выводит на желтом фоне синими буквами в текущую ячейку имя, а справа от нее фамилию шрифтом Arial, полужирным, 12 размером.

    Создайте макрос в Excel, который выводит красными буквами в ячейку A3 слово Частное: ”, справа от нее выводит частное ячеек A1 и A2 шрифтом

Times New Roman, курсивом, 12 размера.

Макросы Visual Basic for Applications сохраняются как часть файлов, в которых Excel (а также Word и Access) обычно содержит свои данные, – макросы сохраняются в файлах рабочих книг в Excel. Макросы сохраняются в специальной части файла данных, называемой Modules (модули ). Модуль VBA содержит исходный код (source code ) макроса – текстовое представление инструкций. Каждый файл рабочей книги Excel может не содержать модулей или содержать один или несколько модулей. Модули, сохраняемые в одной рабочей книге Excel, имеют общее название Project (проект ).

При записи макроса в Excel вы можете определять только рабочую книгу, в которой Excel сохраняет записанный макрос, – текущую рабочую книгу, новую рабочую книгу или рабочую книгу Personal.xls. Excel выбирает модуль, в котором сохраняется записанный макрос, и при необходимости создает этот модуль. Когда Excel создает модуль, в котором сохраняется записанный макрос, модулю присваивается имя ModuleN , где N – это количество модулей, созданных для определенной рабочей книги во время текущего сеанса работы. Например, в первый раз, когда вы сохраняете записанный макрос в Personal.xls (личной книге макросов), Excel создает модуль с именем Module 1 . Если вы продолжаете записывать макросы в том же сеансе работы и сохранять их в Personal.xls, Excel продолжает сохранять записанные макросы в том же модуле Module 1 до тех пор, пока вы не выберете другую рабочую книгу. Если позже в том же сеансе работы вы опять захотите сохранить записанные макросы в Personal.xls, Excel добавляет другой модуль с именем Module 2 в эту книгу.

Если какая-либо рабочая книга уже содержит модуль с тем же именем, что выбран в Excel для нового модуля, Excel увеличивает число в имени модуля до тех пор, пока имя нового модуля не будет отличаться от имен существующих модулей.

Для просмотра модулей, сохраненных в определенной рабочей книге (и исходного кода макроса, который они содержат), вам необходимо использовать компонент Visual Basic Editor (Редактор Visual Basic). Этот компонент предоставляет инструментальные средства, которые используются для создания новых модулей, просмотра содержимого существующих модулей, создания и редактирования исходного кода макроса, создания пользовательских диалоговых окон и выполнения других задач, относящихся к написанию и обслуживанию программ на VBA. Редактор Visual Basic (Редактор VB) содержит одни и те же возможности в Excel, Word и Access.

Задание 3. Запустите Редактор VB.

Для этого:

ь выберите Сервис/Макрос/Редактор Visual Basic (Tools / Macro / Visual Basic Editor ) или нажмите сочетание клавиш Alt + F 11 ;

ь выберите в меню View / Code или нажмите клавишу F 7 .

Excel запустит Редактор VB (рис. 3).

Project Explorer

Properties Window

Окна Редактора VB

В окне Редактора VB имеются три дочерних окна, каждое из которых отображает важную информацию о VBA-проекте. Project (Проект) - это группа модулей и других объектов, сохраняемых в определенной рабочей книге или шаблоне рабочей книги. Каждое из окон Редактора VB отображается по умолчанию в прикрепленных (docked) положениях (рис. 3).

Если необходимо, вы можете переместить любое из дочерних окон Редактора VB в любое место на экране, перетаскивая строку заголовка (title bar ) этого окна таким же образом, каким бы вы перемещали любое окно на рабочем столе Windows. Перетаскивание одного из дочерних окон из его прикрепленного положения приводит к тому, что оно становится плавающим окном. Плавающие (floating ) окна всегда остаются видимыми поверх других окон. Вы можете также изменять размер любого из дочерних окон Редактора VB, расширяя или уменьшая рамку окна для увеличения или уменьшения его размера, что подобно изменению размера любого окна на рабочем столе Windows.

Project Explorer (Окно проекта) содержит дерево-диаграмму открытых в данный момент файлов (рабочих книг) и объектов, содержащихся в этих файлах (объекты host-приложения, модули, ссылки, формы и так далее). Project Explorer можно использовать для перехода к различным модулям и другим объектам в проекте VB при помощи кнопок (панели инструментов этого окна) = View Code (Программа), ^ View Object (Объект) и Ш. Toggle Folders (Папки).

Properties Window (Окно свойств) содержит все свойства объекта текущего выбора. Вкладка Alphabetic (по алфавиту) этого окна предоставляет список

свойств выделенного объекта, составленный из имен свойств в алфавитном порядке. Вкладка Categorized (по категориям) отображает свойства объекта, отсортированные по категориям.

Code Window - это окно, в котором вы можете просматривать, редактировать или создавать исходный код VBA. В режиме F Full Module View весь исходный код макроса в модуле отображается сразу в прокручивающемся текстовом окне, а макрос отделяется от другого макроса серой линией. Редактор VB позволяет также просматривать содержимое модуля в режиме 1= Procedure View (представление процедуры). Чтобы выбрать режим просмотра, щелкайте кнопки в нижнем левом углу Code Window (рис. 3).

Когда Code Window находится в режиме Procedure View, видимым является исходный код только одного макроса. Используйте раскрывающийся список Procedure (процедура) для просмотра другого макроса. В режиме Full Module View вы можете также использовать раскрывающийся список Procedure для быстрого перехода к отдельному макросу.

Используйте список Object List (объект) для выбора объекта, процедуры которого хотите просмотреть или редактировать. В случае стандартных модулей, таких как модули, в которых сохраняются записанные вами макросы, единственным выбором в списке Object List является General (общая область).

Меню Редактора VB

В Редакторе VB меню File (Файл) предоставляет команды, необходимые для сохранения изменений в проекте VBA и вывода на экран исходного кода вашего макроса VBA. В табл. 1 приведены команды меню File, их горячие клавиши и назначение каждой команды.

Таблица 1 - Команды меню File

Команда

Горячая клавиша

Действие

<проект>)

Сохраняет текущий проект (презентацию, рисунок и т.д. в зависимости от приложения, в котором открыт Редактор VB) VBA на диске, включая все модули и формы.

I mport File… (импорт файла)

Добавляет существующий модуль, форму или класс в текущий проект (презентацию). Вы можете импортировать только модули, формы или классы, сохраненные ранее командой Export File из другого проекта (презентации).

E xport File… (экспорт файла)

Сохраняет текущий модуль, форму или класс в формате текстового файла для импортирования в другой проект или в целях архивирования.

R emove … (удалить <…>)

Перманентно удаляет модуль или форму текущего выбора из проекта (презентации) VBA. Эта команда не доступна, если в Project Explorer не выбран никакой элемент.

Меню Edit (Правка) содержит команды, относящиеся к управлению исходным кодом макроса в Code Window и объектами в формах. В табл. 2 приведены имеющиеся команды меню Edit, их горячие клавиши и описывается действие, выполняемое каждой командой.

Таблица 2 – Команды меню Edit

Команда

Горячая клавиша

Действие

U ndo (отменить)

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

R edo (вернуть)

Возвращает самую последнюю команду, которую вы отменили.

Cut (вырезать)

Вырезает выделенный текст или объект и помещает его в Windows Clipboard. Выделенный текст или объект удаляется из модуля или формы.

С ору (копировать)

Копирует выделенный текст или объект и помещает его в Windows Clipboard. Выделенный текст или объект остается неизменным.

P aste (вставить)

Вставляет текст или объект из Windows Clipboard в текущий модуль или форму.

Cl ear (очистить)

Удаляет выделенный текст или объект из модуля или формы.

Select A ll (выделить все)

Выделяет весь текст в модуле или все объекты в форме.

F ind… (найти)

Подобно команде Find в Word или Excel, позволяет находить указанный текст в модуле.

Повторяет последнюю операцию Find.

Re place… (заменить)

Подобно команде Replace в Word или Excel, позволяет находить указанный текст в модуле и заменять его другим текстом.

(увеличить

Смещает весь выделенный текст вправо на интервал табуляции.

Команда

Горячая клавиша

Действие

(уменьшить

Shift+Tab Смещает весь выделенный текст влево на интервал табуляции.

List Properties/ M ethods (список свойств/методов)

Открывает список в List Properties/Methods, отображая свойства и методы объекта, имя которого вы только что ввели. Когда курсор вставки находится на пустом месте в List Properties/Methods эта команда открывает список глобально доступных свойств и методов.

Lis t Constants (список констант)

Открывает список в Code Window, отображающий допустимые константы для свойства, которое вы только что ввели с предшествующим знаком “=”.

Q uick Info (сведения)

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

Param eter Info (параметры)

Открывает всплывающее окно подсказки, отображающее параметры (называемые также аргументами) процедуры, функции или оператора, который вы только что ввели в Code Window.

Complete W ord (завершить слово)

Ctrl+Space Редактор VB заканчивает слово, которое вы вводите, как только вы введете достаточно символов для того, чтобы VBA распознал ключевое слово.

B ookmarks (закладки)

Открывает подменю с пунктами для помещения, удаления или перехода к закладкам, которые вы ранее поместили в ваш модуль. В отличие от закладок в Word, закладки Редактора VB не имеют имен.

Меню View (Вид) содержит команды, позволяющие выбирать элементы Редактора VB для просмотра и способ просмотра. В табл. 3 приведены команды меню View, их горячие клавиши и действие, производимое каждой командой.

Таблица 3 – Команды меню View

Команда

Горячая клавиша

Действие

D efinition (описание)

Shift+F2 Отображает исходный код VBA для процедуры или функции, на которую указывает курсор; отображает Object Browser для объектов в справке VBA.

Last Position (вернуться к последней позиции)

Ctrl+ Переходит в последнюю позицию в модуле после Shift+F2 использования команды меню Definition или после редактирования кода.

O bject Browser

(просмотр

объектов)

Открывает Object Browser, позволяющий определять, какие макросы доступны в данный момент.

I mmediate Window (окно отладки)

Отображает окно отладчика Immediate Window VBA.

Locals Window (окно локальных переменных)

Отображает окно отладчика Locals Window.

Watch Window (окно

контрольного значения)

Отображает окно отладчика Watch Window (контрольные значения).

Call Stack … (стек вызова)

Отображает список последовательности вызовов для текущей функции или процедуры VBA.

P roject Explorer (окно проекта)

Отображает Project Explorer.

Properties W indow (окно свойств)

Отображает Properties Window.

Toolbox (панель элементов)

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

Ta b Order (последовательно сть перехода)

Отображает диалоговое окно Tab Order, которое используется при создании пользовательских диалоговых окон.

T oolbars (панели инструментов)

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

Возвращает вас в Microsoft Excel, из которого был запущен Редактор VB, но оставляет Редактор VB открытым.

Команды меню Insert (Вставка) позволяют добавлять различные объекты,

такие как модули и формы, в ваш проект. В меню Insert никакие команды не имеют «горячих клавиш». В табл. 4 приведены действия, выполняемые каждой командой этого меню.

Таблица 4 – Команды меню Insert

Команда Действие

P rocedure… (процедура) UseForm

Вставляет новую процедуру (Sub, Function или Property) в текущий модуль. Процедура – это еще одно название макроса. Добавляет новую форму (используется для создания

пользовательских диалоговых окон) в проект. M odule (модуль) Добавляет новый модуль в проект. Редактор VB дает этому модулю имя в соответствии с правилами, описанными ранее.

(модуль класса) Fil e… (файл)

Добавляет в проект class module (модуль класса ). Модули класса используются для создания пользовательских объектов в вашем проекте.

Позволяет вставлять текстовый файл, содержащий исходный код VBA , в модуль.

Команды меню Format (Формат) используются при создании пользовательских диалоговых окон и других форм. Команды меню Format позволяют выравнивать объекты в форме по отношению друг к другу, настраивать размер элемента управления в соответствии с его содержимым и выполнять многие другие полезные задачи. Команды меню Format представлены здесь для полноты изложения материала, хотя вы не будете их применять до тех пор, пока не начнете создавать собственные пользовательские диалоговые окна. В табл. 5 приведены команды меню Format и их действия. Заметьте, что эти команды не имеют «горячих клавиш».

Таблица 5 – Команды меню Format

Команда Действие

A lign (выровнять)

Открывает подменю команд, которые позволяют выравнивать

выбранные объекты в форме по отношению друг к другу.

Здесь можно выравнивать объекты по верхней/нижней,

правой/левой границам, по центру или середине создаваемого

объекта.

M ake Same Size

(выровнять

размер)

Size to Fit

(подогнать

размер )

Size to Grid

(выровнять

размер по сетке)

Открывает подменю команд, позволяющих изменять размер

выделенных объектов до размера указанного объекта.

Одновременно изменяет ширину и высоту объекта до соответствия размеру его содержимого.

Одновременно изменяет ширину и высоту объекта до ближайших меток сетки. Йри разработке форм Редактор VB отображает в форме сетку, чтобы было легче располагать и изменять размеры объектов в форме.

Команда Действие

H orizontal Spacing (интервал по горизонтали)

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

V ertical Spacing (интервал по вертикали)

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

C enter in Form (разместить по центру в форме)

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

Ar range Buttons

(разместить

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

G roup (группировать)

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

U ngroup (разделить)

Отменяет группировку объектов, которые перед этим были связаны вместе с помощью команды Group.

O rder (порядок)

Открывает подменю команд, позволяющих изменять упорядочение сверху вниз (называемое z-order) перекрывающихся объектов в форме. Используйте команду Order, чтобы обеспечить, например, появление текстового окна всегда поверх графического объекта в форме.

Команды меню Debug (Отладка) используются при выполнении тестирования или отладки макросов. Debugging – так называется процесс нахождения и исправления ошибок в программе. В табл. 6 приведены команды меню Debug, их «горячие клавиши» и выполняемые действия.

Таблица 6 – Команды меню Debug

Команда

Горячая клавиша

Действие

Compil e

(компилировать

<проект>)

Компилирует проект, выбранный в данный момент в Project Explorer.

Step I nto

(шаг с заходом)

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

Step O ver (шаг с обходом)

Подобно команде Step Into команда Step Over позволяет выполнять все инструкции в макросе без паузы на каждой отдельной инструкции.

Команда

Горячая клавиша

Действие

Step Ou t

(шаг с выходом)

Ctrl+ Выполняет все остающиеся операторы в макросе Shift+F8 без паузы на каждом отдельном операторе.

R un to Cursor (выполнить до текущей позиции)

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

A dd Watch… (добавить контрольное значение)

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

E dit Watch… (изменить контрольное значение)

Позволяет редактировать спецификации для наблюдаемых переменных и выражений, которые были созданы ранее с помощью команды Add Watch.

Q uick Watch…

(контрольное

значение)

Shift+F9 Отображает текущее значение выбранного выражения.

T oggle Breakpoint (точка останова)

Отмечает место (или отменяет отметку) в исходном коде VBA, где вы хотите остановить выполнение макроса.

C lear All

Breakpoints (снять все точки останова)

Удаляет все точки останова в модуле.

Set N ext Statement (задать следующую инструкцию)

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

Show Nex t

(показать

следующую

инструкцию)

Приводит к подсветке Редактором VB следующей строки кода, которая будет выполняться.

Команды меню Debug позволяют непосредственно контролировать выполнение макроса, останавливать и запускать макрос в заданных точках и отслеживать выполнение макроса по шагам.

Команды меню Run (Запуск) позволяют начать выполнение макроса, прерывать или возобновлять его выполнение или возвращать прерванный макрос в состояние до выполнения (табл. 7).

Таблица 7 – Команды меню Run

Команда

Горячая клавиша

Действие

Run Sub/User Form (запуск подпрограммы/ User Form)

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

Break (прервать)

Прерывает выполнение вашего кода VBA и приводит к тому, что Редактор VB переходит в режим прерывания (Break mode). Break mode используется при отладке кода VBA.

Resert (сброс)

Устанавливает все переменные модульного уровня и Call Stack (список последовательности вызовов) в исходное состояние.

Design Mode (конструктор)

Включает и выключает Design mode (режим проектирования или разработки) для проекта. В этом режиме никакой код в вашем проекте не выполняется, и события от элементов управления не обрабатываются.

Команды меню Tools (Сервис) не только позволяют выбрать макрос для выполнения, но и получить доступ к внешним библиотекам макросов и дополнительным элементам управления форм (кроме встроенных в VBA). Команды меню Tools обеспечивают также доступ к диалоговому окну Options (параметры) Редактора VB и свойствам проекта VBA текущего выбора в Project Explorer. В табл. 8 приведены команды меню Tools и их действия. Команды меню Tools не имеют «горячих клавиш».

Таблица 8 – Команды меню Tools

Команда Действие

Отображает диалоговое окно References, позволяющее устанавливать ссылки на библиотеки объектов, библиотеки типов или другой проект VBA. После установления ссылки объекты, методы, свойства, процедуры и функции в этой ссылке появляются в диалоговом окне Object Browser.

A dditional Controls… (дополнительные элементы)

Отображает диалоговое окно Additional Controls, позволяющее настраивать Toolbox (панель элементов) так, чтобы вы могли добавлять элементы управления в формы помимо встроенных в VBA. Диалоговое окно Additional Controls предназначено для добавления к панели элементов кнопок, которые позволяют добавлять к форме объекты, такие как рабочий лист Excel или документ Word.

M acros… (макросы)

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

Команда Действие

O ptions… (параметры)

Отображает диалоговое окно Options, позволяющее выбирать различные опции для Редактора VB, такие как число пробелов в интервале табуляции (tab stop), когда VBA проверяет синтаксис ваших операторов, и так далее.

Prope rties… (свойства проекта)

Отображает диалоговое окно Project Properties, позволяющее устанавливать различные свойства вашего проекта VBA, такие как имя проекта, описание и файл контекстной справки. Это диалоговое окно позволяет также защищать проект, чтобы никто не мог его редактировать без указания пароля.

D igital Signature… (цифровая подпись)

Отображает диалоговое окно Digital Signature, в котором можно задать для проекта сертификат цифровой подписи.

В меню Add - lns находится всего одна команда, Add - In Manager , которая приводит к отображению диалогового окна Add - In Manager . Это окно позволяет регистрировать, загружать или выгружать и определять поведение дополнений.

В Редакторе VB имеются два дополнительных меню: Window (окно) и Help (помощь). Оба этих меню содержат команды, идентичные меню Window и Help, имеющимся в других приложениях Microsoft Windows. Команды в меню Window позволяют выбирать активное окно, разбивать текущее окно, размещать дочерние окна вертикально и горизонтально, организовывать дочерние окна VB в виде каскада или выравнивать значки минимизированных дочерних окон. Команды меню Help также идентичны командам меню Help в Word, Excel и других приложениях Microsoft Windows. Меню Help Редактора VB позволяет получать контекстно-зависимую подсказку посредством справочной системы Microsoft Office и просматривать файлы справочной системы VBA для host-приложения, из которого вы запустили Редактор VB. Если у вас имеется модем или доступ к Internet, вы можете использовать Help / MSDN on the Web для соединения с разнообразными страницами Web, содержащими информацию о продуктах Microsoft и VBA. Последняя команда в меню Help – это команда About Microsoft Visual Basic . Она отображает диалоговое окно, содержащее сведения об авторских правах на Microsoft Visual Basic. Диалоговое окно About Microsoft Visual Basic содержит также командную кнопку System Info , которая отображает информацию о вашей вычислительной системе: какие драйверы видеосистемы, звуковой системы и принтера установлены, какие программы загружены в память в данное время, какие программы зарегистрированы в системном реестре (Windows System Registry) и другую техническую информацию.

Панелями инструментов Редактора VB

По умолчанию Редактор VB отображает только панель инструментов Standard (рис. 4). В конце панели, справа, находится кнопка (со стрелкой) More Buttons . Если вы хотите удалить с панели или добавить некоторые кнопки на панель Standard, нажмите на эту кнопку, а затем укажите соответствующую кнопку в появляющемся меню.

Запуск программы Помощник по Office

Окно проекта Сброс

Вырезать Отменить Вставить

Прервать

Вставка объекта

1- 1

\ h

Дополнительные кнопки элементов

LnS , ColZ

Копировать

Приложение Excel

Повторить

Конструктор

Просмотр объектов

Позиция курсора

Кроме панели Standard Редактор VB предлагает еще три панели: Edit (правка), Debug (отладка) и UseForm .

Вы можете управлять тем, какие панели инструментов отображает Редактор VB с помощью команды View / Toolbars (Вид/Панели инструментов ).

Контрольные вопросы

    Что такое макрос?

    Что такое макрорекордер? Каковы его возможности?

    Как задаются стартовые условия для макроса?

    Как записать макрос?

    Как выполнить макрос?

    Назовите основные компоненты интегрированной среды VBA.

Тема 2.3. Программные средства презентаций и основы офисного программирования

Тема 2.4. Системы управления базами данных и экспертные системы

2.4.11. Учебная база данных с главной кнопочной формой "Training_students" - Скачать

Программирования VBA и макросы

2.3. Программные средства презентаций и основы офисного программирования

2.3.7. Основы офисного программирования

Визуальный язык программирования Бейсик для приложений: Visual Basic for Applications (VBA)

VBA – это подмножество визуального языка программирования Visual Basic (VB), которое включает почти все средства создания приложений VB.

VBA отличается от языка программирования VB тем, что система VBA предназначена для непосредственной работы с объектами Office, в ней нельзя создавать проект независимо от приложений Office. Таким образом, в VBA языком программирования является VB, а инструментальная среда программирования реализована в виде редактора VB, который может активизироваться из любого приложения MS Office.

Например, для того, чтобы открыть редактор VBA из приложения PowerPoint необходимо выполнить команду Сервис / Макрос / Редактор VBA. Вернуться из редактора в приложение можно, выбрав команду Microsoft PowerPoint в меню Вид или комбинацией клавиш Alt + F11.

С помощью встроенного в редактор VBA набора элементов управления и редактора форм пользователь может создать пользовательский интерфейс для разрабатываемого проекта с экранной формой. Элементы управления являются объектами, а для каждого объекта определен ряд возможных событий (например, щелчок или двойной щелчок мыши, нажатие клавиши, перетаскивание объекта и т.д.).

Каждое событие проявляется в определенных действиях программы (откликах, реакции). Пользовательская форма позволяет создавать окна диалога приложений. Язык программирования VBA служит для написания кода программы, например для создания функций пользователя в Excel.

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

Рассмотрим алгоритм создания функций пользователя в VBA:

1. Вызвать окно редактора кода VBA, выполнив команду Сервис / Макрос / Редактор Visual Basic или нажать Alt+F11.

2. Выполнить пункт меню редактора Insert / Module (Вставка / Модуля).

3. Далее выполнить Insert / Procedure (Вставка /Процедура). В открывшемся диалогом окне Add Procedure ввести имя функции (например, СУММА5) и установить переключатели: Type (тип) – в положение Function (функция); Scope (Область определения) - в положение Public (Общая) и щелкнуть ОК.


Рис. 1.

4. В окне редактора для программирования VBA появится заготовка функции: заголовок - Public Function СУММА5() и окончание - End Function, между которыми надо поместить код тела функции.


Рис. 2.

5. Далее вводим список параметров функции, например, в скобках указываем (x, y, z, i, j), тип данных (для точных расчетов) и тип возвращаемого функцией значения (в данном примере не будем вводить). Кроме того, вводим тело функции, например, СУММА5 = x + y + z + i + j. В итоге получим следующий текст программы:

Public Function СУММА5(x, y, z, i, j)
СУММА5 = x + y + z + i + j
End Function

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

7. Выполняем "Вставка/Функция" и в открывшемся окне мастера функций выбираем категорию «Определенные пользователем», а в окне «Выберите функцию» выделяем СУММА5 и щелкаем ОК.



Рис. 3.



Рис. 4.

Макросы

Создание макроса

Создадим макрос для автоматического суммирования двух чисел в ячейках A1, B1 и размещения результата в ячейке C1, а также заливки ячейки C1 бирюзовым цветом.

Алгоритм создания макроса для поставленной задачи:

1. Выберите Сервис/Макрос, Начать запись.

2. В поле Имя макроса введите имя для макроса. Первым символом имени макроса должна быть буква. В имени макроса не допускаются пробелы; в качестве разделителей слов можно использовать знаки подчеркивания.

3. Для того чтобы запускать макрос с помощью сочетания клавиш, введите букву в поле Сочетание клавиш. Допускается использование сочетаний CTRL+ буква (для строчных букв) или CTRL+SHIFT+ буква (для прописных букв), где буква - любая буквенная клавиша на клавиатуре. Не выбирайте стандартного сочетания клавиш, так как выбранное сочетание клавиш подавляет стандартные сочетания клавиш Microsoft Excel на то время с данной книгой.

4. В поле "Сохранить" выберите книгу, в которой требуется сохранить макрос. Сохраните макрос в «Эта книга». Для создания краткого описания макроса, введите необходимый текст в поле Описание. На скриншоте представлен пример заполнения окна диалога «Запись макроса»


Рис. 5.

5. Нажмите кнопку OK.

6. Выполните макрокоманды, которые нужно записать.


Рис. 6.

7. Нажмите кнопку Остановить запись на плавающей панели инструментов «Ос» (Остановить запись) или Сервис / Макрос / Остановить макрос.

По окончании записи макроса он появляется в списке макросов под своим именем.

Редактор VBA автоматически записал последовательность макрокоманд или программу по выполненным действиям (Рис. 7.).



Рис. 7.

Для вызова макроса необходимо выполнить команду Сервис / Макрос / Макросы. После этого в диалоговом окне со списком макросов его можно найти по имени и нажать кнопку Выполнить.

Назначение кнопки панели инструментов для запуска макроса

Макрос можно запустить с помощью кнопки на встроенной панели инструментов, для этого необходимо выполнить:

  1. Выбрать пункт Настройка в меню Сервис.
  2. В окне диалога Настройка выбрать вкладку Команды и выбрать параметр Макросы в списке Категории, в списке Команды выделить «Настраиваемая кнопка».
  3. Из списка Команды перетащить с помощью мыши настраиваемую кнопку на панель инструментов.
  4. Щелкнуть эту кнопку правой кнопкой мыши и выбрать команду Назначить макрос в контекстном меню.
  5. Ввести имя макроса в поле Имя макроса.

Назначение области графического объекта для запуска макроса:

  1. Создайте графический объект.
  2. К выделенному графическому объекту, примените контекстное меню.
  3. Выберите в контекстном меню команду Назначить макрос.
  4. В появившемся окне диалога "Назначить макрос объекту", введите название макроса в поле Имя макроса, затем нажмите кнопку OK.

Редактирование макроса осуществляется редактором VBA, для этого необходимо выполнить следующее:

  1. Выбрать команду Сервис / Макрос / Макросы.
  2. Выбрать имя макроса, который следует изменить, в списке Имя.
  3. Нажать кнопку Изменить, будет открыто окно Visual Basic, в котором возможно редактирование команд выбранного макроса, записанных на языке Visual Basic.


Удаление макроса:

  1. В меню Сервис выберите пункт Макрос, а затем - команду Макросы.
  2. В списке макросов текущей рабочей книге необходимо выбрать макрос, который предполагается удалить и нажать кнопку Удалить.

Переименование макроса

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

Никогда не программировавшим часто трудно сразу читать примеры программ, нужно сначала понять основные принципы, узнать слова, которыми оперируют программисты. Эта страница специально создана для самых начинающих.

Итак, что такое макросы и как их писать?

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

Макросы пишутся на языке VBA - Visual Basic for Applications. Эту аббревиатуру стоит запомнить и использовать в поисковых запросах при поиске нужной информации. VBA - объектно-ориентированный, иерархический язык. Это значит, что управлять придется объектами, подчиненными друг другу. Например, книга Excel - объект. В ней есть листы, на листах есть ячейки. Листы, ячейки, диапазоны и многое другое - это объекты. Подчиненность можно примерно приравнять вложенности - например, ячейка вложена в лист, а лист в книгу.

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

У объектов есть свойства. Например, лист может быть видимым или скрытым, активным или неактивным. У ячейки множество свойств, также всем известных: заливка, границы, цвет и размер текста, выравнивание. Свойства, естественно, можно менять.

Итак, объекты "встроены" друг в друга и имеют различные свойства. Познакомимся с ними поближе.

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

Объекты:

Workbook - рабочая книга Excel.

Sheet - лист.

Range - диапазон.

Cell - ячейка.

Row - строка.

Column - столбец.

Действия с объектами

Activate - активировать, то есть, "поставить курсор". Активировать можно книгу, лист, ячейку.

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

Delete - удалить. Удалить можно тоже строки и столбцы, диапазоны ячеек или одну ячейку, лист.

Copy - копировать.

И отдельно идет действие Paste - вставить. Если за всеми предыдущими действиями стоит слово "что?" (что активировать, что скопировать), то за словом вставить идет вопрос "куда?". Поэтому и при написании программы нужно указывать не что вставить, а куда вставить.

Кроме выполнения программ Excel может "отдавать информацию" по заданным командам. Вот несколько примеров таких команд:

Sheets.Count - выдает количество листов в книге.

Date - выдает сегодняшнюю дату в формате строки.

Len("строка") - выдает длину строки в количестве символов. В этом примере длина равна 6.

Теперь нужно пару слов сказать о типах данных (переменных).

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

Все строковые величины в VBA пишутся в кавычках. Все названия/имена книг или листов - это текст, то есть строковая величина, поэтому всегда должна обрамляться кавычками.

И числа, и строки можно присваивать переменным.

Например:

S="Привет"

Можно переопределять значения переменных, например, так:

I=i+10

S=s & ", мир!"

После этого i=11, а s="Привет, мир!".

Тут мы столкнулись с первой операцией над строковыми величинами. Знак & означает, что две строки нужно соединить. Порядок важен: если написать

s=", мир!" & s, то получим, s=", мир!Привет".

Так как переменная s уже хранит в себе кавычки, при её использовании не нужно заключать её в кавычки. Наоборот, именно отсутствие кавычек подскажет Excel"ю, что воспринимать её нужно как переменную, а не как текст. То есть, записи:

S="Привет, мир!"

H="Привет, мир!"

дадут одинаковый результат - присвоят переменной h значение "Привет, мир!"

Но запись

S="Привет, мир!"

H="s"

присвоит переменной h значение "s".

Надо сказать, что объекты в Excel иногда пишут в единственном числе, иногда во множественном. Как запомнить, в каком случае что используется? Можно использовать такое правило: всё, чего в Excel"е много, пишется во множественном числе, всё, что в единственном экземпляре - в единственном. В Excel"е много книг, много листов и очень много ячеек. Все они одинаковы для Excel"я и отличить их можно только по имени или координатам. Поэтому в программе используется множественное число. Например:

Workbooks("Книга1").Activate

Sheets("Лист1").Copy

Rows(1).Delete

Ячейки определяются по координатам: первая - номер строки, вторая - столбца.

Например, команда

Cells(1,1).Activate

поставит курсор в левую верхнюю ячейку.

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

Единственное число используется, например, при ссылке на активную ячейку или лист, потому что, очевидно, активной может быть только одна ячейка или один лист. Например, "запомним" номер строки активной ячейки

I=ActiveCell.Row

Ссылаясь на объект не всегда нужно указывать полный путь к нему: если не указаны объекты более высокого уровня, макрос будет выполняться в активном на данный момент месте.

Например, команда

Cells(1,1).Copy

скопирует верхнюю левую ячейку на активном листе.

А команда

Sheets("Лист1").Cells(1,1).Copy

скопирует верхняя левую ячейку на листе "Лист1", независимо от того, активен этот лист сейчас или нет.

После этого вы уже можете писать макросы:)

Но лучше прочитайте еще про циклы и условный оператор , а потом про то, что такое коллекции объектов и что они нам могут дать.

Статья предназначена для людей, которые хотят научиться писать программы на встроенном в Excel Visual Basic (VBA), но абсолютно не знают что это такое.

Для начала - несколько слов о том, зачем это нужно. Средство VBA в MS Excel, представляет нам универсальный инструмент для быстрого и точного решения любых индивидуальных пользовательских задач в MS Excel . Можно конечно использовать и встроенные в MS Excel функции которых великое множество, однако они далеко не всегда решают поставленную задачу.
Итак, создадим для примера простейшую программу. Будем использовать MS Excel 2007. Откройте MS Excel, нажмите "сохранить как" и сохраните файл Вашей программы нажав "Книга ексель с поддержкой макросов".


Далее необходимо включить вкладку "Разработчик". Для этого нажимаем "Параметры Excel"

Ставим галочку на "Показывать вкладку "Разработчик" на ленте"


После этого на ленте, в верху листа Excel, появится вкладка "Разработчик", которая содержит в себе инструменты для создания VBA макросов.
Представим себе небольшую задачу - допустим мы имеем 2 числа, нам необходимо их сложить и по полученной сумме получить значение из нашей таблицы.
Поставим в ячейки Листа1 следующие значения:


на Листе2 заполним ячейки, создав таблицу из 2 столбцов


Далее перейдем на Лист1, нажмем на вкладку "Разработчик", "Вставить", на ней выберем кнопку
и нарисуем кнопку на Листе1, после чего сразу появится окно "Назначить макрос объекту", в котором выбираем "Создать"

После этого откроется редактор Visual Basic, и автоматически напишется наименование процедуры, которая будет выполняться при нажатии кнопки. Под названием процедуры впишем следующий код:


Код выполнит следующие действия:

  • MsgBox ("Это мой первый Макрос!") - сообщение
  • Переменной q присваивается значение ячейки на Листе1, с координатами 2 строка, 2 столбец
  • Переменной w присваивается значение ячейки на Листе1, с координатами 3 строка, 2 столбец
  • В ячейку на Листе1, с координатами 4 строка, 2 столбец, записывается сумма q+w



Далее получим значение столбца В из Листа2, которое расположено на той же строке где значение нашей суммы совпадает с значением столбца А.
Введем следующий код:


и получим при нажатии на кнопку следующий результат:


из результата видно что макрос подобрал число из таблицы на Листе2 в соответствии с нашей суммой.
Не буду вдаваться в подробности этого хитрого кода, так как цель данной статьи - начать писать макросы. Для VBA в интернете есть масса ресурсов, с примерами и разъяснениями, хотя для автоматизации расчетов вполне хватит объема информации в справке.

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