- •СервисМакросРедактор Visual Basic
- •СервисМакросРедактор Visual Basic
- •Режимы меню:
- •Меню Edit
- •If условие Then [инструкции] [Else инструкции_Else]
- •If условие Then
- •Инструкция Select Case
- •Цикл For Each…Next
- •Оператор Do Until… Loop
- •Оператор Do … Loop Until
- •Инструкция With
- •Работа с формами и запросами
- •(Библиотека Microsoft dao 3.6 Object Library)
- •FormName – имя формы
If условие Then [инструкции] [Else инструкции_Else]
или
If условие Then
[инструкции]
…
[elseif условие –n Then
[инструкции_ elseif]]
…
[else
[инструкции_ else]]
End If
Пример:
Option Compare Database
Option Explicit
Private intNum As Integer
Sub ifTest()
Dim strMessage As String
intNum=InputBox(“Введите любое число между 1 и 15”)
If intNum>=1 and IntNum<=15 Then
Iftest2
Else
MsgBox “Число вне диапазона!”
End If
End Sub
Sub iftest2()
If intNum<10 then
MsgBox “Введенное число” & intNum & “меньше 10!”
Elseif intNum=10 then
MsgBox “Введенное число” & intNum & “равно 10!”
Else
MsgBox “Введенное число” & intNum & “больше 10!”
End If
End Sub
Инструкция Select Case
Select Case выражение
[Case списокВыражений – n
[инструкции – n]]
…
[Case Else
[инструкции – else]]
…
End Select
выражение, выражение To выражение
Is операторСравнения выражение
Sub iftest2()
Select Case intNum
Case 1 to 5
MsgBox “Введенное число ” & intNum & “ между 1 и 5!”
Case 6, 7, 8, 9
MsgBox “Введенное число ” & intNum & “ между 6 и 9!”
Case 10
MsgBox “Введенное число ” & intNum & “ равно 10!”
Case Is <15 and intNum>10
MsgBox “Введенное число” & intNum & “ больше 10 и меньше 15!”
Case Else
MsgBox “Введенное число” & intNum & “ равно 15!”
End Select
End Sub
Функция IIF()
IIF (<условие>, <выражение1>, <выражение2>)
Function y()
Dim x As Double
X=InputBox(“Введите значение Х:”)
Y=IIF(X>1, 0.5*X^1/3, IIF(X<0.05*abs(x)^0.25,1/3*X^2))
Beep
Msgbox “Y=” & str(y)
End Function
Циклические конструкции
For…Next, For Each…Next, Do…Loop, Do While…Loop, Do Until…Loop, Do… Loop Until
Программирование арифметических циклов
Цикл с параметром For…Next
Синтаксис конструкции:
For <управляющая переменная>= <начальное значение> To <конечное значение> [Step <шаг>]
<инструкции тела цикла>
[Exit For]
[<инструкции тела цикла>]
Next [<управляющая переменная>]
Sub fortest()
Dim i As Integer
For i = 1 To 10
If i Mod 2 = 0 Then
Debug.Print i & "четный номер"
Else
Debug.Print i & " нечетный номер"
End If
Next
End Sub
Цикл For Each…Next
Синтаксис инструкции:
For Each <элемент> In <группа>
<инструкции>
[Exit For]
[<инструкции>]
Next [<номер>]
Пример 1:
For Each myObject in myCollection
If Abs(myObject.Value) < 0.01 Then myObject.Value = 0
Next
Пример 2:
Sub forEach2()
Dim TestArray(10) As Integer
Dim I As Variant
For I = 1 To 10
TestArray(I) = I * 2
Next
For Each I In TestArray
If I = 6 Then
Exit For
End If
Next I
Debug.Print I & " " & TestArray(I)
End Sub
Программирование итерационных циклов
Бесконечный цикл. Оператор Do…Loop
Синтаксис конструкции:
Do
<инструкции>
[Exit Do]
[<инструкции>]
Loop
Оператор Do While… Loop
Синтаксис инструкции:
Do while <условие>
<инструкции>
[Exit Do]
[<инструкции>]
Loop
Пример:
Sub dotest()
Dim i As Integer
Dim itest As Integer
i = 1
itest = 1
Do While i = 1
Debug.Print "Номер " & itest
If itest = 5 Then
i = 0
End If
itest = itest + 1
Loop
End Sub
Оператор Do … Loop While
Синтаксис инструкции:
Do
<инструкции>
[Exit Do]
[<инструкции>]
Loop while <условие>
Sub ChkFirstWhile()
Dim counter As Integer
Dim myNum As Integer
counter = 0
myNum = 20
Do While myNum > 10
myNum = myNum - 1
counter = counter + 1
Loop
MsgBox "В цикле " & counter & "итераций."
End Sub
Sub ChkLastWhile()
Dim counter As Integer
Dim myNum As Integer
counter = 0
myNum = 9
Do
myNum = myNum - 1
counter = counter + 1
Loop While myNum > 10
MsgBox "В цикле " & counter & "итераций."
End Sub