Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Автоматизация процесса создания офисных документов. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
4.4 Типы переменных
В таблице 4.1 представлены некоторые стандартные типы переменных.
Таблица 4.1
Тип
переменной
Integer Целое число одинарной точности 2 байта Long Целое число двойной точности 4 байта
Single
Double
Currency
String Строка символов 1 байт Byte Целое число 1 байт Boolean Логическое значение 2 байта Date Дата и время 8 байт Object Объект типа OLE 4 байта
Variant Любой из перечисленных выше типов данных
Десятичное число с плавающей точкой одинарной
точности
Десятичное число с плавающей точкой двойной
точности
Десятичное число с фиксированной точкой. Целая часть представляется 15 цифрами, дробная – четырь­мя
Хранимое значение
Занимаемая
память
4 байта
8 байт
8 байт
16 байт +
1байт/символ
В VB предусмотрена возможность преобразования одного типа переменных в другой при помощи специальных функций. Самыми распространенными функциями являются функции Val и Str.
Функция Val преобразует переменную, представленную в виде строки символов (String), в число, т.е. аргументом этой функции является строка, а возвращает она число.
Функция Str преобразует переменную, представленную в виде числа в строку символов (String), т.е. аргументом этой функции является число, а возвращает она строку символов.
В таблице 4.2 приведены еще ряд функций, позволяющих осуществлять преобразования одного типа переменных в другой.
Таблица 4.2
Название функций Получаемый тип переменных
CBool Boolean CByte Byte
CCur Currency
CDate Date
CDbl Double
CInt Integer CLng Long CSng Single
CStr String CVar Variant
31
4.5 Объявление переменных
В VBA определено 11 стандартных типов переменных, однако явного объявления переменных в программе не требуется. Если переменную не описывать перед ее использованием в программе, то ей присваивается по умолчанию тип переменной Variant. В такой переменной можно хранить данные любого типа.
Обычно переменные задаются явно, с помощью оператора Dim.
Dim имяПеременной [As типПеременной]
Например,
Dim myVar As String
Здесь myVar – имя переменной, а ключевое слово String определяет текстовый тип переменной myVar.
Существуют веские причины, заставляющие описывать типы переменных перед использованием их в процедурах. Однако при создании простейших процедур для автоматизации офисных документов часто обходятся одним типом переменных – Variant.
4.6 Присваивание значений переменной
Для присваивания значений переменной используется следующая конструкция:
имяПеременной = значениеПеременной
Например,
myVar = "Привет!!"
Часто возникает необходимость присваивать значения переменным в ходе выполнения программы. Для этого можно использовать стандартную функцию ввода данных InputBox.
Формат функции рассмотрим на следующем примере:
myVar = InputBox("Введите данные",
"Ввод данных", myVar)
Здесь
строка "Введите данные" – сообщение в окне ввода;
строка "Ввод данных" – сообщение в заголовке;
myVar – переменная, значение которой, используется по умолчанию
для поля ввода данных.
32
Создадим следующую процедуру:
Public Sub Text2( )
myVar = InputBox("Введите данные",
"Ввод данных", myVar)
MsgBox "Значение переменной myVar = " & myVar
End Sub
После запуска процедуры на экран выводится следующее окно (рисунок 4.4).
Рис. 4.4. Диалоговое окно инструкции InputBox
Поле в нижней части окна пусто, так как переменной myVar не было присвоено никакое значение до вызова этого окна.
Введем в поле ввода данных число 2019 и щелкнем на кнопке ОК.
Результатом будет появление следующего окна, представленного на ри­сунке 4.5.
Рис. 4.5. Сообщение инструкции MsgBox
4.7 Область действия переменных
Если переменная объявлена внутри процедуры неявным образом, то она называется внутренней переменной процедуры. Такая переменная может быть доступна только внутри процедуры.
Чтобы переменная могла быть доступна из любой части программы, требуется использование специального оператора Public и размещение объявления переменной в стандартном модуле.
33
4.8 Константы
Константа – это элемент данных, не изменяющий своего значения. Для объявления константы используется следующая конструкция:
Const имя_константы = значение
Например,
Const температура = 100
Объявленное таким образом значение константы не может быть изменено в программе.
4.9 Массивы переменных
Массив – это группа переменных, объединенных одним именем. Массивы позволяют ссылаться на ряд переменных с помощью имени и числа, называемого индексом массива. Объявляется массив с помощью оператора Dim так же, как и переменные: Dim Array1(4). Здесь Array1 – имя массива, произвольно выбранное программистом, число 4 в скобках означает верхнюю границу индекса массива.
Объявленный массив состоит из пяти элементов (переменных):
Array1 (0), Array1(1), Array1(2), Array1(3) и Array1(4).
Значения элементам массива присваиваются так же, как любым другим переменным, но за именем массива в скобках должен стоять номер элемента, например: Array1(2) = 7596
Массив может быть многомерным. Ниже показано задание двухмерного массива: Dim MatrixA(4,4).
При объявлении массива можно задать границы, в пределах которых будут находиться индексы элементов массива. Например, индексы элементов массива X , объявленного следующим образом: Dim Х(4 To 9), будут принимать значения 4, 5, 6, 7, 8 и 9.
В VBA можно объявлять массивы, не определяя его размерность. В момент своего объявления такой массив, называемый динамическим, не содержит ни одного элемента. Перед использованием массива необходимо в программный код ввести инструкцию ReDim. Пусть, например, массив Z объявлен как глобальная переменная:
Public Z() As Currency
Тогда, перед его использованием в процедуре нужно добавить элементы
ReDim Z(1 To 4).
34
4.10 Некоторые операторы программного кода
Каждая программа решает определенные задачи, и для их выполнения недостаточно объявить переменные и присвоить им какие-либо значения. Кроме этого, нужно написать соответствующие операторы программного кода. Обычно каждый оператор записывается с новой строки.
Кроме оператора присваивания, в VBA имеется множество других операторов. Одну из групп операторов составляют математические операторы, представленные в таблице 4.2. Математические операторы служат для создания выражений, в которых используются переменные, константы, функции и другие выражения.
Таблица 4.2
Операция Оператор Сложение + Вычитание ­Умножение * Деление / Целочисленное деление \ Остаток от деления нацело mod Возведение в степень ^
Примером может служить следующее выражение, служащее для вычисления среднего значения четырех переменных А, В, С, D и присвоения его переменной E:
E = (A +B +C+D)/4.
В VBA для работы со строками используется оператор объединения строк, для обозначения которого выбран символ амперсанда – &.
Приведем пример использования этого оператора.
Предположим, что в переменной name1 содержится значение «Петр», а значением переменной name2 является «Краснов». Требуется в переменную name3 записать значение «Петр Краснов». Эта задача может быть решена выполнением следующего программного кода:
name3 = name1 & " " & name2
4.11 Задания для самопроверки
1.
Разработать в VBA программу deg1rad, для перевода угла (angleD) из градусной меры в радианную, используя формулу <рад>= <град>*π/180. Программу разработать в MS Excel. Программный код может выглядеть следу­ющим образом:
35
Sub deg1rad( ) Dim angleD As Currency Dim angleR As Currency Const pi As Double=3.141592654 angleD=270 angleR=angled *pi/180 End Sub
Написать пояснения к программному коду. Для написания пояснения к программному коду необходимо справа от строки программного кода поста­вить одинарную кавычку и далее написать пояснение. Пояснение в редакторе VBA выделяется зеленым цветом (рисунок 4.6).
Рис. 4.6. Пример пояснения к строке программного кода и получение результата
Для получения результата, т.е. значения угла в радианах, необходимо по­ставить курсор мыши против оператора End Sub, нажать на левую кнопку мыши до появления диска коричневого цвета и выполнить команду Run. В дис­ке коричневого цвета появится желтая стрелка. После этого курсор мыши необ­ходимо перенести на оператор angleR=angled * pi/180 и в прямоуголь­ной рамке появится результат angleR =4,7124.
36
2. Разработать в VBA программу deg2rad для перевода угла (angleD) из
градусной меры в радианную, используя формулу <рад>= <град>*π/180. Про­грамму разработать в MS Excel, с использованием стандартных окон MS Win­dows. Программный код может выглядеть следующим образом:
Sub deg2rad( ) Dim angleD As Currency Dim angleR As Currency Const pi As Double=3.141592654 angleD=InputBox(“Введите угол в градусах”, “Ввод данных”) angleR=Val(angleD) angleR=angleD *pi/180 angleR=Str(angleD) c = Str(angleR) MsgBox (c) + Space(1) + "радиан" End Sub
Написать пояснения к программному коду.
3. Разработать в VBA программу rad1deg, для перевода угла (angleD) из
радианной меры в градусную, используя формулу <град>= <рад>*180/π. Про­грамму разработать в MS Excel. Написать пояснения к программному коду.
4. Разработать в VBA программу rad2deg для перевода угла (angleD) из радианной меры в градусную, используя формулу <рад>= <град>*π/180. Про­грамму разработать в MS Excel, с использованием стандартных окон MS
Windows.
Написать пояснения к программному коду.
5. Разработать в VBA программу «Арифметика». Программу разработать в MS Excel. Программный код может выглядеть следующим образом:
Sub Арифметика ( ) Dim m As Integer Dim n As Integer Dim x,y,z,r,h,f As Double m=5: n=2 x=m*n y=m/n z=m\n r= m Mod n h=m^n f=m-n End Sub
37
Написать пояснения к коду.
6. Разработать в VBA программу «Logarifm», для перевода логарифмов по
основанию 10, в логарифмы по основанию 2 и е (основание натурального лога­рифма). Программу разработать в MS Excel.
7. Разработать в VBA программу выделяющую ячейку A5 с последую­щим форматированием выделенной ячейки: гарнитура шрифта «Arial Cyr», начертание «курсив», размер шрифта «14».
8. Разработать в VBA программу, записывающую числа натурального ря­да от 1 до 9 начиная с первой строки пятого столбца и далее со сдвигом на один столбец, 2 столбца, 3 столбца. Программу разработать в MS Excel.
5. Управление ходом выполнения программ
5.1 Особенности управления ходом выполнения программ
Программы, в которых нет управляющих конструкций, выполняются слева направо и сверху вниз. Простую программу можно написать без изменения после­довательности выполнения операторов. Однако мощь и удобство любого языка программирования определяется наличием в нем средств изменения порядка вы­полнения операторов: конструкций управления и циклов.
5.2 Принятие решения в программе
Процедуры в VBA могут проверять некие условия и затем, в зависимости от результатов проверки, выполнять разные операции. VBA поддерживает следующие конструкции принятия решения.
If...Then
If...Then...Else
Select Case
5.2.1 Условное выражение If...Then
Конструкция If...Then применяется, когда необходимо выполнить один или группу операторов в зависимости от некоторого условия.
Существуют две разновидности этой конструкции – однострочная и многострочная.
Однострочная форма оператора If обычно используется для выполнения некоторого действия, когда условие истинно. Под действием подразумевается выполнение одиночного оператора или группы операторов. Синтаксис однострочной конструкции позволяет задавать ее в одной строке.
38
If Условие Then Команда
В качестве параметра Условие может выступать любой тип логического выражения.
Вместо параметра Команда указывается действие, которое нужно выполнить в случае истинности условия. Пример однострочной конструкции:
If x < 0 Then myVar = "отрицательное число"
Многострочная форма оператора If обычно используется для выполнения группы операторов, когда условие истинно. Группа операторов заключается между ключевыми словами If и End If. Если условие оказывается ложным, то программа переходит к выполнению следующего за ключевыми словами End If оператора. Пример многострочной конструкции:
If x < 0 Then myVar = "отрицательное число"
y = 0
End If
5.2.2 Условное выражение If...Then...Else
Конструкция If...Then...Else позволяет обрабатывать как истинные, так и ложные условия. Блок команд, который должен быть выполнен, если условие истинно, записывается сразу после ключевого слова If, а фрагмент кода для обработки ложного условия – следом за ним, после ключевого слова Else, как показано ниже.
If Условие Then
Блок операторов для обработки истинного условия
Else
Блок операторов для обработки ложного условия
End If
5.2.3 Конструкция Select Case
В VBA конструкция Select Case предоставляет возможность, похожую на возможность конструкции If...Then...Else, но, в отличие от нее, она делает ее более удобным для написания кода при наличии нескольких вариантов выбора.
Select Case тестируемоеЗначение
Case Значение1
Группа операторов 1
Case Значение2
Группа операторов 2
. . .
End Select
39
Здесь в операторе Select Case указывается параметр тестируемое значение, который проверяется по нескольким значениям сразу.
Каждая группа операторов, которые будут выполняться в случае, если заданное условие истинно, начинается с ключевого слова Case. Оно определяет значение, с которым будет сравниваться параметр тестируемое3начение. Если параметр тестируемое3начение будет равен указанному в операторе Case значению, программа выполнит блок операторов, расположенных между текущим и следующим ключевым словом Case или оператором End Select. Если параметр тестируемое 3начение не равен указанному в текущем операторе Case значению, программа приступает к обработке следующего оператора Case и т.д. Блок Select Case заканчивается оператором End Select.
5.3 Операторы цикла
Оператор цикла является важным элементом программы. Циклы позволяют выполнить одну или несколько строк кода программы несколько раз. В VBA существует несколько разновидностей операторов цикла.
5.3.1 Циклы типа For…Next
Операторы цикла типа For…Next (называемые также циклами со счетчиком) размещаются между ключевыми словами For и Next. При указании цикла данного типа необходимо определить также переменную цикла, которая служит счетчиком, и ее начальное и конечное значения. В качестве дополнительного параметра цикла можно указать приращение – величину, которая прибавляется к счетчику или вычитается из него после завершения очередного шага цикла. Приращение указывается в операторе For после ключевого слова Step. При выполнении первого шага цикла счетчик устанавливается в исходное состояние. После выполнения очередного шага, к переменной цикла прибавляется величина, указанная после ключевого слова Step. Затем счетчик сравнивается с конечным значением переменной цикла. Если он больше, чем конечное значение переменной цикла, выполнение цикла прекращается и программа переходит к следующему за ключевым словом Next оператору. Ниже приведен пример циклов типа For…Next:
For N = 1 То 10
result = N * N
MsgBox N & " в квадрате = " & result
Next
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]