Материал: Программирование на языке Visual Basic для приложений. Подвальный С.Л., Рог А.И

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

зует число в тип Boolean, нуль преобразуется в False, а любое другое значение преобразуется в True. Когда VBA преобразует значения типа Boolean в строки, VBA использует строку

«True» для True и «False» — для False.

VBA не может преобразовывать строковые выражения в тип Boolean, но может преобразовывать численные выражения в значения этого типа. Когда вы используете значения типа Boolean в арифметических выражениях, VBA всегда преобразует их в числа, даже если все другие части этого выражения также являются переменными или константами типа Boolean.

Преобразования значений типа Date. Когда VBA пре-

образует тип данных Date в число, результатом является численное значение — число типа Double, которое содержит количество дней от 30 декабря 1899 (отрицательное число представляет дату, более раннюю, чем 12/30/1899). Десятичная часть числа (если имеется) выражает время дня как часть дня; 0 — это полночь, а 0.5 — это полдень. В VBA преобразование численных типов данных в типы Date является просто обратным преобразованию типа Date в число.

Если выражение имеет результатом значение, находящееся вне диапазона типа данных для этого выражения, VBA отображает сообщение об ошибке переполнения. Если выражение содержит литеральную константу, иногда можно решить эту проблему, используя символ определения типа с литеральной константой, чтобы выражение имело результатом численный тип с большим диапазоном значений.

 

Таблица 3.8

 

Функции преобразования данных

Функция

Возвращает/действие

(аргументы)

 

 

 

Asc(S)

Возвращает число кода символа, соответст-

 

вующее первой букве строки S. Буква «А», на-

 

пример, имеет код символа 6

 

 

58

 

Продолжение табл. 3.8

Chr(N)

Возвращает строку из одного символа, соответ-

 

ствующего коду символа N, который должен

 

быть числом между 0 и 255, включительно. Код

 

символа 65, например, возвращает букву «А»

 

 

Format(Е, S)

Возвращает строку, содержащую значение,

 

представленное выражением Е, в формате в со-

 

ответствии с инструкциями, содержащимися в S

 

 

Hex(N)

Возвращает строку, содержащую шестнадцате-

 

ричное представление N

 

 

Oct(N)

Возвращает строку, содержащую восьмеричное

 

представление N

 

 

RGB(N, N,

Возвращает целое типа Long, представляющее

N)

значение основных цветов изображения. N в

 

каждом аргументе должно быть целым в диапа-

 

зоне 0-255, включительно. Аргументы (слева

 

направо) — это значения для красного, зеленого

 

и синего цвета.

Str(N)

Возвращает строку, эквивалентную численному

 

выражению N

 

 

Val (S)

Возвращает численное значение, соответст-

 

вующее числу, представленному строкой S, ко-

 

торая должна содержать только цифры и одну

 

десятичную точку, иначе VBA не может преоб-

 

разовать ее в число. Если VBA не может преоб-

 

разовать строку в S, то функция Val возвращает

 

0

 

 

CBool(N)

Возвращает Boolean-эквивалент численного вы-

 

ражения N

 

 

CByte(E)

Возвращает численное значение типа Byte (от 0

 

до 255); Е — любое допустимое численное или

 

строковое выражение, которое может быть пре-

 

образовано в число

 

 

59

 

Окончание табл. 3.8

CCur(E)

Возвращает численное значение типа Currency;

 

Е — любое допустимое численное или строко-

 

вое выражение, которое может быть преобразо-

 

вано в число

 

 

CDate(E)

Возвращает значение типа Date. E может быть

 

любым допустимым выражением (строкой или

 

числом), представляющим дату в диапазоне

 

1/1/100 —12/31/9999, включительно

 

 

CDbl(E)

Возвращает численное значение типа Double; E

 

— любое допустимое численное или строковое

 

выражение, которое может быть преобразовано

 

в число

 

 

Cint(E)

Возвращает численное значение типа Integer; E

 

— любое допустимое численное или строковое

 

выражение, которое может быть преобразовано

 

в число

CLng(E)

Возвращает численное значение типа Long; E —

 

любое допустимое численное или строковое

 

выражение, которое может быть преобразовано

 

в число.

 

 

CSng(E)

Возвращает численное значение типа Single; E

 

— любое допустимое численное или строковое

 

выражение, которое может быть преобразовано

 

в число.

 

 

CStr(E)

Возвращает значение типа String; E — любое

 

допустимое численное или строковое выраже-

 

ние

CVar(E)

Возвращает значение типа Variant; E — любое

 

допустимое численное или строковое выраже-

 

ние

60

4. ОПЕРАТОРЫ

Любая программа представляет собой последовательность операторов. Рассмотрим операторы для выполнения действий с данными и для управления порядком выполнения других операторов. В VBA символом разделения операторов является двоеточие (:), т.е. можно разместить несколько операторов в одной строке.

4.1. Операторы присваивания

Операторы присваивания служат для изменения значения переменных. В VBA существует четыре вида оператора присваивания:

Let (прямое присваивание), LSet (левое присваивание), RSet (правое присваивание), set (объектное присваивание).

Оператор Let

С оператором прямого присваивания мы уже встречались (=), правда, в несколько укороченном виде.

[Let] имяПеременной = <выражение>

Ключевое слово Let является наследием предшествующих версий языка Basic, его употребление ничего не дает.С помощью оператора = происходит обычное присвоение значения выражения, стоящего справа от знака =, переменной, имя которой стоит слева от знака =. Причем тип присваиваемого значения должен соответствовать типу переменной.

VBA допускает прямое присваивание не только простых, но и структурных значений (массивов и записей), при условии совпадения типов левой и правой частей оператора присваивания.

61

Оператор LSet

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

LSet имяСтроковойПеременной = СтроковоеВыражение LSet имяПеременной1 = имяПеременной2

Оператор RSet

Оператор RSet аналогичен оператору LSet, только в данном случае выравнивание происходит справа. Помимо этого, оператор RSet нельзя использовать для присваивания запи-

сей.RSet имяСтроковойПеременной = <СтроковоеВыраже-

ние>Результатом присваивания является строка той же длины что и значение имяСтроковойПеременной. Если при этом значение СтроковоеВыражение длиннее, то лишние символы из него удаляются слева, если короче - заполняются пробелами слева.

4.2. Условные операторы

Как и во многих языках программирования, в VBA имеются различные управляющие конструкции, позволяющие изменять порядок выполнения операторов программы. При отсутствии управляющих конструкций операторы программы выполняются последовательно, начиная с первого и кончая последним. В некоторых простых случаях этого бывает достаточно, но обычно все-таки требуется изменить порядок выполнения операторов при выполнении определенных условий - либо пропуская выполнение некоторых операторов, либо, наоборот, многократно повторяя их. Оказывается, для реализации любых алгоритмов достаточно иметь только два вида управляющих конструкций - ветвления и циклы. В данном разделе мы рассмотрим ветвления, в следующем - циклы.

Оператор If...Then...Else

62

Источник: https://studfile.net/preview/16565567/