Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
остальные вопросы по информатике.doc
Скачиваний:
5
Добавлен:
05.08.2019
Размер:
212.48 Кб
Скачать
  1. Управляющие структуры vba (If...Then, If...Then...Else, If...Else If. Select Case)

Позволяют управлять последовательностью выполнения программы. Без операторов управления все операторы программы будут выполняться слева направо и сверху вниз.

Конструкция If . . . Then применяется, когда необходимо выполнить один или группу операторов в зависимости от некоторого условия. Синтаксис этой конструкции позволяет задавать ее в одной строке или в нескольких строках программы:

If условие Then выражение

If условие Then

выражение

End If

Конструкция 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

  1. Управляющие структуры типа цикл (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 условие

  1. Создание 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 поддерживались только модальные формы.