Переменные и константы
Константы и переменные предназначены соответственно для хранения фиксированных и изменяемых значений в вычислениях. Все переменные VB имеют определенный тип (табл. 1). Для использования переменных в программе VB их необходимо объявить, используя следующий синтаксис: Dim <переменная> As <тип> или Dim <переменная 1>, …, <переменная …> As <тип> или Dim <переменная 1> As <тип 1>, <переменная …> As <тип …> здесь переменная … – задаваемый разработчиком идентификатор, тип … – один из идентификаторов для типов данных: числовых (Integer, Long, Single, Double), текстовых (String), логических (Boolean) и др., <…> – позиция размещения обязательного элемента синтаксиса ([…] – позиция размещения необязательного элемента синтаксиса) Примеры объявления переменных: Dim peremen As Integer ' Объявление переменной по имени peremen для хранения ' целых чисел Dim peremen1, peremen2 As Integer ' Объявление переменных peremen1 и peremen2 ' для хранения целых чисел Dim peremen3 As String, peremen4 As Double ' Объявление переменной peremen3 для хранения строк ' и переменной peremen4 для хранения вещественных чисел Таблица 1 Типы данных в VB
Использование для переменных определенных типов данных определяется назначением переменной: для целочисленных вычислений применяются типы Integer и Long, для вычислений с дробной точкой – Single, Double, для операций со строками – String, для логических операций – Boolean, для операций с датой – Date и т.д. После объявления переменным можно присваивать значения соответствующего типа, затем производить действия над переменными, считывать их значения: Sub primer() Dim i As Integer ' Объявление переменной i для хранения целых чисел i=3 ' Запись в переменную i значения 3 i=i+2 ' Добавление к значению переменной i числа (2) ' и запись его в переменную i MsgBox i ' Отображение значения из переменной i в окне сообщения End Sub Например, для переменных типа Data возможны следующие способы (синтаксисы) присвоения: <Переменная>=#<месяц(№)>/<число>/<год> <часы>:<минуты>:<секунды># <Переменная>=# <часы>:<минуты># <Переменная>=#<месяц(№)>/<число>/<год># <Переменная>=Now (запись в переменную текущего времени и даты) и считывания: <Переменная 1>=Hour(<Переменная>) – считывание количества часов, <Переменная 1>=Minute(<Переменная>) – считывание количества минут, <Переменная 1>=Day(<Переменная>) – считывание числа дней, <Переменная 1>=Year(<Переменная>) – считывание года, <Переменная 1>=Month(<Переменная>) – считывание месяца и изменения значений: <Переменная>=<Переменная> +(–) <значение> – увеличение или уменьшение значения дней, <Переменная>=<Переменная> +(–) <значение>/24 – увеличение или уменьшение значения часов, <Переменная>=<Переменная> +(–) <значение>/1440 – увеличение или уменьшение значения минут, <Переменная>=<Переменная> +(–) <значение>/86400 – увеличение или уменьшение значения секунд. Пример работы с переменной (типа Data): Sub primer() Dim mydata As Date ' Объявление переменной mydata для хранения дат Dim mynum As Integer ' Объявление переменной mynum для хранения целых чисел mydata = #1/4/2012 11:57:00 AM# ' Запись в переменную mydata даты: 4 января 2012 года, 11 часов, ' 57 минут, 0 секунд mynum = Month(mydata) ' Считывание номера месяца из переменной mydata и запись его ' в переменную mynum MsgBox mynum ' Отображение окна сообщения со значением ' переменной mynum mydata = mydata + 30 ' Добавление к значению даты в переменной mydata 30 дней mynum = Month(mydata) ' Считывание номера месяца из нового значения переменной ' mydata и запись его в переменную mynum MsgBox mynum ' Отображение значения переменной mynum End Sub
В VB переменным можно присваивать значения, взятые из ячеек MS Excel. Dim A As Double ' Объявление переменной A для хранения вещественных чисел A=Application.Workbooks("around_book_Exvba.xls")._ Worksheets("Лист1").Cells(2,1) ' Запись в переменную А значения (числа) из ячейки А2 листа ' "Лист1" электронной таблицы "around_book_Exvba.xls" При отсутствии объявления переменной присваивается тип данных Variant, который может соответствовать любому типу данных. Тип Variant значительно увеличивает размер файла программы и не позволяет отслеживать ошибки, связанные с некорректным использованием типов данных в программе (н.п., присвоение текста числу). Проверка типа данных во время выполнения программы производится при помощи таких функций как ТypeName(<переменная>), IsNumeric(<переменная>) и др. ТypeName(<переменная>) – возвращает тип переменной заданной аргументом в виде ключевого слова: "Integer", "String", "Double" и т.п.: Sub primer() Dim x As Variant ' Объявление (создание) переменной x типа Variant ' для хранения значений любого типа x = 4 ' Запись в переменную x целого числа (Integer) MsgBox TypeName(x) ' Отображение окна-сообщения со значением типа значения, ' хранящегося в переменной x x = 4.3 ' Запись в переменную x вещественного числа (Double) MsgBox TypeName(x) x = "слово" ' Запись в переменную x строки (String) MsgBox TypeName(x) End Sub
IsNumeric(<переменная>), IsDate(<переменная>), … – группа функций, определяющих принадлежность переменной к одному из типов и возвращающих соответственно True (Истину) или False(Ложь) в зависимости от результата проверки. Функция IsEmpty(<переменная>) проверяет, храниться ли в ее параметре-переменной значение. Sub primer() Dim x As Variant ' Объявление (создание) переменной x ' для хранения любых значений MsgBox IsEmpty(x) ' Вывод сообщения об отсутствии значения в переменной x x = "слово" ' Запись в переменную x текста MsgBox IsEmpty(x) ' Вывод сообщения о наличии значения в переменной x MsgBox IsNumeric(x) 'Вывод сообщения об отсутствии в переменной x числа x = 3.5 ' Запись в переменную x числа MsgBox IsEmpty(x) ' Вывод сообщения о наличии значения в переменной x MsgBox IsNumeric(x) ' Вывод сообщения о наличии в переменной x числа End Sub
Для преобразования типов данных служат специальные функции VB (табл. 2): CBool, CCur, CDate, CDbl, CInt, CSng, CStr и другие, имеющие синтаксис: значение возвращаемого типа = функция (значение исходного типа) Таблица 2 Функции преобразования типов данных
Пример использования функции преобразования типа: Sub primer() Dim x As Double ' Объявление переменной x для хранения вещественных чисел x=4.51 ' Запись в переменную x вещественного числа x=CInt(x) ' Преобразование значения числа в переменной x ' к целому типу MsgBox x ' Отображение преобразованного значения из переменной x End Sub
|