- •Основные понятия алгоритмизации
- •1. Понятие алгоритма
- •2. Свойства алгоритма
- •3. Основные способы записи алгоритмов
- •4. Основные элементы блок-схемы
- •5. Типы данных.
- •6. Типовые структуры алгоритмов
- •7. Стандартные алгоритмы
- •7.1. Алгоритм накопления суммы (произведения)
- •Язык и система программирования Visual Basic for Application (vba)
- •1. Общая характеристика языка и системы программирования vba
- •2. Типы данных в языке vba
- •3. Арифметические и логические выражения
- •4. Основные операторы языка vba
- •1. Оператор присваивания.
- •2. Условный оператор.
- •3. Оператор цикла с заданным числом повторений.
- •5. Разбиение строки программы, несколько операторов в одной строке, задание комментариев в тексте программы
- •6. Типы процедур
2. Типы данных в языке vba
В языке VBAтак же, как в классическом языкеBasic, все типы данных можно подразделять напростые иструктурированные.
К простым типамотносятся: целый, вещественный, логический.
К структурированным типамотносятся: дата; массив; строка; тип, определяемый пользователем.
В таблице 3 приведены названия, обозначения, размер памяти в байтах (занимаемый значением этого типа), а также диапазоны допустимых значений для простых типов данных языка VBAи типовVariant,ObjectиString.
Целый типданных вVBAпредставлен тремя подтипами:Byte,Integer,Long.
Вещественный тип имеет 4 подтипа: Single, Double, Currency, Decimal.
Логический типобозначается какBoolean.
Таблица 3.
Тип данных |
Размер памяти (байты) |
Диапазон значений |
Byte (байтовый) |
1 |
От 0 до 255 |
Integer(целый) |
2 |
От -32768 до 32767 |
Long(длинное целое) |
4 |
От -2147483648 до 2147483647 |
Boolean(логический) |
2 |
True, False |
Single(число с плавающей запятой одинарной точности) |
4 |
От -3,4E+38 до -1,4E-45 и от 1,4E-45 до 3,4E+38 |
Double(число с плавающей запятой двойной точности) |
8 |
От -1,8E+308 до -4,9E-324 и от 4,9E-324 до 1,8E+308 |
Currency(денежный) |
8 |
От -922337203685477,5808 до 922337203685477,5807 |
Decimal(число с фиксированной запятой) |
14 |
От -79228162514264337593543950335 до 79228162514264337593543950335 для целых чисел; от -7,9228162514264337593543950335 до 7,9228162514264337593543950335 для чисел с фиксированной запятой (28 знаков после десятичной точки) |
Object(объект) |
4 |
Любой указатель объекта |
String(строка переменной длины) |
10+длина строки |
От 0 до 2 миллиардов |
String(строка постоянной длины) |
Длина строки |
От 0 до ≈ 65400 |
Variant(числовые подтипы) |
16 |
Любое числовое значение вплоть до границ Double |
Variant(строковые подтипы) |
22+длина строки |
Как для строки (String) переменной длины |
Date(дата) |
8 |
January 1.100 – December 31.9999 т.е. 01.01.0100 – 31.12.9999 |
Тип данных Строка (String). Строковый тип данных позволяет хранить последовательности символов – строки, которые могут быть постоянной и переменной длины. Строки постоянной (фиксированной) длины – это строки, длины которых ограничены. Они описываются с помощью оператораDim, согласно следующему синтаксису:
Синтаксис:Dim <идентификатор> As String * <длина строки>
Пример:DimSAsString*10 – описание переменнойSкак строки с максимальной длиной 10 символов.
В значении типа строка символов могут присутствовать любые символы кодовой таблицы ЭВМ (в том числе русские буквы и т.д.). Строковые значения в программе должны записываться в кавычках.
В VBAдля строк может использоваться операция «конкатенация», которая позволяет объединять несколько строк в одну. Она обозначается либо знаком+, либо&.
Пример:S= ”Иванов”
F=S+ ” ” + ”Иван”
В результате строковая переменная Fпримет значение ”Иванов Иван”.
Тип данных Variant. Данный тип является особенностьюVBA(отсутствует в классическом Бейсике). Переменная типаVariantможет содержать данные любого типа. Если для переменной не объявлен тип данных, то по умолчанию используется тип данныхVariant.
Переменная, описанная типом Variant, фактически может в одной и той же программе принимать значения разного типа, и это не будет являться ошибкой.
Тип данных Массив. ВVBAмогут использоваться массивы двух типов:статическиеидинамические. Границыстатического массивазадаются в программе заранее с помощью оператораDim.
Синтаксис:
Dim <идентификатор>(<номер последнего элемента>) As <тип эл-тов>
Пример:DimX(100)AsInteger- описание одномерного массива, состоящего из 100 целых чисел.
В VBA, как и в классическом Бейсике, индексирование массива по умолчанию начинается с нуля, т.е. индекс 0 обозначает первый элемент массива, индекс 1 – второй и т.д. Чтобы задать нумерацию элементов массива с 1, необходимо использовать оператор:
Option Base 1
С помощью оператора Dimможно описывать также многомерные массивы (имеющие более одного индекса).
Пример:DimY(10,12)AsDouble– описание двумерного массива вещественных чисел двойной точности, который представляет собой матрицу из 10 строк и 12 столбцов.
Динамический массивиспользуется в том случае, когда размер массива заранее неизвестен. Для его описания также используется операторDim, в котором не задаются границы массива, а тип элементов определяется какVariant.
Пример:DimA()AsVariant
Далее в программе, когда станет известен размер массива, может быть задан его фактический размер с помощью оператора ReDim.
Пример:ReDimA(20)