Лекция 9(5) Программирование на VBA. Лекция 9 по дисциплине Информатика, часть Автор, доцент кафедры информатика Тимухина В. В
Скачать 249 Kb.
|
Алгоритмизация и программирование Программирование на VBA разветвляющихся процессов • Лекция 9 по дисциплине Информатика, часть Автор, доцент кафедры информатика Тимухина В.В. Лекция 9. Информатика, часть 2 Программирование на VBA включает рассмотрение следующих тем • Типы данных • Описание переменных • Константы • Массивы • Типы данных, определенные пользователем • Операции Встроенные функцииVBA • Встроенные диалоговые окна • Инструкции VBA – Оператор присвоения Операторы перехода и выбора Операторы повтора • Процедуры • Функции • Область определения переменных Лекция 9. Информатика, часть 2 Допустимые имена П ользователь определяет имена переменных, констант, функций, процедур Имена должны соответствовать некоторым требованиям • Отражать суть обозначаемого объекта, чтобы делать программу читаемой(в примере Длина имени не более 255 символов • Имя не может содержать точек, пробелов и символов %, &, !, #, @, Имя может содержать любую комбинацию букв, цифр и символов, но начинаться только с буквы. • Не используйте имена, совпадающие с ключевыми словами языка VBA и именами встроенных функций. • Для выразительности имен используйте набор на разных регистрах, например вместо firstname лучше FirstName. Лекция 9. Информатика, часть 2 Типы данных- фундаментальное понятие языка программирования, определяют множество допустимых значений, которое может принимать указанная переменная Тип данных Размер(байт) Диапазон значений –(байт) 1 От 0 до 255 • Boolean (логический ) 2 True или False • Integer (целый) 2 От -32768 до 32767 • Long (длин. целый) 4 От – 2147483648 до 2147483648 • Single (вещественные) 4 От -3,4 Е до 3,4 Е38 • Double 8 От -1,7 Е до 1,7 Е (денежный) 8 От – 922337203685477,5808 • Date (дата/время) 8 От 1.01.100 до 31.12.9999 • Object (объект) 4 Любой объект (строка) длина строки от 1 до 65400 символов длина строки Любая числовая или строковая переменная • Тип данных, определяемый пользователем инструкцией Type Лекция 9. Информатика, часть 2 Описание переменных. Переменная используется для временного хранения данных в оперативной памяти, те. она определяет область памяти, где хранится её значение. Описать переменную можно явными неявным способами Явное описание переменных с использованием операторов Dim, Private, Static, Public, которые определяют область памяти для хранения переменной и видимость переменной ИмяПеременной As ТипПеременной Private ИмяПеременной As ТипПеременной Static ИмяПеременной As ТипПеременной Public ИмяПеременной As ТипПеременной Например, Dim a As Integer, b As Single, c As String. Dim x, y, z As String – Это неправильное описание переменных. Только z будет описан типом String, ахи убудут типа Variant. Лекция 9. Информатика, часть 2 Неявное описание переменных осуществляется включением вконец его имени специального символа, устанавливающего тип переменной %-Integer; & - Long; ! – Single; # -Double; $ - String; @ -Например а - переменная а целого типа, b! – переменная b вещественного типа, c$ - переменная с строкового типа Лекция 9. Информатика, часть 2 Структура модуля. Модуль создается командой Insert - Module СТРУКТУРА МОДУЛЯ Область описания модуля- General Declarations описывает глобальные переменные) О Explicit –обязател. описание переменных Public глобальные переменные Private локальные переменные модуля Dim локальные переменные модуля Область процедур Public Sub Procedure1( ) Описание локальных перемен. процедуры 1 Dim…. ….. End Sub Private Sub Procedure2( ) Описания локальных перемен. процедуры 2 Dim…. …. End Sub Sub Procedure 3() Описания локальных перемен. процедуры 3 Dim ….. Static ……. End Sub Программный модуль состоит из двух областей Область описания переменных. В этой области описываются глобальные для всего проекта переменные и локальные переменные для данного модуля. •Область процедур. В области процедур размещены все процедуры данного модуля Лекция 9. Информатика, часть 2 Описание переменных зависит от области видимости переменных, если указана инструкция Ото описание переменных обязательно. Переменные нужно описывать- Это признак хорошего, грамотного программирования- Это экономит память, так как все неописанные переменные система воспринимает как переменные типа Variant и назначает им большее количество памяти, чем может потребоваться. Глобальные переменные. Их значения сохраняются до конца работы всей программы и они доступны в любой процедуре любого модуля донного проекта. Описываются в области описания модуля инструкцией Public. Лекция 9. Информатика, часть 2 Описание переменных Локальные переменные. Используются в пределах одного модуля или процедуры и после выполнения процедуры будут удалены из памяти, если описаны с помощью Dim или сохранены до конца работы программы, если описаны с помощью Переменные уровня модуля, описываются инструкциями Dim ив области описания модуля, распознаются внутри модуля, в котором описаны. • Переменные уровня процедуры, описываются инструкциями Dim и Static, распознаются внутри процедуры, в которой описаны Лекция 9. Информатика, часть 2 Разные мелочи» Комментарии – невыполняемые строки программы. Они пишутся для пояснения программы. Очень полезны. Комментарий начинается с символа ‘ -апостроф, может быть написан в отдельной строке или в конце строки кода. Например, Dim b As String ‘b строковая переменная – комментарий При отладке программы комментарием можно временно отключить фрагмент программы. При расположении нескольких операторов водной строке для их разделения используется знак двоеточие : Например, ha= t/a : hb=t/b : hc=t/c. Лекция 9. Информатика, часть 2 Разные мелочи» Перенос строки кода в программе на новую строку <Пробел> + Знак подчеркивания MsgBox “ha=“ & str(ha) & chr(13) & “hb=“ & str(hb) _ & chr(13) &“hc=“ & str (Конкатенация строк это объединение нескольких строк в одну. Для объединения используется символ «амперсанд» & или символ сложения +При объединении строк вторая строка добавляется вконец первой. Перенос строки кода Лекция 9. Информатика, часть 2 Операции Математические выполняются над числами, их результатом являются числа. Стандартный набор операций + , - , * , / , \ целочисленное деление, ^ (возведение в степень). Операции Отношения -применяются не только к числам, их результат логические значения. Стандартный набор > , >= , < , <= , <> , = - сравнение двух операндов. Логические – применяются логическими выражениями и их результатом являются логические значения. Стандартный набор and (логическое умножение, or (логическое сложение, not (логическое отрицание) Приоритет функции, действия в скобках, ^ , и, \ (деление нацело, +и , > < = , Not , And , Or . Лекция 9. Информатика, часть 2 Встроенные функции И спользование функций упрощает программирование. • Математические • Проверки типов • Преобразование форматов • Обработки строк • Времени и даты • Финансовые Некоторые математические функции модуль х – синус х – квадратный корень – косинус х – натуральный логарифм х – экспонентах (е х – целая часть числах Лекция 9. Информатика, часть 2 Функции преобразования типов- преобразуют переменные одного типа в другой тип Преобразование символов в число – функция Val( ) у =Val( x Преобразование числа в символы – функция Str( ) x = str( y Другие функции преобразования типов Функция Тип, в который преобразуется выражение Boolen • CByte Byte • CDate Date • CInt Integer • CStr String • CSng Single • Cvar Примеры CByte(b) d=CDate(t) Лекция 9. Информатика, часть 2 Форматирование чисел представляет число в заданной форме или как дату, время, денежное значение Пользовательский формат – позволяет настроить вид отображаемых значений так, как желает пользователь Переменная или Выражение, Формат ) C=1,253647 –переменная Формат Результат Format(C, “##.### “) 1.253 Format(Sin(1)*Exp(5), “#.###e+##”) 1.29E+2 Format( Now, “hh:mm:ss”) 18:57:23 Format( Now, Специальная функция форматирования чисел (Переменная или выражение, Количество знаков после запятой) Формат Результат FormatNumber( Sin(4), 3) -0,757 FormatNumber( C, 2) 1.25 Лекция 9. Информатика, часть 2 Оператор присвоения • Присваивает значение выражения переменной, константе или свойству. Всегда включает знак равенства (Имя переменной = Выражение Оператор предписывает выполнить выражение и присвоить его результат переменной. Например х х = х+2 • Используется для присваивания переменной ссылки на объект. Применяется ключевое слово Set . В примере- переменной r присваивается ссылка на ячейку Аи через эту переменную в ячейку А вводится значение r As Range Set r = Range (“A1”) r. Value = В общем случае инструкция Set имеет такой синтаксис Имя переменной = Выражение Лекция 9. Информатика, часть 2 Оператор With Позволяет не повторять многократно имя объекта. Структурирует текст программы. Пример. Изменить свойства ячейки А1 Без использования With Range(“A1”).Value =3 Range(“A1”) . Font . Italic = Установлено значение А, равной 3 и шрифт – «курсив» С использованием With With Range(“A1”) .Value=3 .Font . Italic=True End With Лекция 9. Информатика, часть 2 Оператор With Пример- изменение формата ячейки =3 Range(“A1”) . Font . Italic = True Range(“A1”). Font . Size = 12 Range(“A1”). Font.ColorIndex =3 Установлено значение А, равной 3, шрифт – курсив, высота шрифта 12, цвет красный Range(“A1”) .Value=3 With . Font . Italic=True . Size = 12 . ColorIndex =3 End With End With Лекция 9. Информатика, часть 2 Операторы управления: перехода и выбора (GoTo, If, Select) , повтора (For, For Each, Do Loop, Оператор условного перехода – задает выполнение определенных групп инструкций в зависимости от значения логического выражения вариант записи If условие Then выполняются операторы, если условие истина Else выполняются операторы, если условие ложно if 2 вариант записи условие Then операторы Else операторы Если оператор набирается в одну строку , тоне ставится. Ветвь Else является необязательной Лекция 9. Информатика, часть 2 ПРИМЕР Вычислить Скидку, которая применима только к Суммам больше 1000, в противном случае Скидка вариант записи Сумма Скидка = 0.05 Скидка =0 end if 2 вариант записи Сумма Then Скидка = 0.05 Else Скидка =0 Сумма>1000 Скидка = Скидка = 0 Да Нет Лекция 9. Информатика, часть 2 Программирование алгоритма разветвляющейся структуры В алгоритме разветвляющейся структуры вычислительный процесс в зависимости от выполнения некоторого логического условия осуществляется по одной или подругой ветви , те. вычисления осуществляются по одним или по другим формулам 0 1 ПРИМЕР. Вычислить У, выбрав формулу решения в зависимости от значения Х. Для решения таких задач используется оператор if Then Else Лекция 9. Информатика, часть 2 22 Блок-схема алгоритма решения задачи Х<0 Описание переменных Х Y= sin(x); S Y= e x ; S Y= 1; Начало Конец Ввести Х Да Нет Блок-схема алгоритма Вывести Y, S Вывести Y Да Нет Вывести S? В алгоритме нужно предусмотреть. Описание переменных X и Y 2. Ввод X 3. Сравнение Х с нулем. Выбор формулы решения для Y в зависимости от значения Х. Вывод результата – значения Y Лекция 9. Информатика, часть 2 Разработка формы флажок Лекция 9. Информатика, часть 2 Программирование объекта CheckBox (флажка) с использованием оператора If If CheckBox1.Value = True выполняются инструкции, если флажок установлен выполняются инструкции, если флажок сброшен If Лекция 9. Информатика, часть 2 Разработка Кода программы задачи 1. 2 раза щелкните по кнопке Вычислить расположенный на форме. Появятся строки Sub CommandButton1_Click() End Sub 3. Наберите между этими строками код программы. Запустите программу на выполнение командой Run (F5). Лекция 9. Информатика, часть 2 Кода программы Sub CommandButton1_Click() Dim x As Single, y As Single, s As String Описание переменных = TextBox1.Value ‘ Ввод Х x > 0 Then У = Sin(x) : s = "при Х >0 У ‘ сообщение Else If x < 0 Then У = Exp(x) : s = "при Х <0 У EXP(X))" Else У = 1: s = "при Х =0 У End If End Программирование флажка и вывод У If CheckBox1.Value = True Then Label3.Caption = У) & s ‘ флажок установлен, выводится y и s Else Label3.Caption = У) ‘ флажок сброшен, выводится только y End If End Sub Лекция 9. Информатика, часть 2 Результаты работы программы верхний ряд форм - без вывода условия выбора формулы решения; нижний ряд форм – с выводом условия выбора формулы решения Лекция 9. Информатика, часть 2 Оператор выбора Используется в том случае, если нужно проверить несколько условий Выполняет одну из нескольких групп инструкций в зависимости от значения выражения Case выражение выражение 1 Инструкции 1 Case выражение 2 Инструкции 2 ……. Case выражение n Инструкции n Case Else Инструкции иначе Select Лекция 9. Информатика, часть 2 Код программы с использованием Case Private Sub CommandButton1_Click() Dim x As Single, y As Single, s As String Описание переменных = TextBox1.Value ‘ Ввод Х Select Case x Case У = Sin(x): s = "при Х >0 У" ‘ сообщение У 1: s = "при Х =0 У У = Exp(x): s = "при Х <0 У EXP(X))" End Программирование флажка и вывод z If CheckBox1.Value = True Then Label3.Caption = У) & s ‘ флажок установлен Else Label3.Caption = У) ‘ флажок сброшен If End Ключевое слово Is задает диапазон значений. Если Is не указано, оно задается по умолчанию Лекция 9. Информатика, часть 2 30 0>0>0>Выводы • В лекции рассмотрены фундаментальные понятия языка типы переменных функции, в том числе преобразования типов и основные операторы языка. • Подробно рассмотрено программирование задачи выбора формулы решения с использованием операторов If и Показан объект формы Флажок (CheckBox) и принципы его программирования. |