Здавалка
Главная | Обратная связь

Конструкция If . . . Then . . . Else

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

If условие1 Then

выражение1

ElseIf условие2 Then

выражение2

. . .

Else

выражение-n

End If

 

Конструкция Select Case работает с единственным проверяемым выражением, которое вычисляется один раз при входе в эту конструкцию. Затем VBA сравнивает полученный результат со значениями, задаваемыми в операторах Case конструкции. Если найдено совпадение, выполняется блок операторов, ассоциированный с оператором Case:

Select Case проверяемое_выражение

[Case список_выражений1

[блок_операторов1]]

[Case список_выражений2

[блок_операторов2]]

. . .

[Case Else

[блок_операторовn]]

End Select

49. Управляющие структуры типа цикл (Do...Loop, Do While...Loop, Do...Loop While, Do Until...Loop, Do...Loop Until, For...Next)

Конструкция For . . . Next. Когда число повторений известно заранее, используют цикл For . . . Next. В цикле For используется переменная, называемая переменной цикла или счетчиком цикла, которая увеличивается или уменьшается на заданную величину при каждом повторении цикла. Синтаксис этой конструкции следующий:

For counter = start To end [Step increment]

операторы

Next [counter]

Параметры counter (счетчик), start (начало цикла), end (конец цикла) и increment (приращение) являются числовыми.

Конструкция For Each . . . Next

Цикл For Each . . . Next похож на цикл For . . . Next, но он повторяет группу операторов для каждого элемента из набора объектов или из массива, вместо повторения операторов заданное число раз. Он особенно полезен, когда неизвестно, сколько элементов содержится в наборе.

Синтаксис конструкции цикла For Each . . . Next таков:

For Each element In group

операторы

Next element

 

Конструкция Do...Loop

Цикл Do применяется для выполнения блока операторов неограниченное число раз. Существует несколько разновидностей конструкции Do . . . Loop, но каждая из них вычисляет выражение-условие, чтобы определить момент выхода из цикла. Как и в случае конструкции If . . . Then условие должно быть величиной или выражением, принимающими значение False (нуль) или True (не нуль).

В следующей конструкции Do . . . Loop операторы выполняются до тех пор, пока значением условия является True (Истина):

Do While условие

операторы

Loop

 

Do

операторы

Loop

While условие

 

Do Until условие

операторы Loop

Do

операторы

Loop Until условие

 

50. Создание VBA форм, элементы управления, их свойства

Insert -> User Form. Откроется окно дизайнера форм (Form designer), в котором будет представлено пустое серое окно формы (по умолчанию она будет называться UserForm1) и рядом — Toolbox, панель с набором элементов управления.

Элементы управления - это объекты, содержащиеся внутри объектов-форм. Каждый тип элемента управления имеет свой собственный набор свойств, методов и событий, что делает его пригодным для определенной цели.

Текстовое поле (TextBox) Ввод и отображение текста. Текст может редактироваться (изменяться) пользователем. Метка (Label) Отображение не редактируемого текста, например, для обозначения поля на форме или отображения инструкции пользователю

Check boxes (Флажки) Небольшой набор возможностей выбора, из которых пользователь может выбрать одну или более

Option buttons Небольшой набор возможностей, из которых пользователь может выбрать только одну

List box (Список) Прокручиваемый список возможностей выбора, из которого пользователь может выбрать только одну возможность

Combo box (Комбинированное окно) Прокручиваемый список возможностей выбора вместе с полем ввода. Пользователь может либо выбрать из списка, либо напечатать свой выбор в поле ввода

Timer (Таймер) можно использовать для создания в приложении события через повторяющийся интервал времени. Это удобно для выполнения кода без взаимодействия с пользователем.

Container (Контейнер OLE) обеспечивает легкий способ добавления в приложение возможностей связывания (linking) и внедрения (embedding). Посредством этого элемента управления можно обеспечить доступ к выполняемым функциям любого приложения, поддерживающего OLE технологию, например Microsoft Excel, Word и многих других.

Common dialog (Общий диалог) добавляет в приложение встроенные диалоговые окна (built-in dialog boxes) для выбора файлов, цветов, шрифтов, функций печати.

Некоторые самые важные свойства форм (кроме ShowModal, все они применимы и для других элементов управления):

· свойство (Name) — определяет имя формы. Пользователь, скорее всего, его никогда не узнает. Имя формы используется только программистом в программном коде для этой формы (и в окнах редактора Visual Basic). После создания формы ее имя, предлагаемое по умолчанию (UserForm) рекомендуется заменить на что-либо более значимое, чтобы было проще ориентироваться в программе (это относится ко всем элементам управления);

· свойство Caption — определяет заголовок формы (по умолчанию совпадает с именем формы). Рекомендуется ввести строку, которая будет напоминать пользователю о назначении формы (например, "Выбор типа отчета");

· свойство Enabled — если установлено в False, пользователь работать с формой не сможет. Используется для временного отключения формы, например, пока пользователь не обеспечит какие-то условия для ее работы;

· свойство ShowModal — если установлено в True (по умолчанию), пользователь не может перейти к другим формам или вернуться в документ, пока не закроет эту форму. В версиях до VBA6 поддерживались только модальные формы.

 

51. Программирование форм, события форм и элементов управления

Как объекты, так и формы могут выполнять методы и реагировать (откликаться) на события.

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

· Можно создавать ссылки на объект с помощью переменных

· Можно создавать собственные объекты с самого начала с помощью модулей классов

· Можно создавать собственные наборы с помощью объекта collection (Набор.)

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

Имена переменных, как правило, короче и их легче запомнить, чем значения, которые они содержат (или, как в данном случае, объекты, на которые они ссылаются)

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

Ссылка на переменную, содержащую объект, более эффективна, чем постоянная ссылка на сам объект

Использование переменной для объекта аналогично использованию обычной переменной, но с одним дополнительным шагом - присваиванием объекта переменной:

Сначала ее объявляют:

Dim variable As class

Затем ей присваивают объект:

Set variable = object

Работа с объектом поддерживается определёнными функциями(Create(параметры), Delete(параметры) и аналогичные)

События форм:

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

Click - происходит по щелчку мыши, на свободном месте формы. Как правой, так и левой кнопки.

DblClick - происходит по двойному щелчку, правой и левой кнопки. Причем событие Click все же происходит.

Deactivate - событие происходит, в том случае, когда форма перестает быть активной.

DragDrop - происходит при завершении операции перетаскивания. В тот момент, когда элемент сбрасывается на форму.

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

Load - загрузка формы в память, до ее появления на экране.

MouseMove - происходит при перемещении указателя мыши над формой.

MouseUp - происходит лишь тогда, когда пользователь после нажатия на форме, отпускает клавишу мыши.

Unload- выгрузка формы и удаление из памяти. Данное событие имеет только форма.

 





©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.