Примеры использования некоторых управляющих структур

 

Управляющая инструкция If - Then - Else

Условная инструкция If - Then - Else изменяет порядок выполнения инструкций в зависимости от результатов проверки некоторого условия.

 

Пример.

Решение (способ 1).

Sub AAAAA()

Dim x As Double

Dim y As Double

x=1.5

y=0

Ifx>= 7 Theny=exp(x)

Elsey=cos(x)

End If

End Sub

 

  ,  

Решение (способ 2).

Sub AAAAA()

Dim x As Double

Dim y As Double

x=1.5

Ifx< 7 Theny=cos(x)

Ifx>= 7 Theny=exp(x)

MsgBox y

End Sub

41)Управляющая структураVBA:For – Next:

For - Next– выполняет группу инструкций заданное число раз;

Option Base 1 Sub BBBB() Dim V(5) As DOUBLE Dim S As DOUBLE Dim i As Integer Dim n As Integer n=5 S = 0 For i = 1 To n Step 1 V(i) =i S = S + V(i) MsgBox V(i) Next MsgBox S End Sub

 

Step – любое целое число, определяющее шаг приращения счетчика.

 

42)Управляющая структураVBA:While – Wend:

 

While - Wend– выполняет группу инструкций, пока соблюдается некоторое условие;

Управляющая инструкция While - Wend выполняется до соблюдения определенного условия.

Пример. Выделить значения из последовательности случайных чисел, когда M = 7

Sub CCCC() Dim M As Integer Dim n As Integer M = 0 n=0 Randomize While M <> 7 M = Int(10 * Rnd()) n = n + 1 Wend MsgBox "n="&n End Sub  

 

43) Управляющая структураVBA:Do – Loop

Do - Loop – выполняет группу инструкций, пока соблюдается или не соблюдается некоторое условие;

Условие завершения цикла может задаваться не только в начале цикла, но и в конце. Условие в конце цикла гарантирует, что он будет выполнен хотя бы один раз. Кроме того, условие можно сделать критерием, как выполнения цикла, так и его завершения.

Пример.Выделение определенного значения (равного 7) из последовательности случайных чисел.

Вариант 1.

Sub DoWhileLoop()

DimNumber As Integer

Number = 0

Do While Number <> 7

Number = Int(10 * Rnd())

Loop

MsgBox"Your number is " &Number &" ."

End Sub

 

Вариант 2.

SubDoUntilLoop()

DimNumber As Integer

Number = 0

Do UntilNumber = 7

Number = Int(10 * Rnd())

Loop

MsgBox"Your number is " &Number &"."

End Sub

44) Управляющая структураVBA:Select Case

Select Case – в зависимости от значения некоторой переменной или результата проверки условия выполняет одну или несколько возможных групп инструкций;

45)Инструкция VBA With:

 

Выполняет последовательность инструкций над одиночным объектом или определяемым пользователем типом данных.

With объект

[инструкции]

End With

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

Замечания
Инструкция With позволяет выполнить последовательность инструкций над указанным объектом, не повторяя задание имени объекта. Например, если имеется несколько свойств , которые необходимо изменить для одиночного объекта, то удобнее поместить инструкции присвоения свойств внутрь управляющей структуры With, указав ссылку на объект один раз, вместо того, чтобы ссылаться на объект при каждом присвоении его свойств. Следующий пример демонстрирует использование инструкции With для присвоения значений нескольким свойствам одного объекта.

With MyLabel

.Height = 2000

.Width = 2000

.Caption = "Объект MyLabel"

End With

После входа в блок With значение аргумента объект изменить невозможно. В результате, невозможно использование одной инструкции With для воздействия на различные объекты.
Допускается создание вложенных конструкций With внутри другого. Однако, поскольку ссылки на объекты внешних блоков With перекрываются во внутренних блоках, необходимо во внутренних блоках With задавать полные ссылки на любой компонент объекта из внешнего блока With.
Нельзя выполнять переходы внутрь или из блоков With. Если не выполнены инструкции With или End With, возможно возникновение ошибок или непредсказуемое поведение объектов.

Пример
В данном примере инструкция With используется для выполнения набора инструкций над одним объектом. Объект MyObject и его свойства используются исключительно в иллюстративных целях.

With MyObject

.Height = 100 ' Эквивалентно MyObject.Height = 100.

.Caption = "Привет" ' Эквивалентно MyObject.Caption = "Привет".

With .Font

.Color = Red ' Эквивалентно MyObject.Font.Color = Red.

.Bold = True ' Эквивалентно MyObject.Font.Bold = True.

End With

End With

46) Использование командной кнопки для работы с программой VBA.

Для проведения расчетов использован элемент управления Кнопка. Последовательность действий для создания Кнопки, как элемента управления следующая. Выполнить команду Вид / Панели инструментов / Элементы управления / Кнопка.Появится кнопка. Затем отредактировать наименование кнопки (выделите кнопку, обратитесь к контекстному меню, нажав правую кнопку мыши, затем внесите изменение в наименование кнопки).

 

   
а б

Рис. 24. Последовательность действий для редактирования Кнопки: а –шаг 1, б – шаг 2

После создания кнопки появляется окно, где размещается рабочее поле для написания кода программы. Кроме того в рабочем поле появляются строки ― начало процедуры (Private Sub CommandButton1_Click()) и конец процедуры. Запускается программа с листа Excel, где располагается кнопка управления.

 

47) Как считать значение ячейки листа Excel в переменную VBA?

 

C помощью Worksheets.

· x= Worksheets(1).Range("A1").Value(значение считывается из ячейки А1);

 

 

48) Как записать значение переменной VBA в ячейку листа Excel?

 

Worksheets(1).Range("A1").Value = a,где а – любое число.

49) Как заполнить диапазон ячеек одной строкой на VBA?

· Worksheets(1).Range("A1:B2").Value = 10 (присваивание блоку ячеек значения, равного 10);

 

50) Как заполнить массив VBA содержимым ячеек на листе Excel?

 

Worksheets(1).Cells(i + 1, 2).Value = x(i) или так

x(i) = Worksheets(1).Cells(i + 1, 2).Value

 

 

  ,