Слайд 2: Вопросы темы
Базовые элементы языка VBA. Организация ввода – вывода данных. Программирование линейных алгоритмов. Программирование разветвляющихся алгоритмов Программирование циклических алгоритмов.
Слайд 3: Вопрос 1. Базовые элементы языка VBA
1.1. Алфавит, словарь, идентификаторы Слова – неделимые последовательности знаков алфавита, отделенные друг от друга разделителями, и несущие определенный смысл в программе. Алфавит языка VBA образуют прописные и строчные буквы латинского алфавита десятичные цифры специальные символы: +, -,*, ^, /, … знак подчеркивания Слова подразделяются ключевые слова фиксированные слова, которые закреплены в языке VBA (имена типов данных, методов, свойств, операторов, объектов и стандартных функций) Идентификаторы пользователя применяются для обозначения переменных, констант, процедур, функций, различных объектов, определенных самим пользователем
Слайд 4
1.2. Типы данных Тип данных Описание Размер, байт Диапазон Byte Байт 1 От 0 до 255 Boolean Логический 2 True или False Integer Целое 2 От -32 768 до 32 767 Long Длинное целое 4 От -2 147 473 648 до 2 147 483 647 Single С плавающей точкой обычной точности 4 От -3,402823Е38 до - 1,401298Е-45 для отрицательных чисел От 1,401298Е-45 до 3,402823Е38 для положительных чисел Currency Денежный 8 От -922337230685477,5808 до 922337203685477,5807 Date Даты и время 8 С 1 января 100 года до 31 декабря 9999 года Variant Числовые подтипы 16 байт + N байт (согласно типу) Переменная любого числового типа ТИПЫ ДАННЫХ определяют множество значений, которые могут принимать объекты программ совокупность операций, допустимых над этими объектами объем выделяемой памяти и форму представления данных в ней Типы данных в VBA
Слайд 5
1. 3. Переменные Переменными называются элементы данных, значения которых при выполнении программы могут принимать различные значения в соответствии с указанным типом. Синтаксис описания переменных: Dim имяПеременной [ As тип] [, имяПеременной [ As тип] … Например, Dim A As Integer Dim B As Single, С As Boolean Dim D Если тип опущен, то он равен Variant Описание переменных Явное, если указано описание (инструкции Dim ) и тип переменной Неявное – переменная вообще не описана, не указан тип
Слайд 6
1. 4. Константы Константами называются элементы данных, значения которых определены при их описании и в процессе выполнения программ не изменяются. Типы констант в VBA Литеральные Именованные Числовые – 16; 3.14; 4.2Е+02 Строковые – “Иванов И.И.” Логические – True, False Встроенные (стандартные) константы, vbOKOnly Пользовательские константы объявляются Const Синтаксис инструкции Const : Const ИмяКонстанты [ As тип] = выражение Например, Const Year As Integer =2003 Const Plan =129 Const NameGrup = “МТ - 21” Const Flag = True
Слайд 7
1. 5. Операции и операторы VBA Операции VBA Арифметические + - * / ^ \ mod Отношения >, >=, <, <=, =, <> Конкатенации (сцепления) & Логические And Or Xor Not 1.6. Встроенные функции VBA Ключевое слово, синтаксис Функция Atn (x) Арктангенс числа Cos (x) Косинус угла Sin (x) Синус угла Tan (x) Тангенс угла Exp(x) Возведение числа е в степень x Log (x) Логарифм натуральный Sqr (x) Квадратный корень числа Abs ( x ) Абсолютное значение числа
Слайд 8
1.7. Приоритеты операций Приоритет Оператор (операция) 1 Вызов функции и скобки 2 ^ (возведение в степень) 3 - (смена знака) 4 *, / (умножение, деление) 5 \ (целочисленное деление) 6 Mod (остаток от целочисленного деления) 7 +, - (сложение, вычитание) 8 &, + (слияние строк) 9 =, <>, <, >, <=, >= (операции отношения) 10 Not (логическое отрицание) 11 And (логическое И ) 12 Or (логическое ИЛИ ) 13 Xor (исключающее ИЛИ ) 1. 8. Оператор присваивания Оператор присваивания осуществляет присваивание результата вычисления некоторого выражения переменной или константе. Синтаксис: <идентификатор> = <выражение>
Слайд 9
1. 9. Структура программы Проект – это совокупность нескольких элементов. Основными из них являются: приложение (в нашем случае это Excel ); среда разработки VBA (редактор VBA ); совокупность модулей, в которых записывается программный код (совокупность программных единиц – процедур проекта). Процедура – представляет собой последовательность инструкций. Инструкция – это синтаксически полный компонент программы, представляющий собой операцию, описание или определение. Типы инструкций Инструкции объявления Инструкции присваивания Выполняемые инструкции Синтаксис объявления процедуры Sub имеет следующий вид: Sub <ИмяПроцедуры>([<Список параметров>]) <Тело процедуры> End Sub
Слайд 10
1. 10. Правила оформления кода Рекомендаций при программировании на VBA : В соответствии с правилами хорошего стиля программирования размещать инструкции описания в начале процедуры. Использовать комментарии, т.е. пояснения к фрагменту текста процедуры. ´программирование линейных алгоритмов Перенос строк кода. Длинные инструкции можно размещать в нескольких строках. Для этого используют признак продолжения строки, состоящей из двух символов: пробела и подчеркивания ( _ ). y = 2 * Sqr ( x +3) - ( log ( x ^2) +2) _ / ( sin ( x -1)) Расположение нескольких операторов в одной строке. Использование знака двоеточия (:) позволяет разместить несколько операторов (инструкций) на одной строке. x = x + a : y = x - b Выделение логических уровней кода отступами. (отступы делаются пробелами)
Слайд 11: Вопрос 2. Организация ввода – вывода данных
Обмен информацией с пользователем в Windows Окно сообщений ( MsgBox ) Окно ввода ( InputBox ) ввод и вывод данных осуществить непосредственно из ячеек (в ячейки) рабочего листа Диалоговые окна
Слайд 12
2. 1. ОКНО СООБЩЕНИЯ. Стандартная процедура MsgBox Сокращенный синтаксис процедуры MsgBox : MsgBox сообщение [, атрибуты] [, заголовок] Значения параметра Buttons процедуры и функции MsgBox, определяющие отображаемые кнопки в окне сообщения Константа Значение Отображаемые кнопки vbOKOnly 0 OK vbOKCancel 1 OK, Отмена vbAbortReplyIgnore 2 Стоп, Повтор, Пропустить vbYesNoCancel 3 Да, Нет, Отмена vbYesNo 4 Да, Нет vbReplyCancel 5 Повтор, Отмена Значения параметра Buttons процедуры и функции MsgBox, определяющие отображаемые информационные значки в окне сообщения Константа Значение Значок сообщения vbCritical 16 vbQuestion 32 vbExclamation 48 vbInformation 64 Например Sub Pr2_1() ' Простое информационное сообщение MsgBox "Привет!!!" End Sub Например Sub Pr2_3() ' Вывод сообщения с двумя кнопками ОК и Отмена в сочетании с ' предупреждающим информационным значком. Кнопка ОК является основной MsgBox "Процент выполнения плана выпуска продукции -" & _ Chr(13) & " незначительный", vbOKCancel + _ vbQuestion, " Пример " End Sub
Слайд 13
2.2. ОКНО ВВОДА. Стандартная функция InputBox () Сокращенный синтаксис: InputBox (сообщение [, заголовок] [, умолчание]) Например, b = InputBox ("Введи значение b= ", "Пример 3.5") сообщение – Строковое выражение, отображаемое как сообщение в диалоговом окне. Может содержать несколько строк. Максимальная длина строки 1024 символа. заголовок - Строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот параметр опущен, то в строку заголовка помещается имя приложения. умолчание – Строковое выражение, отображаемое в поле ввода. Используется по умолчанию, если пользователь не введет другую строку. Если параметр опущен, то поле ввода изображается пустым.
Слайд 14
2. 3. Ввод/вывод данных с/на рабочий лист Excel Для ввода/вывода Range ( Диапазон ячеек ) Cells ( Ячейка) Например, x=Cells(5,3).Value или x = Cells (5,3) или x = Range (" C 5") Переменной x присваивается значение ячейки С5 Например, Sub Pr 2 _ 4 () Dim a As Byte, b As Byte, x As Integer, y As Single a = Cells (2, 3): b = Cells (3, 3): x = Cells (4, 3) y = (x + 3) ^ 2 + (2 * a - 3 * b) / (x ^ 2 - 2.8) Cells(6, 1) = "Значение функции:" Cells (7, 3) = y End Sub
Слайд 15: Вопрос 3. Программирование линейных алгоритмов
Sub Pr 3 _ 1 () Dim y As Single, x As Single, a As Single Dim t As Single, z As Single a = InputBox ("Введи значение а") z = Inpu tBox("Введи значение z") x = 1 - z t = (x + 1) ^ 2 y = x + Abs (a + 2 * t) MsgBox "Исходные данные:" & Chr(13) & _ "a=" & a & " z=" & z & Chr(13) & _ "Промежуточные данные:" & Chr(13) & _ "x=" & x & " t=" & t & Chr(13) & _ "Результат:" & Chr(13) & "y=" & y,, "Пример" End Sub Пример Вычислить значение функции y = x + | a +2 t |, где x = 1 – z, t = ( x + 1) 2
Слайд 16: Вопрос 4. Программирование разветвляющихся алгоритмов
Оператор условного перехода ( условный оператор ) If реализует разветвляющиеся процессы Формы оператора if Краткая форма If … Then Полная форма If … Then … Else Проверка множественных условий If … Then … ElseIf If x>5 Then y=3*x+1.5 If a > 5 Then b = b + a Else b = b - a End If If g > 10 Then z=5 ElseIf g<5 Then z=1 End If Пример ы 4.1. Условный оператор If
Слайд 17
Для реализации выбора нескольких альтернатив можно использовать оператор Select Case 4. 2. Оператор выбора Select Case Например, реализовать вывод сообщения об оценке по полученным балам Select Case Range (“A3”) Case Is >=90 MsgBox “ Вы получаете оценку 5 ” Case 75 To 89 MsgBox “ Вы получаете оценку 4” Case 60 To 74 MsgBox “ Вы получаете оценку 3” Case 35 To 59 MsgBox “ Вы получаете оценку 2” Case Else MsgBox “ Вас необходимо отчислить ” End Select
Слайд 18: Вопрос 5. Программирование циклических алгоритмов
Шаг 1. Переменной цикла присваивается начальное значение Шаг 2. Проверяется условие входа в цикл Шаг 3. Значение переменной цикла изменяется Шаг 4. Повторяются действия с шага 2 нет Выход и з цикла Да Выполняется тело цикла Принцип работы циклических процессов
Слайд 19
5.1. Оператор цикла While … Wend Синтаксис: While <условие> <Повторяющиеся действия> Wend K = 1 While k<=N+1 y = k+N MsgBox “При k =” & k & “ и N =”, & N _ & “ значение y =”& y k = k + 0.5 Wend Пример
Слайд 20
5.2. Оператор цикла Do … Until Синтаксис: Do <Повторяющиеся действия> Loop Until <условие> k=1 Do y = k + N MsgBox “При k =” & k & “ и N =”, & N _ & “ значение y =”& y k = k + 0.5 Loop Until k>N+1 Пример K= 1 Да Нет K = K + 0,5 y =K + N Вывод K, N, y K > N + 1
Последний слайд презентации: Тема 2. Программирование на VBA
5.3. Оператор цикла For … Next Синтаксис: For Счетчик=НачЗначение То КонЗначение [ Step Приращение] <Повторяющиеся действия> Next [Счетчик] Пример For i=1 To p y = x + 1 Cells (1+i,1)=i: Cells (1+i,2)=x : Cells (1+i,3)=y x = x + DX Next