Лекции «Среда VBA

advertisement
Тема: "Среда VBA"
Для запуска редактора Visual Basic for Application (VBA) в приложениях Ms Word
или Ms Excel необходимо в документе или книгевыбрать команду Сервис  Макрос 
Редактор Visual Basic или кнопки Alt+F11. Затем можно перемещаться из окон
приложений в окно редактора (рис.1) на панели задач либо с помощью соответствующей
кнопки на панели VBA.
Рис.1.
Существуют некоторые отличия при работе с приложениями Word и Excel.
Отличия существуют в окне Проекта, а также в Excel дополнительно есть возможность
создания пользовательской функции
Среда VBA состоит из нескольких окон, основные из которых: окно Проекта ,
окно Свойств
, окно Программы (или Кода)
, окно Отладки
и окно
Формы(Объекта) . Открываются окна - команда Вид или соответствующие кнопки
панели инструментов.
Окно Проекта содержит иерархическую структуру компонентов, входящих в
данный проект. Элементы проекта Форма и Модуль могут вызываться из окна Проекта
путем двойного щелчка мыши. Для каждого элемента управления существует свое окно
Свойств, содержащее его свойства. Оно вызывается при выборе конкретного элемента
управления.
Окно Программы, кроме основной части, предназначенной для ввода текста
подпрограмм, в верху окна находяться два открывающихся списка. В левом списке можно
выбрать элемент управления, а в правом – тип события, для реагирования на которое
планируется написать подпрограмму.
В окне Свойств можно изменять свойства объектов: тип и размер шрифта,
названия и т.д.
В окне Отладки отображаются результаты выполнения расчетов, для чего
используется конструкция Debug.Print.
Программы создаются в окне Программы, в модулях. В проекте они
располагаются в документе или книге в модулях (Module1, Module2,…) и формах
(UserForm1, UserForm2,…).
Добавить в проект новую программу команда Вставка  Модуль или
соответствующая кнопка на панели инструментов.
Выполнение программ может осуществляться:
- из документа или книги Сервис  Макрос   Макросы…  Выполнить
или с помощью клавиш или кнопки на панели инструментов,
- из редактора - команда Запуск или кнопка,
- с помощью кнопки панели Элементы управления.
Создание кнопки в приложениях: панель Элементы управления, в режиме
Пуск
конструктора
выбрать элемент Кнопка
. Вызвав контекстное меню Кнопки
изменить ее название П.К. Свойства и присвоить ей процедуру-событие П.К. 
Исходный текст
Private Sub CommandButton2_Click()
(ввести текст программы на рис.5.1)
End Sub
Результаты выполнения программ можно получать кроме окна Отладки, также в
диалоговых окнах, на формах и непосредственно в документах и листах.
Интегрированная среда разработки
Интегрированная среда разработки (IDE) представляет собой знакомый нам по другим
приложениям Microsoft графический интерфейс. Ее внешний вид показан на рис. 1.2.
Рис. 1.2. Интегрированная среда проектирования (разработки) Visual Basic 6
В состав среды проектирования включен набор следующих основных элементов:










