Введение в VBA

 

«В результате своей эволюции Visual Basic превратился в Объектно-ориентированый язык программирования (Visual Basic for Application). Хотя освоение приёмов работы с объектами и представляет некоторую трудность в начале знакомства с VBA, ожидаемая отдача того стоит»

 

Стив Каммингс

Ведущий программист

компании Microsoft Corp.

 

 

 

Всё начиналось примерно в 60-х годах, когда был разработан оригинальный язык программирования BASIC (Beginner`s All-purpose Symbolic Instruction Code). Он был достаточно «прост» в понимании и отвечал достаточно серьёзным требованиям выполняемых задач. Однако, с развитием мощности компьютеров и как следствие появлением более совершенного программного обеспечения, в пакет MS Office фирма  Microsoft внедрила в виде встроенного программного приложения на основе ранее известного BASIC, более совершенную и интегрированную на «простого пользователя» платформу и назвала её VBA (Visual Basic for Application). Основная цель состояла в предложении пользователям сравнительно простого в использовании и достаточно мощного инструмента для выполнения очень широкого спектра задач. И в принципе , Microsoft это удалось.

 

На сегодняшний день, VBA является мощным программным дополнением к таким пакетам как:

·        Microsoft Office – Word, Excel, PowerPoint, Access, Outlook, FrontPage и тд.

·        Microsoft Project

·        CorelDraw версии 9 или 10 и Corel WordPerfect Office 2000

·        Серия графических бизнес-приложений iGrafx от Micrografx

·        Visio версии 4.5 , 5 или 2000

·        AutoCAD R14, AutoCAD 2000 или AutoCAD 2000i для Windows

·        Autodesk Map

·        TurboCAD Professional

·        M.Y.O.B. Accounting Software

·        Пакет программ для учёта ресурсов Great Plains

·        OmniTrader, средства оценки рисков и управления торговыми операциями.

·        а также иные приложения, в которых могут использоваться как полноформатные версии VBA, так и урезанные (VBscript) и тд.

 

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

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

 

Макросы

 

Макроспрограммный элемент-надстройка VBA на уже имеющемся массиве информации, с целью многофакторного управления этим массивом.

Как выразился тот же самый Стив Каммингс: «VBA ведёт паразитический образ жизни» и в этом есть доля правды.

Допустим, у нас в Excel возникла задачка, в процессе которой нам необходимо сверить 2 базы данных, где в каждой базе имеется 3 параметра (код, наименование и стоимость), причём не факт, что эти комбинации одинаковы да ещё и разбросаны. Значит, необходимо создать некую программу, которая будет по порядку сверять все возможные комбинации из одной базы в другой. А теперь помножьте количество этих комбинаций одной базы (10 – 15 тысяч) на количество в другой (10 – 15 тысяч) и получаете  приближённую корреляцию разброса в пределах 15 000 Х 15 000 = 225 000 000 операций сверки, неслабо вручную ??? Согласитесь – задачка не простая: подбирать по трём комбинациям такие же комбинации в другой базе. Но для программы VBA (программный код займет всего примерно 10 строчек) эту проблемку под силу уладить всего за несколько минут, а может и того быстрее.

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

 

Простые Макросы

В Excel возможно создавать Макросы простым нажатием нескольких клавиш, при чём вообще даже понятия не имея о программировании. А может вообще Макросы это плод безумной фантазии Microsoft ??? !!!! 

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

 

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

А вот когда вы прикоснётесь к коду – это будет называться «сложным макросом».

 

·        Откройте Лист Excel и в ячейке 1А вставьте цифру 7.

·        СервисМакросНачать запись…  

·        Должно появиться окошко:

·        Где мы указываем Имя макроса и комбинацию клавиш для его запуска (в нашем примере это Ctrl + q)

·        Как только вы нажали кнопку Начать запись… Excel начинает дотошно записывать все выполняемые вами операции с целью дальнейшего запуска. Будьте очень внимательны при записи макроса – не делайте лишних действий и ошибок !!!

·        И начинаем (после нажатия ОК) записывать макрос, как музыку на диске: сначала мы выделяем ячейку А1 нажав на неё, затем копируем её и нажав скажем на ячейку С1 вставляем значения (простая операция копирования).

·        Во время записи макроса, на экране появится рабочая кнопка остановки записи макроса и когда вы закончите экспериментировать – нажмите на квадратик.

·        А теперь сотрите данные с листа в ячейку А1, проставьте любые значения и нажмите Ctrl + q. (Типичная ошибка – не забывайте переводить раскладку клавиатуры под комбинацию клавиш макроса). Если вы всё сделали правильно, в ячейку С1 должны автоматически копироваться значения А1.

·        Пример: Пример

 

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

Идеальное средство для создания «горячих клавиш».

А теперь попробуйте выделить рабочий лист и тогда макрос будет показывать вам его по первому требованию. Или к примеру, уберите Автофильтр и тогда вам не понадобится лезть в опцию ДанныеФильтрАвтофильтр. Или попробуйте скопировать данные из одного листа в другой  и тд. Даже не смотря на примитивность операций – они могут значительно сократить время на выполнение каких-то однотипных действий.

 

Ну что же, поздравляю – вы прикоснулись к великолепному !!! 

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

 

Обычно, когда меня просят «быстренько» научить работе с VBA, я отвечаю так:

«Показать как работает макрос я могу за 3 минуты. Рассказать об основных операторах за 3 дня. Научить создавать серьёзные программы за 3 года.»

Если бы ЭТО было просто – я бы об этом не писал.

 

Крайне рекомендуется скопировать файлы на жёсткий диск и снять защиту с макросов.

Colors В Color Excel пытается закрасить случайные ячейки случайными цветами.
Matrix В Matrix на основании случайных чисел ячейки красятся по типу цвета и используется метод «конвейера» для постановки значений.
NoteBook

NoteBook   Миниатюрная записная книжка. Позволяет делать записи и планировать своё рабочее время. Для удобства, можно менять временные интервалы, фиксировать текущую дату. Естественно, объём записей не ограничен.

Игрушка «Морской бой»

Игрушка «Морской Бой»

Для завершения операции, нажмите клавишу Esc и в появившемся меню нажмите кнопку End

 

Назад    Начало    Вперёд