Найти в Дзене
Ilyas Nigmatullin

Группы функций VBA: как их изучать

VBA, или Visual Basic for Applications – один из самых востребованных языков для обучения программированию большинства студентов российских ВУЗов. Несмотря на то, что язык Бейсик был некогда объявлен как «вредоносный» крупнейшими гуру программирования, ситуация в корне изменилась – теперь практически все популярные языки идут в фарватере Java, который сам мало чем отличается от современных версий Бейсика. Кроме того, для преподавателей удобно то, что VBA бесплатно прилагается к MS Office и вполне может применяться не только для численных расчетов, но и имеет конструкторы экранов – а для небольших задач большего не требуется. Вот только мало где объясняется, как не запутаться во всей этой каше из функций. MS Office сам по большей части состоит из программ на языке VBA – на нем написан интерфейс, включая диалоги, конвертеры и т.д. Таким образом, Office можно условно представить как набор функций на языке VBA, но эти функции называются макросами. К примеру, есть макрос для печати активног

VBA, или Visual Basic for Applications – один из самых востребованных языков для обучения программированию большинства студентов российских ВУЗов. Несмотря на то, что язык Бейсик был некогда объявлен как «вредоносный» крупнейшими гуру программирования, ситуация в корне изменилась – теперь практически все популярные языки идут в фарватере Java, который сам мало чем отличается от современных версий Бейсика. Кроме того, для преподавателей удобно то, что VBA бесплатно прилагается к MS Office и вполне может применяться не только для численных расчетов, но и имеет конструкторы экранов – а для небольших задач большего не требуется. Вот только мало где объясняется, как не запутаться во всей этой каше из функций.

MS Office сам по большей части состоит из программ на языке VBA – на нем написан интерфейс, включая диалоги, конвертеры и т.д. Таким образом, Office можно условно представить как набор функций на языке VBA, но эти функции называются макросами. К примеру, есть макрос для печати активного документа, для открытия файла и т.д. Но вы напрасно будете искать эти макросы-функции в справочнике VBA. Дело в том, что в Office есть несколько программ, и каждая из них имеет собственные названия этих макросов для однотипных функций. А язык используется сам по себе.

Итак, существует язык VBA, аналогичный Бейсику. Его неизменяемые возможности – функции для работы со строками, датами, математическими выражениями, файлами. Соответственно, у него есть свои конструкции для организации циклов, массивов, подпрограмм и прочих управляющих элементов. В этом плане VBA одинаков везде, даже в Corel последних версий. Саму программную среду можно воспринимать исключительно как интерпретатор программ. Скажем, версия WinWord 6 в свое время имела и исполняла совсем другой диалект Бейсика, а с версии 97 – VBA. Очень интересный и понятный онлайн-курс по самому языку VBA мы нашли для вас на сайте on-line-teaching.com/vba/index.html. Из него видно, что программа на VBA вовсе не обязательно должна иметь отношение к Office, и на нем можно писать абсолютно любые программы – игры, бухгалтерские программы и т.д. Если же необходимо добавить к программам функциональность Офиса – нет проблем: нужно только узнать, какие макросы для этого нужно использовать, после чего вставить их в свою программу. Простейший путь узнать это – использовать сами макросы в редакторе! Вы включаете запись макроса, выполняете действие, останавливаете запись и смотрите, что получилось. Пара исправлений, и макрос отправляется в программу. Запомните еще раз:

- VBA может прожить без Office, а Office без VBA не может.

- Сам VBA не содержит команд управления офисным приложением – каждое приложение предоставляет свою объектную модель для языка.

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

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