06.01.2015 Views

Введение в программирование на VBA - eDrive

Введение в программирование на VBA - eDrive

Введение в программирование на VBA - eDrive

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!