Введение в программирование на VBA - eDrive
Введение в программирование на VBA - eDrive
Введение в программирование на VBA - eDrive
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
48<br />
я<strong>в</strong>ляется уни<strong>в</strong>ерсальным типом. Данные типа Variant могут принимать<br />
з<strong>на</strong>чения других типо<strong>в</strong>, а также Null и Empty. Null оз<strong>на</strong>чает, что данные<br />
отсутст<strong>в</strong>уют, неиз<strong>в</strong>естны или неприменимы. Он описы<strong>в</strong>ает пустые поля и<br />
элементы упра<strong>в</strong>ления. Специаль<strong>на</strong>я функция IsNull про<strong>в</strong>еряет, ра<strong>в</strong>но ли Null<br />
з<strong>на</strong>чение типа Variant. Прис<strong>в</strong>аи<strong>в</strong>ание этого з<strong>на</strong>чения может <strong>в</strong>ыполняться<br />
обычным образом: перемен<strong>на</strong>я = Null. З<strong>на</strong>чение Empty служит для<br />
резер<strong>в</strong>иро<strong>в</strong>ания памяти под неинициализиро<strong>в</strong>анную переменную типа<br />
Variant. Про<strong>в</strong>ерка <strong>в</strong>ыполняется функцией IsEmpty, и инициализация<br />
обычным образом: перемен<strong>на</strong>я = Empty. В число<strong>в</strong>ых расчетах Empty<br />
учиты<strong>в</strong>ается как нуль, а <strong>в</strong> строко<strong>в</strong>ых преобразо<strong>в</strong>аниях — как строка нуле<strong>в</strong>ой<br />
длины.<br />
Перемен<strong>на</strong>я типа Object может хранить любые объекты. У типо<strong>в</strong><br />
Object есть особое з<strong>на</strong>чение Nothing для резер<strong>в</strong>иро<strong>в</strong>ания памяти, если<br />
переменной не прис<strong>в</strong>оен объект (а<strong>на</strong>логично Empty у Variant).<br />
Инициализация этого з<strong>на</strong>чения <strong>в</strong>ыполняется традиционно: перемен<strong>на</strong>я =<br />
Nothing.<br />
Тип данных при необходимости можно уточнять оператором Set, с<br />
помощью которого данные можно соотнести с любым объектом. Таким<br />
образом удобно манипулиро<strong>в</strong>ать объектом, заменяя его имя <strong>в</strong> операциях<br />
именем переменной.<br />
Функция VarType <strong>в</strong>оз<strong>в</strong>ращает текущий тип переменной: 0 — vbEmpty,<br />
1 — vbNull, 2 — vbInteger и т.д.<br />
Примеры<br />
Sub Логика()<br />
Dim раз As Boolean, д<strong>в</strong>а As Boolean<br />
раз = 5 > 7<br />
д<strong>в</strong>а = 5 < 7<br />
MsgBox раз Or д<strong>в</strong>а<br />
раз = "Y" > "Z"<br />
д<strong>в</strong>а = "Y" < "Z"<br />
MsgBox раз And д<strong>в</strong>а<br />
End Sub<br />
Sub АлгоритмЕ<strong>в</strong>клида()<br />
' Решение задачи поиска <strong>на</strong>ибольшего общего делителя (НОД) д<strong>в</strong>ух чисел<br />
' по Е<strong>в</strong>клиду осно<strong>в</strong>ано <strong>на</strong> а<strong>на</strong>лизе пар чисел, пока они не сра<strong>в</strong>няются.<br />
Dim a As Integer, b As Integer<br />
a = InputBox ("В<strong>в</strong>едите пер<strong>в</strong>ое число")<br />
b = InputBox ("В<strong>в</strong>едите <strong>в</strong>торое число")<br />
Do<br />
If a > b Then a = a - b<br />
If b > a Then b = b - a<br />
Loop Until a = b