Операторы.

D-E

 

По порядку:

Date

Declare

DefBool, DefByte, DefInt ...

DeleteSetting

Dim

Do...Loop End Function, End If

Enum

Erase

Error

Event

Exit For, Exit Function

 

 

D

 

[Public | Private] Declare Sub name Lib "libname" [Alias "aliasname"] [([arglist])] или

[Public | Private] Declare Function name Lib "libname" _
[Alias "aliasname"] [([arglist])] [As type]

Этот оператор имеет 2 синтаксиса. Первый объявляет процедуру, находящуюся в DLL библиотеке (которая объявлена в ней как export). Второй объявляет функцию. Подробнее об объявлениях внешних функций здесь. Замечание: если вы объявляете функцию в разделе формы или компонента ActiveX, то она должна быть объявлена как Private, если в модуле, то Public.

Пример:

' Это находится в модуле:
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
(ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) _
As Long

' А это в разделе формы:
GetWindowText Form1.Hwnd, strCapt, 255
' Теперь переменная strCapt создержит заголовок окна Form1

 

DefBool letterrange[, letterrange] . . .
DefByte letterrange[, letterrange] . . .
DefInt letterrange[, letterrange] . . .
DefLng letterrange[, letterrange] . . .
DefCur letterrange[, letterrange] . . .
DefSng letterrange[, letterrange] . . .
DefDbl letterrange[, letterrange] . . .
DefDec letterrange[, letterrange] . . .
DefDate letterrange[, letterrange] . . .
DefStr letterrange[, letterrange] . . .
DefObj letterrange[, letterrange] . . .
DefVar letterrange[, letterrange] . . .

С помощью этих операторов можно установить тип переменных по умолчанию. letterrange - диапазон символов, с которых должны начинаться имена переменных. Операторы должны находиться в разделе модуля.

Пример:

DefInt A-K
' Переменные, имена которых начинаются с букв L до K будут
' по умолчанию объявлены как Integer. А от L до Z - как String.
' Напомню, что пример работает при выключенном Option Explicit.

DefStr L-Z
CalcVar = 4 ' Объявляется как Integer.
StringVar = "Hello there" ' Объявляется как String.

 

DeleteSetting appname, section[, key] - удаляет ранее записанную настройку из реестра. Напомню, что функция SaveSetting сохраняет настройку, а функция GetSetting загружает. Я почему-то не нашёл в документации путь, куда сохраняются настройки. Пришлось определять самому. Оказалось, что настройки записываются по адресу:
HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings
В этом ключе создаётся ещё один ключ с названием appname.

Пример:

' Записываем что-нибудь, в нашем случае - это положение окна
SaveSetting "MyApp", "Startup", "Top", Form1.Top
SaveSetting "MyApp", "Startup", "Left", Form1.Left
' Удаляем только что записанные настройки
DeleteSetting "MyApp", "Startup"

 

Dim [WithEvents] varname[([subscripts])] [As [New] type] [, [WithEvents] _
varname[([subscripts])] [As [New] type]] . . .

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

Пример:

' AnyValue и MyValue объявляются как Variant по умолчанию
' и им присваивается начальное значение Empty.
Dim AnyValue, MyValue

' Объявляем перенную типа Integer
Dim Number As Integer

' Здесь объявление происходит в одной строчке. Переменная AnotherVar
' объявляется как Variant, т.к. её тип опущен.
Dim AnotherVar, Choice As Boolean, BirthDate As Date

' DayArray - массив, состоящий из 51-го элемента (от 0 до 50).
' Если в модуле написать Option Base 1, то индексы всех массивов будут
' начинаться с единицы. По умолчанию Option Base установлен в 0
Dim DayArray(50)

' Матрица 4 на 5.
Dim Matrix(3, 4) As Integer

' BirthDay - массив, с индексами от 1 до 10.
Dim BirthDay(1 To 10) As Date

' MyArray - динамический массив типа Variant.
Dim MyArray()

 

Do...Loop

 

 

E

 

 

 

End
End Function
End If
End Property
End Select
End Sub
End Type
End With

Заканчивает процедуру или блок.

End - немедленно завершает выполнение программы. Закрывает все открытые файлы и очищает все переменные.
End Function - необходим для завершения функции.
End If - необходим для завершение проверки условия оператором If.
End Property - необходим для завершения процедур Property Let, Property Get или Property Set.
End Select - необходим для завершения оператора Select Case.
End Sub - необходим для завершения процедур.
End Type - необходим для завершения опеределения пользовательского типа
(оператор Type)
End With - необходим для завершения оператора With.

Пример:

Sub Form_Load
Dim Password, Pword
PassWord = "Swordfish"
Pword = InputBox("Type in your password")
If Pword <> PassWord Then
MsgBox "Sorry, incorrect password"
End
End If
End Sub

 

[Public | Private] Enum name
membername [= constantexpression]
membername [= constantexpression]
. . .
End Enum

Объявляет перечисляемый тип.

Пример:

Public Enum InterfaceColors
icMistyRose = &HE1E4FF&
icSlateGray = &H908070&
icDodgerBlue = &HFF901E&
icDeepSkyBlue = &HFFBF00&
icSpringGreen = &H7FFF00&
icForestGreen = &H228B22&
icGoldenrod = &H20A5DA&
icFirebrick = &H2222B2&
End Enum

 

Erase arraylist - сбрасывает все значения массива фикс. размера и освобождает неиспользуемую память динамического массива.

Пример:

Dim a(5) As Integer
Dim Dyn()
a(2) = 4
ReDim Dyn(10) ' Резирвируем память для 11-ти элементов
Erase a ' Сбрасываем все значения массива a
Erase Dyn ' Освобождаем память
Form1.Caption = a(2) ' Выведет 0
Form1.Caption = Dyn(2) ' Выдаст ошибку Subscript Out Of Range.

 

Error errornumber - Симулирует наступление ошибки под номером errornumber.

Пример:

On Error Resume Next ' Устанавливаем обработку ошибки
Error 11 ' Симулируем ошибку "Деление на ноль".

 

[Public] Event procedurename [(arglist)] - Используется для объявления события в компоненте или модуле класса.

Пример:

Public Event UpdateTime(ByVal dblJump As Double)

 

Exit Do
Exit For
Exit Function
Exit Property
Exit Sub

Используется для досрочного выхода из циклов, функций, свойств и процедур.

Пример:

Sub ExitStatementDemo()
Dim I, MyNum
Do ' Бесконечный цикл
For I = 1 To 1000 ' Повторяем 1000 раз
MyNum = Int(Rnd * 1000) ' Генерируем случайное число
Select Case MyNum ' Проверяем сгенерированное значение
Case 7: Exit For ' Если 7, выходим из For...Next.
Case 29: Exit Do ' Если 29, выходим из Do...Loop.
Case 54: Exit Sub ' Если 54, выходим из процедуры.
End Select
Next I
Loop
End Sub

 
 
Вернутся на главную   Вернутся на предыдущую.
Rambler's Top100   

 

Сайт управляется системой uCoz