главное меню;
стандартная панель инструментов (Standard);
панель элементов управления;
окно проводника проекта (Project);
конструктор форм;
редактор меню (Menu Editor);
окно свойств (Properties);
окно макета формы (Form Layout);
окно просмотра объектов (Object Browser);
редактор исходного кода.
Главное меню
Главное меню, как и во всех приложениях Microsoft, представляет собой линейку
раскрывающихся меню. Оно содержит следующие основные команды: File (Файл), Edit
(Правка), View (Вид), Project (Проект), Format (Формат), Debug (Отладка), Run (Запуск),
Query (Запрос), Diagram (Диаграмма), Tools (Сервис), Add-Ins (Надстройки), Window
(Окно), Help (Справка). Вид главного меню показан на рис. 1.3. Наиболее часто
используемые команды меню отображены в виде кнопок со значками на стандартной
панели инструментов, размещенной ниже меню.
Многие команды окажутся знакомыми, поскольку главное меню Visual Basic 6
организовано и работает так же, как и в других приложениях Microsoft, — например, в
текстовом редакторе Microsoft Word или в электронной таблице Microsoft Excel.
Рис. 1.3. Главное меню Visual Basic 6
Рассмотрим основные команды главного меню. В меню File (Файл) сгруппированы
команды для работы с файлами проекта. Используя эти команды, можно выполнять такие
действия, как создание нового проекта, открытие проекта для внесения изменений,
добавление проекта для параллельной работы над несколькими проектами или
копирование форм из проекта в проект и т. п. Все команды этого меню перечислены в
табл. 1.1.
Таблица 1.1. Команды меню File
Команда
Назначение
New Project (Новый проект)
Создает новый проект
Open Project (Открыть проект)
Открывает существующий проект
Add Project (Добавить проект)
Добавляет проект в группу для параллельной
работы над несколькими проектами,
копирования форм из проекта в проект или
для его отладки
Remove Project (Исключить проект)
Удаляет проект из группы проектов
Save Project Group (Сохранить группу
проектов)
Сохраняет группу проектов
Save Project Group As (Сохранить группу
проектов как)
Сохраняет группу проектов под другим
именем
Save <имя формы> (Сохранить форму)
Сохраняет форму с прежним именем
Save <имя формы> As (Сохранить форму
как)
Сохраняет форму под другим именем
Print (Печать)
Открывает диалоговое окно Print
Print Setup (Настройка печати)
Открывает диалоговое окно настройки
печати
Make <имя проекта>.ехе (Создать ехефайл проекта)
Создает выполняемый файл текущего
проекта
Make Project Group (Создать группу
проектов)
Создает группу проектов
Exit (Выход)
Осуществляет выход из Visual Basic 6. В том
случае, если в окне программы находятся не
сохраненные результаты работы, появятся
запросы о необходимости сохранения
проектов, форм и других файлов
Меню Edit (Правка) содержит команды, предназначенные для редактирования (табл. 1.2).
Часть из них соответствует подобным командам редактирования других приложений
Microsoft, например, отменить предыдущую команду, повторить предыдущую команду,
вырезать фрагмент текста, скопировать фрагмент в буфер обмена. В составе этого меню
целый набор команд для работы с таблицами базы данных: добавлять и удалять поля,
назначать первичный ключ в таблице базы данных.
Таблица 1.2. Команды меню Edit
Команда
Назначение
Undo (Отменить)
Отменяет предыдущую команду
Redo (Повторить)
Восстанавливает предыдущую команду
Cut (Вырезать)
Вырезает фрагмент текста
Сору (Копировать)
Копирует фрагмент в буфер обмена
Paste (Вставить)
Копирует содержимое из буфера обмена
Remove (Переместить)
Перемещает выделенное
Delete (Удалить)
Удаляет выделенное
Delete Table from Database (Удалить
таблицу из базы данных)
Удаляет таблицу из базы данных
Select All (Выделить все)
Выделяет все
Select All Columns (Выделить все колонки)
Выделяет все колонки
Table: Set Primary Key (Таблица:
Установить первичный ключ)
Определяет первичный ключ таблицы
Table: Insert Column (Таблица: Вставить
поле)
Вставляет поле в таблицу
Table: Delete Column (Таблица: Удалить
поле)
Удаляет поле из таблицы
Find (Найти)
Вызывает диалоговое окно поиска
Find Next (Найти следующее)
Ищет следующее значение, заданное для
поиска
Replace (Заменить)
Ищет значение, заданное для поиска, и
заменяет его новым значением
Go To Row: First (Перейти на запись:
Первая)
Устанавливает указатель на первую запись
Go To Row: Last (Перейти на запись:
Последняя)
Устанавливает указатель на последнюю
запись
Go To Row: Next (Перейти на запись:
Следующая)
Устанавливает указатель на следующую
запись
Go To Row: Previous (Перейти на запись:
Предыдущая)
Устанавливает указатель на предыдущую
запись
Go To Row: Row (Перейти на запись:
Запись)
Устанавливает указатель на запись с
заданным номером
Go To Row: New (Перейти на запись:
В составе меню View (Вид) содержатся команды вызова окон и панелей
инструментальной среды Visual Basic 6 (табл. 1.3).
Таблица 1.3. Команды меню View
Команда
Назначение
Code (Код)
Открывает окно редактора программного
кода
Object (Объект)
Открывает окно конструктора форм
Object Browser (Браузер объектов)
Открывает окно браузера объектов
Immediate Window (Окно
непосредственного выполнения)
Открывает окно, предназначенное для ввода
и непосредственного выполнения команд
Locals Window (Окно Локальные)
Открывает окно, предназначенное для
просмотра значений переменных
Watch Window (Окно Наблюдение)
Открывает окно просмотра значений
выражений
Project Explorer (Проводник проекта)
Открывает окно проводника проектов
Properties Window (Окно свойств)
Открывает окно свойств объектов Properties
Form Layout Window (Окно макета формы) Открывает окно макета формы
Toolbox (Панель инструментов)
Отображает панель элементов управления
Data View Window (Окно просмотра
данных)
Открывает окно просмотра данных
Color Palette (Цветовая палитра)
Отображает цветовую палитру
Toolbars (Панели инструментов)
Открывает меню, предназначенное для
отображения в окне программы Visual Basic
следующих панелей: Debug (Отладка),
Editor (Редактор), Form Edit (Редактор
форм), Standard (Стандартная панель
инструментов)
Стандартная панель инструментов
Стандартная панель инструментов расположена под главным меню. Если эта панель
отсутствует в главном окне программы, для ее отображения в меню View (Вид) выберите
команду Toolbars (Панели инструментов), а затем значение Standard (Стандартная).
На стандартной панели инструментов расположены кнопки для вызова наиболее часто
употребляемых команд меню. Вы можете изменить расположение стандартной панели
инструментов, разместив ее в нижней части главного окна, справа или слева. Для этого с
помощью кнопки мыши захватите любую границу панели и переместите ее в любое
удобное для вас место.
Рис. 1.5. Стандартная панель инструментов Visual Basic 6
На рис. 1.5 показана панель инструментов в том виде, в каком она настроена при
установке Visual Basic 6. В составе панели целый набор кнопок, выполняющих наиболее
часто используемые команды. Их назначение описано в табл. 1.14.
Таблица 1.14. Кнопки стандартной панели инструментов
Кнопка
Название
Назначение
Add Standard EXE Project (Добавить
стандартный проект)
Добавляет стандартный ехе-проект
Add Form (Добавить форму)
Добавляет форму в проект
Menu Editor (Редактор меню)
Вызывает редактор меню
Open Project (Открыть проект)
Открывает проект
Save Project (Сохранить проект)
Сохраняет проект
Cut (Вырезать)
Вырезает информацию в буфер
обмена
Copy (Копировать)
Копирует в буфер обмена
Paste (Вставить)
Вставляет информацию из буфера
обмена
Find (Найти)
Осуществляет поиск информации по
контексту
Can't Undo (Отмена предыдущего)
Отменяет предыдущее действие
Can't Redo (Отмена повторного)
Восстанавливает отмененное
действие
Start (Запустить)
Запускает программу на выполнение
End (Закончить)
Прекращает выполнение программы
Break (Прервать)
Прерывает выполнение программы
Project Explorer (Проводник проекта)
Открывает окно проводника проектов
Properties Window (Окно свойств)
Открывает окно свойств
Form Layout Window (Окно макета
форм)
Открывает окно макета формы
Object Browser (Браузер объектов)
Открывает окно браузера объектов
Toolbox (Панель элементов управления)
Открывает панель элементов
управления
Data View Window (Окно просмотра
данных)
Открывает окно просмотра данных
Visual Component Manager (Менеджер
визуальных компонентов)
Открывает окно управления
визуальными компонентами Visual
Component Manager
Окно конструктора форм
Окно конструктора форм является основным рабочим окном, в котором выполняется
визуальное проектирование приложения (рис. 1.6). Вызвать это окно можно из главного
меню командой Object (Объект) меню View (Вид) или командой View Object
контекстного меню объекта, находящегося в группе Forms в проводнике проекта.
В окне конструктора форм визуально конструируются все формы приложения с
использованием инструментария среды разработки. Для точного позиционирования
объектов в форме в окне имеется сетка. Размер ячеек сетки можно менять. При
необходимости сетку можно отключать, воспользовавшись параметрами диалогового окна
Options, открываемого командой Options (Параметры) из меню View (Вид).
Рис. 1.6. Окно конструктора форм Visual Basic 6
Размер формы в окне можно изменять, используя маркеры выделения формы и мышь. Для
изменения размера формы необходимо установить указатель мыши на маркер и, когда он
примет вид двунаправленной стрелки, перемещать до получения требуемого размера
Панель элементов управления
Панель элементов управления — основной рабочий инструмент при
визуальной разработке форм приложения (рис. 1.7). Панель элементов
управления вызывается из меню View (Вид) командой Toolbox (Панель
элементов управления). Для вызова этой панели можно воспользоваться также
кнопкой Toolbox на стандартной панели инструментов.
В составе панели элементов управления содержатся основные элементы
управления форм — метки, текстовые поля, кнопки, списки и другие элементы
для быстрого визуального проектирования макета формы. На панели
представлены кнопки, назначение которых описано в табл. 1.15.
Рис. 1.7. Панель элементов управления Visual Basic 6
Таблица 1.15. Кнопки панели элементов управления
Кнопка
Название
Pointer (Указатель)
Назначение
Используется для позиционирования маркера
(указателя) мыши
Размещает в форме графическое окно, предназначенное
PictureBox (Графическое для объединения элементов в группы, для вывода в
окно)
него графических изображений, а также текста,
графических элементов и анимации
Label (Метка)
Размещает в форме объекты, предназначенные для
создания текстовой информации, надписей и
примечаний
TextBox (Текстовое
поле)
Размещает в форме текстовое поле, предназначенное
для ввода текстовой информации, чисел и дат
Frame (Рамка)
Создает в форме рамку с заголовком для группировки
объектов в логическую группу
CommandButton (Кнопка Размещает в форме кнопки управления для инициации
управления)
действий, выполнения команд, запуска программ
CheckBox (Флажок)
Размещает в форме флажок, предназначенный для
формирования условий выполнения программ или
каких-либо настроек, работающий по принципу "да —
нет"
OptionBufrton
(Переключатель)
Создает в форме переключатели для выбора режима
работы или настроек выполнения программы
ComboBox (Поле со
списком)
Создает в форме объект, содержащий одновременно
поле ввода и раскрывающийся список
ListBox (Список)
Создает в форме список для выбора одного или
нескольких значений из предлагаемого списка значений
HScrollBar
Размещает в форме горизонтальную полосу прокрутки,
(Горизонтальная полоса используемую в качестве ползунка для выбора
прокрутки)
значения из заданного диапазона
VScrollBar
(Вертикальная полоса
прокрутки)
Размещает в форме вертикальную полосу прокрутки,
используемую в качестве ползунка для выбора
значения из заданного диапазона
Timer (Таймер)
Размещает в форме таймер
DriveListBox (Список
устройств)
Создает в форме список устройств
DirListBox (Список
папок)
Создает в форме древовидный список папок
FileListBox (Список
файлов)
Создает в форме список файлов
Для размещения элементов управления в форме с помощью панели элементов выполните
следующие действия:
1. Выделите требуемый элемент управления с помощью мыши.
2. Перейдите в окно конструктора форм. Указатель мыши при этом превратится в крестик,
при помощи которого можно установить местоположение размещаемого объекта. Левой
кнопкой мыши зафиксируйте позицию нового объекта и, удерживая кнопку, задайте
размеры объекта.
Окно редактора меню
В окне редактора меню Menu Editor (рис. 1.8) можно создавать или редактировать строку
меню для формы.
Более подробно о работе в редакторе меню описано в главе 7.
Рис. 1.8. Окно редактора меню Visual Basic 6
Окно свойств
Окно Properties (Свойства) предназначено для отображения и настройки свойств формы,
а также размещенных в ней объектов. В нем, например, содержатся такие свойства
выбранного объекта, как позиция в форме, высота, ширина, цвет (рис. 1.9).
Диалоговое окно Properties вызывается командой
Properties Window (Окно свойств) из меню View
(Вид), кнопкой Properties Window на стандартной
панели инструментов или командой Properties
контекстного меню выбранного объекта.
Поскольку форма и элементы управления каждый
сами по себе являются объектами, набор свойств в
этом окне меняется в зависимости от выбранного
объекта. При помощи вкладок Alphabetic (По
алфавиту) и Categorized (По категориям) свойства
объекта можно просмотреть в алфавитном порядке
или по группам (категориям) соответственно.
Рис. 1.9. Окно свойств объектов Properties
В нижней части окна вы всегда найдете подсказку, поясняющую назначение выбранного
атрибута объекта. Более подробную информацию найдете в справочной системе Visual
Basic 6, нажав клавишу <Fl>. При этом необходимо предварительно выделить
интересующее вас свойство.
Используя диалоговое окно Properties, можно изменить установленные по умолчанию
свойства объектов. Часть свойств объекта, например, размеры и расположение объектов,
можно задать перемещением объекта и изменением его размеров с помощью мыши в
конструкторе форм. Свойства, установленные в окне свойств, допускается изменять при
выполнении приложения, написав соответствующие коды в процедурах, создаваемых с
помощью редактора кода.
Как правило, форма содержит много объектов. Если выбрать сразу несколько объектов, то
в окне свойств отобразятся общие для этих объектов свойства.
Совет В начале изучения Visual Basic 6 в окне свойств Properties предпочтительнее
пользоваться вкладкой Categorized (По категориям), так как на ней все свойства
сгруппированы по типам и поэтому более понятны. На рис. 1.9 показана именно эта
вкладка. В дальнейшем лучше пользоваться вкладкой Alphabetic (По алфавиту), где
требуемое свойство можно быстрее найти по алфавиту.
Рассмотрим основные группы свойств, представленные на вкладке Categorized окна
Properties.
Окно редактора исходного кода
Редактор кода — это мощный встроенный редактор с удобными средствами ввода
исходного кода программы. Из меню View (Вид) перейти в редактор кода можно с
помощью команды Code (Код).
Для быстрого открытия окна редактора кода достаточно дважды щелкнуть левой кнопкой
мыши, установив указатель на форме приложения. После начала редактирование кода
программы имя открытого окна появляется и в списке команд перехода между окнами
Window (Окно) главного меню.
Совет
Переход между макетом и окном редактора кода можно выполнять, используя список
меню Window.
Окно проводника проекта
Окно проводника проекта Project (рис. 1.12) очень похоже на аналогичное окно
проводника системы Windows и позволяет легко и быстро просматривать состав и
свойства выбранного проекта, перемещаться между проектами, если их открыто сразу
несколько, копировать необходимые объекты из окна одною проекта в другой, как это
осуществляется в проводнике системы Windows.
Проводник проекта можно вызвать командой Project Explorer (Проводник проекта) меню
View (Вид) или комбинацией клавиш <Ctrl>+<R>.
Рис. 1.12. Окно проводника проекта Visual Basic 6
Панель управления окна проводника проекта содержит три кнопки, которые имеют
следующее назначение:
Кнопка
Назначение
Открывает окно редактора с кодом программы, выбранного в проводнике
объекта
Открывает в конструкторе форм выбранный объект
Включает/выключает отображение папок
При нажатии правой кнопки мыши в окне проводника появляется контекстное меню,
содержащее команды для добавления, сохранения, удаления форм, элементов управления
и других объектов. В контекстном меню продублированы действия кнопок окна
проводника.
Окно Immediate
Окно Immediate (Непосредственное выполнение) предназначено для ручного ввода и
выполнения команд Visual Basic 6 (рис. 1.15). Это окно появляется автоматически при
прерывании работы программы в точках останова программы. Для выполнения команды
или оператора Visual Basic необходимо набрать строку команды и нажать клавишу
<Enter>.
В сочетании с окнами Locals (Локальные) и Watches (Наблюдение), окно Immediate
является удобным средством для отладки и проверки работы программы в пошаговом
режиме. Проверяемые части или блоки программы можно копировать из программных
модулей приложения в окно Immediate, и после проверки и внесения необходимых
изменений по результатам контроля возвращать в модуль приложения.


Рис. 1.15. Окно Immediate среды проектирования Visual Basic
Создание проекта
Создание любого приложения в Visual Basic начинается с создания проекта. Проектом
является совокупность файлов, входящих в приложение и хранящих информацию о его
компонентах. Чтобы создать свой новый проект, запустите программу Visual Basic.
Появится диалоговое окно New Project (Новый проект), показанное на рис. 3.1. По
умолчанию выбрана вкладка New (Новый) и выделен значок Standard EXE. Нажмите
кнопку Открыть.
Замечание
Диалоговое окно New Project (рис. 3.1) можно также использовать для открытия ранее
созданных проектов. Вкладка Existing (Существующий) имеет вид окна, позволяющего
выбрать на диске требуемый проект. На вкладке Recent (Последний) диалогового окна
содержится список проектов, которые вы открывали в последнее время.
Если при запуске программы Visual Basic не появляется диалоговое окно New Project, а
это возможно из-за того, что в нем был установлен флажок Don't show this dialog in the
future (He показывать это диалоговое окно в будущем), то для создания проекта
выполните одно из следующих действий:
в меню File (Файл) выберите команду New Project (Новый проект);
нажмите комбинацию клавиш <Ctrl>+<N>.
Рис. 3.1. Диалоговое окно New Project, появляющееся при запуске программы Visual Basic
Откроется диалоговое окно New Project, представленное на рис. 3.2. Установите курсор на
значок Standard ЕХЕ и нажмите кнопку ОК или дважды щелкните на этом значке.


Рис. 3.2. Диалоговое окно New Project
Помимо вышеперечисленных средств, для создания нового приложения можно также
выполнить следующие действия:
нажать кнопку Add Standard EXE Project на стандартной панели инструментов;
нажать кнопку Add Form на стандартной панели инструментов. В открывшемся
диалоговом окне Add Form (рис. 3.3) установите курсор на значок Form и нажмите кнопку
Открыть или дважды щелкните на значке.
Рис. 3.3. Диалоговое окно Add Form
Рис. 3.4. Окно Project, предназначенное для разработки приложения
В результате открывается окно Project (рис. 3.4), содержащее новую форму, с которой
можно начинать работать: изменять установленные по умолчанию свойства, помещать в
нее элементы управления, используя для этого панель элементов управления,
являющуюся основным рабочим инструментом при разработке форм приложения. В
строке заголовка окна программы Visual Basic появляется слово design, указывающее, что
программа находится в режиме разработки приложения.
Сохранение проекта
Вероятно, будет излишним напоминание о том, что проект необходимо в процессе работы
периодически сохранять. Даже если вы не боитесь, что пропадет электричество, рано или
поздно у вас возникнет необходимость в сохранении данных, чтобы продолжить работу
над проектом на следующий день.
При сохранении проекта необходимо помнить, что проект состоит из входящих в него
компонентов, таких как формы, модули кода, классы, элементы управления и т. д.
Поэтому процесс сохранения проекта требует последовательного сохранения его
компонентов. Рассмотрим сохранение нашего нового проекта, состоящего из одной
пустой формы.
Для сохранения проекта выполните следующие действия:
1. В меню File (Файл) выберите команду Save Project (Сохранить проект) или нажмите
кнопку Save Project на стандартной панели инструментов.
2. В открывшемся диалоговом окне Save File As (рис 3.5) список Тип файла содержит
значение Form Files, указывая, что сохраняется входящая в приложение форма. Используя
раскрывающийся список Папка, выберите папку, в которой будет сохранена форма, затем
в поле Имя файла введите имя формы и нажмите кнопку Сохранить.



Рис. 3.5. Диалоговое окно Save File As для сохранения файлов приложения
3. Так как никаких компонентов, кроме формы, новое приложение не содержит,
появляется диалоговое окно Save Project As (Сохранить проект как) для сохранения
самого проекта. По умолчанию в списке Папка выбрана папка, в которой сохранили
форму. Введите наименование проекта и нажмите кнопку Сохранить.
При последующем сохранении проекта Visual Basic по умолчанию сохраняет файлы под
их именами. Если же в проект с момента последнего сохранения были добавлены новые
компоненты, откроется диалоговое окно Save File As для присвоения им имен.
Совет
Для облегчения работы с проектом и входящими в его состав файлами, прежде чем
сохранять проект, создайте отдельную папку, в которой затем и сохраните все файлы.
Открытие проекта
Открытие проекта может вызвать некоторые затруднения. Вроде бы делаете все
правильно: в меню File (Файл) выбираете команду Open Project (Открыть проект), затем в
открывшемся диалоговом окне Open Project находите на диске необходимый файл и
нажимаете кнопку Открыть. Но где же проект? В окне программы Visual Basic его нигде
не видно.
Для того чтобы получить доступ к компонентам, входящим в проект, выполните одно из
следующих действий:
в меню View (Вид) выберите команду Project Explorer (Проводник проекта):
нажмите кнопку Project Explorer на стандартной панели инструментов;
нажмите комбинацию клавиш <Ctrl>+<R>.





Рис. 3.6. Окно проводника проекта содержит входящие в проект компоненты
Откроется окно проводника проекта (рис 3.6), содержащее список всех его компонентов.
В верхней части окна размещено имя проекта project test, заданное нами при его
сохранении. Ниже располагаются входящие в проект компоненты. Созданный нами
проект содержит только форму, имеющую наименование Form_test и расположенную в
группе Forms. Для открытия формы дважды щелкните на ее имени.
Выполнение приложения
Для выполнения созданного в Visual Basic приложения существует много способов.
Воспользуйтесь любым из них:
выберите в меню Run команду Start (Выполнить);
нажмите кнопку Start на стандартной панели инструментов Visual Basic;
нажмите клавишу <F5>.
Создание формы
При использовании команд, создающих новый проект, Visual Basic создает проект и
открывает новую форму (рис. 3.4), после чего вы можете приступать к созданию
приложения.
Любая форма в Visual Basic состоит из объектов, называемых элементами управления, с
помощью которых осуществляется взаимодействие с пользователями приложения, а также
с другими программами. Все элементы управления имеют характерные для них свойства.
Для любого объекта вы можете указать действия, выполняемые программой при
наступлении определенных событий. Процесс создания формы в конструкторе форм
состоит в размещении в форме объектов и определении свойств, а также связанных с ними
событий и выполняемых действий. Для размещения в форме объектов используется
панель элементов управления. Чтобы отобразить ее на экране, выполните одно из
следующих действий:
выберите из меню View (Вид) команду Toolbox (Панель элементов управления);
нажмите кнопку Toolbox на стандартной панели инструментов.
На рис. 3.7 показана новая форма и панель элементов управления, используемая для
размещения в форме объектов. Описание кнопок этой панели приведено в табл. 1.15 главы
1. Более подробно назначение кнопок рассматривается ниже.
Размещение элементов управления в форме осуществляется следующим образом:
Рис. 3.7. Окно конструктора форм
Рис. 3.8. Размещение в форме элемента управления
1. Нажмите кнопку Toolbox соответствующего элемента управления на панели элементов
управления. Например, для размещения в форме текстовой информации необходимо
щелкнуть кнопку Label.
2. Установите курсор, принявший вид перекрестия, в место предполагаемого размещения
объекта в форме.
3. Нажмите кнопку мыши и, не отпуская ее, нарисуйте рамку требуемого размера. При
этом рядом с курсором мыши появляются текущие размеры создаваемого объекта в
твипах (рис. 3.8).
4. Отпустите кнопку мыши.
Замечание
Заданные при размещении размеры элемента управления вы можете позднее изменить,
используя мышь или окно свойств объекта
Свойства объектов формы




Все объекты Visual Basic, размещенные в форме (заголовок, поля, надписи, кнопки, линии
и т. д.), а также сама форма характеризуются свойствами, которые вы можете настроить в
соответствии со своими требованиями. Для просмотра и редактирования свойств объекта,
размещенного в форме, выделите его, а затем выполните одно из следующих действий:
выберите команду Properties Window (Окно свойств) меню View (Вид);
нажмите правую кнопку мыши и выберите команду контекстного меню Properties
(Свойства);
нажмите кнопку Properties Window (Окно свойств) на стандартной панели
инструментов;
нажмите клавишу <F4>.
В результате откроется окно Properties со свойствами выделенного объекта (рис. 3.9).
Раскрывающийся список в верхней части окна Properties содержит перечень всех объектов
формы. Его можно использовать для выбора объекта вместо выделения нужного объекта в
форме.
Ниже списка объектов формы расположены две вкладки. Вкладка Alphabetic (По
алфавиту) содержит расположенные по алфавиту названия свойств объектов, а вкладка
Categorized (По категориям) — свойства объектов, сгруппированные по категориям.
В нижней части диалогового окна Properties содержится описание выбранного в списке
свойства.
Рис. 3.9. Окно свойств Properties
Для изменения какого-либо свойства объекта необходимо открыть окно Properties и
перейти на строку, содержащую данное свойство. Значение свойства отобразится в
столбце, расположенном правее наименования свойства. При изменении значения
свойства возможны варианты действий, описанные в табл. 3.1.
Таблица 3.1. Действия, выполняемые для изменения свойства
Тип свойства
Возможны
более
вариантов
свойства
Действие
При выборе такого свойства в правом столбце появляется кнопка
два или раскрытия списка, позволяя для ввода нового значения
различных использовать элементы списка. Для циклического просмотра
значений списка значений свойства можно использовать двойной щелчок
на наименовании свойства. На рис. 3.10 показан список для
изменения значения свойства Alignment (Выравнивание)
При выборе такого свойства, предназначенного для цветовых
настроек объекта, в правом столбце появляется кнопка
раскрытия списка, при нажатии на которую открывается
Возможно
много
небольшое окно с двумя вкладками (рис. 3.11). Вкладка Palette
различных
вариантов
содержит цветовую палитру, используемую для задания цвета.
значения свойства
Вкладка System позволяет для задания цвета использовать цвета,
примененные для окрашивания системных элементов окна
программы Visual Basic
При выборе свойства в правом столбце появляется кнопка с
Возможен
выбор тремя точками, при нажатии на которую открывается диалоговое
свойств с помощью окно, из которого выбираются необходимые значения.
окна настройки
Например, при настройке свойства Font (Шрифт) открывается
диалоговое окно Выбор шрифта
Значение
свойства
При редактировании такого свойства информация вводится в
вводится
с
правый столбец выбранного свойства с помощью клавиатуры.
использованием
Примером является свойство Caption (Надпись)
клавиатуры
Вкладка Categorized (По категориям) окна свойств Properties (рис. 3.12) содержит
свойства, разделенные на категории, представленные в табл. 3.2.
Таблица 3.2. Категории свойств
Категория
Описание
Appearance
(Оформление)
В этой категории расположены свойства, определяющие внешний вид
объекта. Например, свойство Caption формы позволяет задать текст,
размещаемый в заголовке, а свойство BorderStyle определяет стиль
рамки объекта. При установленном для данного свойства значения
Sizable с помощью курсора можно изменять размер формы при
выполнении
Behavior
(Поведение)
Свойства этой категории определяют поведение объекта. Например,
если для объекта свойство visible имеет значение False, то при
выполнении он не будет виден. Аналогичное значение, установленное
для свойства Locked, запрещает ввод информации в поле. Свойство
ScrollBars объекта TextBox определяет, будут ли в поле размещены
полосы прокрутки
Data (Данные)
Данная категория позволяет определить используемые данные. Так,
например, свойство DataField позволяет указать имя поля данных,
свойство DataFormat — формат данных
DDE
(Динамический
обмен данными)
Свойства этой категории используются при динамическом обмене
данными с другими приложениями
Font (Шрифт)
Позволяет задать шрифт текста объекта
List (Список)
Свойства этой категории используются при определении объектов
типа ListBox И ComboBox
Misc (Общие)
В эту категорию входят свойства общего характера. Например, Name
задает имя объекта, по которому объект идентифицируется в форме и
в тексте программы. Свойство ToolTipText позволяет задать текст
подсказки, который будет появляться при установке курсора на объект
Position
(Расположение)
Свойства этой категории позволяют задать положение объекта в
форме относительно ее верхнего левого угла, а также его размеры.
Если объектом является сама форма, то в этой категории расположены
свойства Height, width, Left, Тор, определяющие размер формы и ее
положение в режиме выполнения на экране. Кроме того, задать
положение формы при выполнении можно, используя свойство
StartUpPosition. Например, если вы установите значение CenterScreen,
то в режиме выполнения форма будет размещена в центре экрана.
Свойство Moveable определяет, можно ли перемещать форму по
экрану при выполнении
Scale
(Масштаб)
Свойства данной категории определяют масштаб объекта. Используя
свойство ScaleMode, можно задать единицы измерения в терминах
стандартного масштаба в твипах, пунктах, пикселах, символах и т. д.
Свойства ScaleLeft и ScaleTop определяют координаты левого
верхнего угла объекта, a ScaleWidth и ScaleHeight — единицы
измерения на основе текущей ширины и высоты области рисования
Рис. 3.10. Выбор значения свойства объекта из списка
Рис. 3.11. Настройка свойства BackColor
Рис. 3.12. Окно свойств Properties с выбранной вкладкой Categorized
Замечание
Для удобства пользования вкладкой Categorized слева от наименования категорий
расположены значки, содержащие изображение знаков плюс или минус. При
установленном значке со знаком плюс свойства, входящие в текущую категорию, не
видны, а в окне Properties отображается только название категории. Чтобы открыть список
свойств, необходимо щелкнуть на значке плюс. Список свойств данной категории
откроется, а знак плюс превратится в знак минус.



События и методы
Visual Basic является объектно-ориентированным языком программирования. Помимо
свойств, объект имеет методы, определяющие выполняемые им действия, например
перемещение, изменение размеров. Используя предусмотренные для объектов методы,
можно обойтись минимальным программированием приложения. Например, для печати
образа формы достаточно вставить оператор следующего вида:
Form1.PrintForm
где Form1 — форма, а PrintForm — название метода.
Среди методов, которыми обладают все объекты, можно назвать Move, позволяющий
перемещать объект; setFocus, активизирующий объект, чтобы иметь возможность с ним
взаимодействовать.
Помимо свойств и методов, для объектов можно задать программные коды, написанные
на языке Visual Basic и выполняемые при наступлении связанных с ними событий.
Например, при нажатии кнопки происходит событие click (Нажатие кнопки мыши). Для
обработки данного события при создании формы должна быть написана требуемая
процедура. Чтобы открыть окно, предназначенное для ввода программного кода,
выполните одно из следующих действий:
сделайте двойной щелчок на объекте, для которого хотите просмотреть или создать
программный код;
установите курсор на объект и из меню View (Вид) выберите команду Code (Код);
выберите команду контекстного меню объекта View Code.
При выполнении любого из этих действий откроется окно Project, показанное на рис. 3.13.
Рис. 3.13. Окно Project для задания программного кода
В верхней части окна Project расположены два раскрывающихся списка Object и
Procedure. Левый список Object содержит все объекты формы, включая и саму форму. В
списке Procedure размещены события, для которых можно создать процедуру.
В области, предназначенной для написания кода, расположены следующие команды:
Private Sub Textl_Click()
End Sub
где Textl_click является именем процедуры. Оно состоит из имени объекта, для которого
создается процедура, заданного свойством Name, и наименования события, в данном
случае click (Щелчок кнопкой мыши). Текст процедуры помещается между операторами
sub и End Sub.
Чтобы создать процедуру для обработки события, необходимо выполнить следующие
действия:
1. Открыть окно процедур Project любым удобным способом.
2. Из раскрывающегося списка Object выбрать объект, для которого создается процедура.
3. Используя раскрывающийся список Procedure, выбрать обрабатываемое событие.
4. Между операторами Sub и End Sub поместить текст процедуры.
Для настройки окна процедур Project используется вкладка Editor (Редактор) диалогового
окна Options, открываемого командой Options (Параметры) меню Tools (Сервис). При
установке в этом окне флажка Default to Full Module View отображается список всех
процедур. Для удобства просмотра процедур их можно разделить линиями, установив
флажок Procedure Separator.
Совет
Для более быстрого перехода из режима просмотра в окне Project одной процедуры ко
всем процедурам можно использовать кнопки Procedure View и Full Module View,
расположенные в левом нижнем углу.
Функции ввода и вывода
Ввод данных осуществляется при помощи функции InputBox, которая выводит на
экран диалоговое окно, содержащее сообщение и поле ввода, устанавливает режим
ожидания ввода текста пользователем или нажатия кнопки, а затем возвращает значение
типа String, содержащее текст, введенный в поле:
InputBox(сообщение[, заголовок окна]),
где сообщение - строковое выражение, отображаемое как сообщение в диалоговом окне,
может содержать нескольких физических строк, для разделения которых допускается
использование символа возврата каретки (Chr(13)), символа перевода строки (Chr(10)) или
комбинацию этих символов (Chr(13) & Chr(10));
заголовок окна- строковое выражение, отображаемое в строке заголовка
диалогового окна. Если этот аргумент опущен, в строку заголовка помещается имя
приложения.
Вывод данных осуществляется при помощи функции MsgBox, которая выводит на
экран диалоговое окно, содержащее сообщение, устанавливает режим ожидания нажатия
кнопки пользователем, а затем возвращает значение типа Integer, указывающее, какая
кнопка была нажата:
MsgBox(сообщение[, значки и кнопки][, заголовок окна]),
где сообщение - строковое выражение, отображаемое как сообщение в диалоговом окне,
может содержать нескольких физических строк, для разделения которых допускается
использование символа возврата каретки (Chr(13)), символа перевода строки (Chr(10)) или
комбинацию этих символов (Chr(13) & Chr(10));
значки и кнопки - числовое выражение, представляющее сумму значений, которые
указывают число и тип отображаемых кнопок, тип используемого значка, основную
кнопку ;
заголовок окна - строковое выражение, отображаемое в строке заголовка
диалогового окна. Если этот аргумент опущен, в строку заголовка помещается имя
приложения..
Public Sub Лаб2()
x=InputBox("Введите значение x", "Окно ввода данных"))
y = Sin(x ^ 2)+Cos(x) ^ 2
MsgBox "Проверка", vbInformation, "Окно сообщения"
MsgBox "x=" & x & Chr(13) & "y=" & y, , "Окно вывода"
End Sub
Ввод и вывод в диалоговых окнах (рис.2):
Рис.2
Создание пользовательской формы для ввода и вывода данных. Создать форму:
Вставка  Форма (UserForm). С помощью панели Элементов управления
на форму
перетаскиваются необходимые элементы (Кнопки, Надписи и.т.д.) (рис.4). Затем
устанавливаются свойства элементов и формы, на пример, имя элемента: окно Свойств 
Caption новое имя. У элементов с надписями можно изменить свойство Font
(Шрифт:стиль, размер,цвет и т.д.).
Для работы с формой, т.е. для ввода и вывода данных с помощью формы, назначают
кнопкам формы процедуры-события. Для этого необходимо дважды щелкнуть на
элементе и ввести текст соответствующей программы (рис.3).
Запуск формы
инструментов.
осуществляется командой Запуск либо кнопками на панели
Форма
Рис.3.
Результат:
Рис.4
Оператор присвоения
Оператор присвоения присваивает выражение переменной или константе. Оператор
присвоения всегда включают знак равенства (=).
Комментарии позволяют объяснить процедуру или определенную инструкцию всем
читателям программы. Когда процедура выполняется, Visual Basic игнорирует
комментарии.
Строки комментария начинаются с апострофа (') или со слова Rem, за которым
следует пробел. Их можно вносить в любое место процедуры. Чтобы внести комментарий
в строку, на которой расположен оператор, после оператора следует поставить апостроф, а
за ним комментарий.
По умолчанию комментарии выделяются в тексте зеленым цветом.
Арифметические действия.
Если выражение содержит несколько операторов, то значения компонентов
выражения рассчитываются в определенном порядке. Такой порядок называют порядком
старшинства или приоритетом операторов. Если выражение содержит операторы разных
типов, то первыми выполняются арифметические операции, следом за ними операции
сравнения, а последними логические операции. Все операторы сравнения имеют равный
приоритет, т.е. выполняются в порядке их расположения в выражении слева направо.
Арифметические и логические операторы выполняются в порядке их расположения в
следующей таблице:
Арифметические
Сравнения
Логические
Возведение в степень (^)
Равняется (=)
Not
Изменение знака (–)
Не равняется (<>)
And
Умножение и деление (*, /)
Меньше (<)
Or
Целое деление (\)
Больше (>)
Xor
Деление по модулю (Mod)
Меньше или равняется (<=)
Eqv
Сложение и вычитание (+, –)
Больше или равняется (>=)
Слияние строк (&)
Стоящие рядом в выражении операторы умножения и деления выполняются слева
направо. В таком же порядке выполняются стоящие рядом операторы сложения и
вычитания. Операторы внутри круглых скобок всегда выполняются раньше, чем
операторы вне скобок. Порядок выполнения операторов, стоящих внутри скобок,
определяется старшинством операторов.
Оператор конкатенации (слияния строк) (&) не является арифметическим
оператором, однако, по порядку старшинства он следует сразу за арифметическими
операторами и перед операторами сравнения.
Арифметические функции:
Действие
Функция
Тригонометрические вычисления.
Atn, Cos, Sin, Tan
Общие вычисления.
Exp, Log, Sqr
Генерация случайных чисел.
Randomize, Rnd
Вычисление абсолютного значения
Abs
Определение знака выражения.
Sgn
Выделение целой части числа.
Fix, Int
Описание типов данных.
Для описания типов переменных и выделения для них памяти используется
оператор
Dim имя As тип [, имя As тип] . . .
где имя - набор символов не более 255 символов, должны начинаться с буквы, может
содержать пробел, точку (.), восклицательный знак (!) или символы @, &, $, #. Не
допускается использование повторяющихся имен на одном уровне области определения.
тип - тип данных переменной; поддерживаются типы Integer, Long, Currency, Single,
Double, Date, String (для строк переменной длины), String * длина (для строк
фиксированной длины), Object, Variant, определяемый пользователем тип или объектный
тип. Для каждой описываемой переменной следует использовать отдельное предложение
As тип.
По умолчанию переменная получает тип Variant.
Оператор требования обязательного описания переменных:
Option Explicit
Устанавливается в начале процедуры.
Организации вывода в окно отладки во время выполнения.
Debug.Print [{Spc(n) | Tab(n)} выражение]
где Spc(n) - указывает количество пробелов n, вставляемых в выводящийся текст;
Tab(n)
- помещает курсор в экранный столбец с номером n;
выражение - числовое или строковое выражение, определяющее выводящийся текст.
В качестве выражения может использоваться функция вывода по формату.
Для печати нескольких выражений следует разделять их точкой с запятой или
пробелом.
Если этот аргумент опущен, выводится пустая строка.
Строковые данные, операции и функции
В редакторе есть возможность выполнять разнообразные действия с текстовыми
данными (или строковыми или символьными).
Существует одна операция для работы со строками – операция объединения (или
склеивания или конкатенация) строк. Знак операции & либо знак +. С помощью этой
операции можно соединить несколько строк в одну. Перед знаком & и после обязательно
устанавливать пробел.
Все остальные операции выполняются с помощью встроенных функций.
Запись функция
<Имя функции>(<параметры>),
параметры – один или несколько, разделенных запятыми, могут быть числами и
строками.
Результатом выполнения функции может быть либо числовое значение либо типа
Variant, для возвращения значения типа String, в конце имени функции добавляется знак
$.
Синтаксис
Действие
функции
Возвращает длину (количество символов) строки а
Len(а)
Поиск строки в строке а, возвращает № позиции в строке а первого
Instr(а,в,n)
вхождения строки в, начиная с позиции n
Возвращает из строки а m символов, начиная с позиции n,
Mid(а,n,m)
Mid(а,n,m)=в а также используется как оператор для замещения части строки а другой
строкой в
Возвращает n символов с начала строки а
Left(а,n)
Возвращает n символов с конца строки а
Rigth(a,n)
Отсекает пробелы с начала строки а,
Ltrim(а)
с конца строки,
Rtrim(а)
с обеих сторон
Trim(а)
Изменяет регистр букв в строке а на верхний,
Ucase(а)
Нижний
Lcase(а)
Преобразует ASCII-код символа в строку,
Chr(n)
преобразует первый символ строки а в код символа
Asc(а)
Преобразует число n в строку
Str(n)
Преобразует строку а в число
Val(а)
Код 13 – код перехода на следующую строку.
Функции преобразования
Val(строка) -преобразует строку цифровых символов (до первого нецифрового
символа) в число.
Str(число) - преобразует число в строку.
Chr(код символа) - преобразует код символа в символ.
Оператор условный линейный - обеспечивает выполнение одного или
нескольких операторов, в зависимости от истинности или ложности заданного условия:
If условие Then операторы [Else операторы ]
Условный блочный:
If условие1 Then
блок операторов1
[ElseIf условие2 Then
блок операторов2
. . .
]
[Else
блок операторовn]
End If
где условие - одно или несколько выражений, принимающее значения True (Истина) или
False (Ложь), в условие используют операции сравнения (< > =) и логические операции
(And, Or);
операторы - один или несколько операторов, разделяемых двоеточиями;
выполняются, если условие имеет значение True.
Оператор выбора Select Case - выполняет одну из нескольких групп операторов в
зависимости от значения выражения выбора:
Select Case выражение выбора
Case список проверок1
блок операторов1
[Case список проверок2
блок операторов2
. . .
]
[Case Else
блок операторов]
End Select
где выражение выбора - любое числовое или строковое выражение;
список проверок - cписок с разделителями, состоящий из одной или нескольких форм
следующего вида:
- выражение1, выражение2, …
- выражение1 To выражение2,
- Is операторСравнения выражение,
ключевое слово To задает диапазон значений, ключевое слово Is с операторами сравнения
задает диапазон значений. В каждом предложении Case допускается использование
нескольких выражений или диапазонов;
блок операторов - один или несколько операторов.
Оператор
цикла с известным числом повторений For...Next повторяет
выполнение группы операторов указанное число раз:
For счетчик = начало To конец [Step шаг]
блок операторов
[Exit For]
[блок операторов]
Next [счетчик]
где счетчик - числовая переменная, используемая в качестве счетчика цикла;
начало - начальное значение переменной счетчик;
конец конечное значение переменной счетчик;
шаг значение, на которое изменяется счетчик при каждом выполнении тела
цикла, если это значение не задано, по умолчанию шаг равен единице, может быть как
положительным, так и отрицательным;
блок операторов - одтн или несколько операторов между For и Next, которые
выполняются указанное число раз.
Оператор итерационный Do...Loop повторяет выполнение набора инструкций,
пока условие имеет значение истина:
Do [{While | Until} условие]
блок операторов
[Exit Do]
[блок операторов]
Loop[{While | Until} условие]
где условие - числовое выражение или строковое выражение, которое имеет значение True
или False, предворяется одним из ключевых слов While или Until;
блок операторов один или несколько операторов, выполнение которых
повторяется, пока условие имеет значение True или пока оно не приобретет значение True.
Альтернативный способ выхода из цикла предоставляет инструкции Exit For и
Exit For. В любых местах цикла может размещаться любое число таких инструкций.
Вывод результатов вычисления по формату функция:
Возвращает значение типа Variant (String), содержащее выражение,
отформатированное согласно инструкциям, заданным в описании формата.
Format(выражение[, формат])
где выражение - обязательный параметр, любое допустимое выражение;
формат - необязательный, любое допустимое именованное стандартных числовых,
строковых или определяемое пользователем выражение формата.
Числовые форматы:
0
Прототип цифры. Выводит цифру или нуль.
#
Прототип цифры. Выводит цифру или не выводит ничего.
.
Десятичный разделитель. Десятичный разделитель указывает, сколько цифр
следует вывести в целой и дробной части форматируемого числа, т.е. слева и справа от
десятичного разделителя В качестве десятичного разделителя используется запятая.
E- E+ e- e+ Экспоненциальный формат. Если строка формата содержит хотя бы один
прототип цифры (0 или #) справа от символов "E-", "E+", "e-" или "e+", то число
выводится в экспоненциальном формате, а между числом и показателем степени
помещаются символы "E" или "e". Число цифр в показателе степени определяется числом
символов вывода цифры справа от символа экспоненциального формата.
-+$()
Вывод указанного символа.
Массив – это последовательный, упорядоченный набор однотипных элементов с
общим именем. Каждый элемент массива имеет индекс – уникальный номер, который
заключается в скобки. Массивы в зависимости от количества индексов, могут быть одномерные и
многомерные. Как и другие переменные, массивы описываются с помощью инструкций
Dim. Разница между скалярными переменными (т.е. не массивами) и массивами состоит в
том, что для последних надо указывать размер массива. Массив с заданным размером
называется массивом фиксированного размера - статическим. Массив с переменным
размером называется динамическим.
Описание массивов
Dim имя (индекс1[,индекс2]) [As тип], …
где имя - имя массива, удовлетворяющее стандартным правилам именования переменных;
индекс1, индекс2 - размерности переменной массива; допускается описание до 60
размерностей; индексы записывается следующим образом:
[нижний1 To] верхний1 [,[нижний2 To] верхний2] ,
если нижний индекс не задан явно, нижняя граница массива определяется инструкцией
Option Base, если отсутствует инструкция Option Base, нижняя граница массива равняется
нулю;
тип - тип данных массива (Integer, Long, Single, Double, String и т.д
Для описания динамических массивов инструкцию Dim записывают с пустыми
скобками. После ввода или расчета размерности массива, массив переопределяется
оператором ReDim:
ReDim имя (индекс1[,индекс2])
Оператор цикла For Each...Next повторяет выполнение дока операторов для
каждого элемента массива или семейства.
For Each элемент In группа
Блок операторов
[Exit For]
Next [элемент]
где элемент - переменная, используемая для выполнения итераций по элементам
семейства или массива, для массива она может быть только переменной типа Variant;
группа - имя семейства объектов или массива (за исключением массивов с
определяемыми пользователем типами);
блок операторов - один или несколько операторов, которые выполняются над каждым
элементом группы.
При работе с массивами данных возникает необходимость использования
вложенных циклов (один цикл For...Next или Do…Loop или
For...Each...Next
располагается внутри другого):
For I = 1 To 10
For J = 1 To 10
For K = 1 To 10
...
Next K
Next J
Next I
Однако, в случае For...Next счетчик каждого цикла должен иметь уникальное имя,
For...Each...Next - каждый элемент цикла должен быть уникальным.
Оператор Option Base применяется на уровне модуля для задания нижней границы
индексов массива:
Option Base {0 | 1}
Поскольку по умолчанию используется значение 0, инструкция Option Base никогда не
является обязательной, если она используется, то должна появляться в модуле перед
любой процедурой и должна предшествовать описаниям массивов, включающих
размерности.
- типовые задачи решения двумерных массивов.
В VBA есть возможность задать свойства объектов программно с помощью
оператора With … End With, который выполняет последовательность операторов над
одиночным объектом
With объект
[блок операторов]
End With
где объект -имя объекта;
блок операторов - один или несколько операторов, выполняемых над объектом.
Тип переменной, создаваемая пользоватем представляет собой сложный тип,
состоящий из нескольких элементов простого типа:
[Private | Public] Type имяПеременной
имяЭлемента As тип
[имяЭлемента As тип]
...
End Type
где Public\Private -определяет доступность переменной пользовательского типа - для всех
процедур во всех модулях всех проектов|только в модуле, в котором выполняется
описание;
имяПеременной - имя пользовательского типа, удовлетворяющее правилам
именования переменных;
имяЭлемента - имя элемента составляющего пользовательский тип, один или
несколько элементов любого типа данных;
Тип - тип элемента (Integer, Long, Currency, Single, Double, Date, String, Variant).
После определения типа данных с помощью инструкции Type переменную
объявляют оператором Dim.
Обращение к элементам
имяПеременной. имяЭлемента.
Файлы.
При работе с большим количеством данных часто бывает удобно записывать
данные в файл или считывать из файла.
Файлы в зависимости от структуры данных и способа их записи можно разделить
на файлы:
- последовательного доступа;
- произвольного доступ;
- двоичного.
Для работы с файлами (запись /чтение данных и т.д.) необходимо открыть файл,
т.е. зарезервировать буфер ввода/вывода, определить режим использования этого буфера,
выполнение операций ввода/вывода:
Open файл For режим доступ As [#] №Файла
где файл -строковое выражение, указывающее имя файла; может содержать имя каталога
или папки и имя диска (полный путь);
режим доступа -ключевое слово, указывающее режим файла: Input, Output, Append;
№файла -допустимый номер файла в интервале от 1 до 511 включительно. Для
определения следующего свободного номера файла можно использовать функцию
FreeFile.
Если аргумент файл описывает несуществующий файл, такой файл будет создан
при открытии в режиме Append, Output.
В режиме Input можно еще раз открыть уже открытый файл под другим номером,
не закрывая его. В режиме Append и Output необходимо закрыть файл, чтобы получить
возможность открыть его еще раз под другим номером.
Для завершения операций с файлом, используется оператор закрытия:
Close [списокНомеровФайлов]
где списокНомеровФайлов - необязательный аргумент может представлять один или
несколько номеров файлов. Если аргумент списокНомеровФайлов опущен, закрываются
все активные файлы, открытые с помощью инструкции Open.
Также закрывает все файлы оператор:
Reset
Чтение данных из последовательного файла:
Input #№файла, переменные
где №Файла - любой допустимый номер файла;
списокПеременных -разделяемый запятыми список переменных, которым следует
присвоить значения, считанные из файла.
Чтобы иметь возможность корректно считывать данные из файла в переменные с
помощью инструкции Input #, следует всегда использовать инструкцию Write # (а не Print
#) для записи данных в файлы. Использование инструкции Write # гарантирует
правильность размещения разделителей между отдельными элементами данных.
Записывает отформатированные данные в файл с последовательным доступом.
Print #№файла, [списокВывода]
Записывает неформатированные данные в файл с последовательным доступом.
Write #№файла, [списокВывода]
где №Файла -любой допустимый номер файла.
СписокВывода - выражение или список выражений, которые следует записать.
В отличие от инструкции Print #, инструкция Write # вставляет запятые между
элементами и заключает строки в кавычки по мере записи их в файл.
Функции
FreeFile[()]
возвращает значение представляющее следующий незанятый номер файла, доступный для
использования оператором Open, значение 0 (используется по умолчанию) задает
возвращение номера файла из диапазона 1 – 255 включительно. Значение 1 задает
возвращение номера файла из диапазона 256 – 511.
EOF(№файла)
возвращает значение содержащее логическое значение True при достижении конца файла
и в противном случае возвращается значение False.
Download