Программирование в Visual Basic (цикл статей)


Visual Basic - программирование для всехНазвание "Visual Basic" говорит само за себя. Уже по слову "Visual" можно догадаться, что здесь реализован визуальный стиль программирования. Вы даже не программируете, а проектируете приложение. Ваша первая задача при этом — создать рабочую среду. Слово "Basic" - Beginners Atlpurpose Symbolic Instruction Code (многоцелевой код символических команд для начинающих).

Данный материал не является полноценным учебником VisualBasic, а содержит только необходимый минимум для выработки алгоритмического мышления и начальных навыков программирования. В качестве системы программирования используется VBA. Для освоения материала, не нужно ничего искать/скачивать - всё у вас уже есть, достаточно запустить MS-WORD/Excel и нажать комбинацию клавиш [ALT+F11]. Правда создать готовый-исполняемый файл *.ехе у вас не получится, но для приобретения навыков VBA вполне хватает.

 

Введение

Небольшое описание интерфейса среды разработки. Начало работы с Visual Basic.

 

Свойства, методы и события

Введение в объектную модель Visual Basic. Свойтва, методы и события объектов. Переменные. Описание видов и типов переменных.

Создаем наше первое приложение - традиционное "Hello, World!"

 

Операторы переходов

Переходы в коде позволяют управлять последовательностью выполнения программы. Данные конструкции ещё называют "конструкциями принятия решений". Применение операторов принятия решения позволяет выполнять определенные действия в зависимости от условий, возникающих в программе.

Оператор If (If...Then...Else)

Оператор Select Case - многочисленное условие

 

Виды информационных сообщений "MsgBox"

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

 

Логические операторы

Без логики никуда! Всё программирование - это логика. В VBA (как и в других языках) так-же есть свои логические операторы. Логические операторы AND, OR, NOT, XOR, EQV, IMP - синтаксис и описание.

 

Простая математика

Описание синтаксиса простых математических выражений. Попробуем самомстоятельно написать простейший математический калькулятор средствами Visual Basic.

 

Работа с циклами

Цикл - это повторяющееся действие какой-либо операции. Ни один язык программирования не обходится без циклов. VB не исключение - в нем присутствует четыре типа циклов:

For...Next
For Each...Next
Do While...Loop
Do Until...Loop

В данном материале рассмотрим каждый из них подробно.

 

Массивы

Массив представляет собой пронумерованный список переменных любого типа. Вместо того, чтобы объявлять переменные, лучше применить массив. Но зачем нам пользоваться какими-то массивами, когда можно использовать просто переменную? ..ан нет! Массивы имеют приемущество перед обычной переменной! Они могут быть многомерными, т.е. в каждой строке многомерного массива можно хранить данные, относящиеся к одному объекту: например ФИО, его пол, номер телефона и т.д.

 

Программные модули, процедуры и функции

Программные модули имеют одну очень полезную особенность - они позволяют писать код, который можно использовать в различных приложениях (а не только в том приложении, в котором вы ведете сейчас разработку). Таким образом можно создавать внешние библиотеки функций для нескольких приложений, при изменении которых в одном месте, будет меняться их работа во всех приложениях, где они подключены.

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

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

 

Обработка ошибок

Неотемлемой частью любой программы являются процедуры, которые обрабатывают ошибки. Допустим, Вы написали программу... Непросветлённый юзер обязательно тыкнет куда не надо, поэтому Вы должны предусмотреть "защиту от дурака". Советую делать это на начальном этапе проектирования интерфейса, потому как потом может быть уже поздно.

 

Работа со стандартными элементами управления

До сих пор, мы тренировались "на кошках", точнее на "MsgBox, Буттонах и Тект-боксах". На них удобно приводить примеры. Пришло время освоить и остальные объекты.

Стандартными элементами управления (объектами) называются все прибомбасы, находящиеся в ToolBox. Вот перечень часто используемых: Label, CheckBox, OptionButton, ComboBox, ListBox, Frame, ScrollBar, SpinButton. Рассмотрим каждый из них подробно.

 

Работа с файловой системой

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

 

