Для дальнейшего изучения программирования будет не лишним разобрать в функции MsgBox аргумент [Кнопки]. Удобнее всего запомнить числовое значение, причём всего четыре:
16-критическое предупреждающее сообщение;
32-предупреждающий запрос;
48-предупреждающее сообщение;
64-информирующее сообщение.
Типы данных
Основной задачей программ является получение информации
и помещения её в переменные разных типов для обработки. Переменные бывают различных типов: текстовые, числовые, булевые(логические переменные) и тип Date(для хранения даты и времени).
Если входная информация текстовая, то в языке VBA для её удобнее всего использовать переменную типа String. Переменные данного типа представляют собой строки символов различной длины. . Строковые типы данные заключаются в двойные кавычки (" "). Приведём пример:
А=20 - переменной А присвоено значение числового типа;
В="20" - переменной В присвоено значение строчного типа;
Для хранения числовой информации языке VBA используется шесть различных типов данных: Byte, Integer, Long, Single, Double и Currency. Для простых математических задач вполне достаточно применять числовые типы переменных: Intеger (числовой диапазон -32 768 .......... ...+32 767) и String (числовой диапазон для отрицательных значений от -3,402823 E +38 до -1,401298 Е-45; для положительных значений от 1,401298 E -45 до 3,402823 E +38)
ВЫВОД: Для проектирования программ без проблем при отладке и поиске не явных ошибок нужно для всех переменных определять тип!
Если использовать в качестве ввода вывода функции InputBox и MsgBox, Возможны проблемы с несоответствием типов, т.к. вводить и выводить данные можно, если переменная имеет тип String.
Для вывода выходных данных через функцию MsgBox надо будет к текстовой строке переменной String присоединить результаты вычислений в числовом формате. Для этого нужно воспользоваться функциями преобразования.(это если подходить правильно без риска получить не правильный результат или ошибку).
Операторы объединения объединяют несколько строк в одну. Существует два оператора объединения: + и &. Оба они выполняют базовую операцию объединения. Оператор "+"имеет основную цель сложения двух чисел. Однако он также может объединять числовые операнды со строковыми. Оператор + имеет сложный набор правил, определяющий, следует ли выполнять добавление, объединение, сигнализировать об ошибке компилятора.
Если при написании кода программы не был указан конкретный тип данных, то VBA выполняет автоматическое преобразование данных одних типов в другие. Но лучше не пускать это дело на самотёк во избежание непредсказуемых " глюков" в дальнейшем. Для явного преобразования данных одних типов в другие в языке VBA существует группа специальных функций.
Преобразование строки в число и обратно осуществляется функциями Val и Str соответственно. Функция Val является единственной функцией VBA, принимающей в качестве аргумента только один тип данных. В то время как другие функции принимают тип данных Variant, функция Val поддерживает только работу со строками. Это значит, что любое переданное в функцию Val значение воспринимается как строка с текстовой записью числа, которое преобразуется в числовую величину. Синтаксис этой функции следующий.
Val(строка)
Здесь строка — это исходное строковое выражение. Функция Val читает строку, заданную аргументом строка, начиная с первого символа и до тех пор, пока не встретит символ, недопустимый для представления чисел. Допустимыми символами считаются цифры от 0 до 9, знаки “+” или десятичная точка (а не запятая!), префикс, указывающий на восьмеричную (&0, где О — это латинская буква) или шестнадцатеричную (&н, где н — это латинская буква1) систему счисления. Функция Val игнорирует пробелы, символы табуляции и переходы на новую строку. Val ("25 113.2 14 ABC "). В этом примере функция Val возвращает число 25 113,214. Если VBA не может выполнить преобразование заданной строки в число, то функция Val возвращает значение 0.
Функция Str возвращает значение типа Variant (String) — строку с текстовым представлением исходного числа. Синтаксис этой функции следующий:
Str(число)
Здесь число — это произвольное числовое выражение. Для положительного числа результирующая строка начинается с пробела, а для отрицательного числа она будет начинаться со знака “минус”, без пробела.
Что ж пора всю эту информацию проверить на практике и сделать правильные выводы.
1. Добавляем в окно Проекта-Project третий модуль -Module3 (Insert->Module)
2. Добавляем процедуру Main (Insert->Procedure; Name: main)
3. Добавляем в окно "Code" следующий код:
Что нового в коде? Объявление переменных:
Dim x, y As Integer -объявлены переменные x и y как целочисленный тип
Dim srtoka As String -объявлена переменная srtoka как строчная символьная
Let stroka = "............................................................................" присвоено значение строчной переменной stroka.
y = x ^ 2 -найден квадрат числовой переменной х и это значение присвоено переменной y.
MsgBox "Функция Y=X^2=" + Str(y), , ProgName -показано слияние двух символьных строк оператором +, причём числовая переменная была преобразована в строковую с помощью функции STR()
В последней закомментированной строке показан второй способ слияния строковых переменных с добавлением символов управления.
Запускаем программу №3 и смотрим результаты её работы. Далее закомментировать предпоследнюю строку кода программы и раскомментировать последнюю. запускаем программу и смотрим результат.
Задание:
Устраните маленький недостаток в программе. В окне есть результат и формула расчёта, но нет значения аргумента Х!!!