Типы файлов и работа с окружением

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

  • Файлы последовательного доступа - это текстовые файлы. Такие файлы представляют собой последовательность символов. Структурной единицей содержимого в подобных файлах является строка.
  • Файлы произвольного доступа - это структурированные файлы, которые содержат информацию в виде записей. Примером могут служить файлы базы данных.
  • Двоичные (бинарные) файлы - это файлы с побайтным доступом. В принципе, это те же файлы с последовательным доступом, но информация в них не организована в строки. Особенность данных файлов - работа с байтами или блоками байтов. К таким файлам можно отнести исполняемые *.EXE, файлы прошивок и т.д.

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

 

Система файловых объектов (FSO)

В систему "FSO" (File System Objects) входит набор классов для объектов. По умолчанию эти объекты отключены и их нет в ToolBox'e, среди буттонов и текст-боксов. Чтобы использовать FSO, необходимо подключить библиотеку "Microsoft Scripting Runtime" в окне References, которое валяется в меню "Tools". В этой библиотеке находятся все классы системы объектов FSO. После того, как вы подключите данную библиотеку, просмотреть свойства классов можно с помощью окна "Object Browser". В этом окне все классы FSO находятся в библиотеке Scripting, которую можно найти по имени в верхнем раскрывающемся списке.

Работа с объектами файловой системы описана также в нескольких статьях из раздела Windows Script Host: Работа с объектами файловой системы, Чтение и редактирование файлов, Работа с коллекциями файлов и папок. Можно, для полноты картины, ознакомиться и с ними.

 

VBA + Windows API

Ну куда же нам без виндовых API-функций? Чтоб мы не рылись в дебрях системы и случаем не нагадили там, Большой Билли придумал для нас Win-API. Это готовые процедуры и функции для решения множества задач. Как правило, большинство API-функций находятся в библиотеках, и, всё что нам нужно, это подключить эти библиотеки в свой проект. Львиная доля API находится в системных файлах типа User32, Kernel32, которые уже висят в ОЗУ, поэтому их нужно просто объявить: т.е. оповестить ОС, чтобы она была в курсе, что мы собираемся попользоваться её файликами!

 

Работа с окружением. Библиотека "INPOUT32.DLL"

Под термином "окружение" здесь подразумеваются порты ввода/вывода компьютера, а именно: LPT, COM, USB и др. В среде программирования VBA мы имеем доступ к каждому из них на программном уровне, только необходимо знать адрес порта. С точки зрения вывода данных, всё равно куда пересылать информацию, необходимо только правильно указать её получателя. ...Но это было давно (и правда). С семейством NT такой фокус не пройдёт! Разработчики NT с целью обеспечения безопасности, запретили прямой доступ к портам из пользовательского режима. Чтобы всё-таки обратиться к порту, необходимо все операции проводить через I/O драйвер, с которым трудно найти общий язык. Для управления портами из программ, для Windows NT/XP используется драйвер "inpout32.dll", которого нет в базовом составе операционной системы. Данный драйвер содержит функции обращения к любому порту ввода/вывода процессора. Его необходимо скачать с сети (от чего я вас избавил, прицепив его в скрепке) и подключить к нашему проекту.

 

VBA. Работа в Excel

Программировать в EXCEL очень интересно, и надо сказать, очень восстребовано. Хорошие профессионалы (в вашем лице) нужны любой организации, т.к. преобладающее большинство бухгалтеров, это размалёванные барышни, в лучшем случае знающие EXCEL поверхностно и принятые на работу по объявлениям. Они, как и прежде, выполняют рутинную работу в ручную и не имеют ни малейшего представления о существовании VBA, который позволит сэкономить время и автоматизировать весь процесс. Ну это их проблемы, а наши с вами - освоить хотя бы азы программирования в Microsoft EXCEL.

 

Маленькая программа в большом EXCEL'e

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

Давайте создадим "доброкачественное" приложение, чтоб показать возможности программирования в среде EXCEL. Пусть это будет программа, типа "Прайс-лист", которой обычно пользуются в магазинах и торговых предприятиях. Имеем тип товара, его наименование и стоимость. Выбрав из нескольких/выпадающих списков наименование товаров, получаем общую их стоимость.