Лекция16(рус).ppt
- Количество слайдов: 59
ТЕМА 10: ОСНОВЫ ОФИСНОГО ПРОГРАММИРОВАНИЯ Лекция 16 LOGO
Лекция 16 Аннотация 10. 1. Языки программирования. Редактор VBA 10. 2. Программирование в EXCEL.
10. 1 Что такое язык программирования? Язык программирования (ЯП) является специальным крайне ограниченным языком, который на определённом уровне понимается компьютером. В зависимости от назначения существующие языки можно условно разделить на три группы: 1) Языки низкого уровня, управляющие компьютером, то есть воздействующие на операционную систему или даже на аппаратное обеспечение (Assembler). 2) Языки высокого уровня, предназначенные для создания индивидуальных приложений, например Microsoft Excel (BASIC, COBOL, FORTRAN, Pascal, C, C++ и Visual Basic). 3) Языки прикладного уровня, управляющие прикладными программами, например Microsoft Excel (Excel VBA, Word VBA и Power. Point VBA).
10. 1 Языки программирования и их назначение:
10. 1 Что такое VBA? Визуальный язык программирования Бейсик для приложений: Visual Basic for Applications (VBA). VBA - это подмножество визуального языка программирования Visual Basic (VB), которое включает почти все средства создания приложений VB. VBA отличается от языка программирования VB тем, что система VBA предназначена для непосредственной работы с объектами Office, в ней нельзя создавать проект независимо от приложений Office. Таким образом, в VBA языком программирования является VB, а инструментальная среда программирования реализована в виде редактора VB, который может активизироваться с любого приложения MS Office.
10. 1 Что такое VBA? VBA — относительно легкий язык программирования. Он прост в освоении и позволяет быстро получать ощутимые результаты — конструировать профессиональные приложения, решающие практически все задачи, встречающиеся в среде Windows. При этом создание многих приложений с использованием VBA проще и быстрее, чем при помощи других языков программирования. VBA применяет технологию визуального программирования, т. е. конструирование рабочей поверхности приложения и элементов его управления непосредственно на экране, а также запись всей программы или ее частей при помощи Macro. Recorder.
10. 1 Что такое VBA? VBA относится к языкам объектно-ориентированного программирования (ООП). ООП можно описать как методику анализа, проектирования и написания приложений с помощью объектов. Что такое объект? Объект позволяет объединить данные вместе с кодом, предназначенным для их обработки в нечто целое, именуемое объектом. VBA не является объектноориентированном языком в строгом понимании этого слова, однако объектный подход играет в нем большую роль. Все визуальные объекты, такие как рабочий лист (worksheet), диапазон (Range), диаграмма (Chart), форма (user. Form), являются объектами. В VBA имеется более 100 встроенных объектов.
10. 1 Что такое VBA? Язык программирования VBA служит для написания кода программы, например для создания пользовательских функций в Excel. Тот факт, что система VBA предназначена для работы с объектами Office, позволяет эффективно ее применять для автоматизации деятельности, связанной с разработкой различных типов документов.
10. 1 Как открыть редактор VBA? Чтобы открыть редактор VBA из любого приложения Word, Excel, Outlook или Power. Point необходимо выполнить следующие действия в приложениях Microsoft Office. На вкладке Разработчик щелкните Visual Basic в группе Код. Вызвать окно проекта можно также нажав Alt + F 11. Вернуться из редактора в приложение можно с помощью повторного нажатия комбинации клавиш Alt + F 11.
10. 1 Как открыть редактор VBA? Если вкладка Разработчик не отображена: 1) Нажмите кнопку «Microsoft Office» , затем нажмите кнопку Параметры Имя_программы,
10. 1 Как открыть редактор VBA? , 2) Щелкните Основные и затем установите флажок Показывать вкладку «Разработчик» на ленте и нажмите кнопку ОК.
10. 1 Основные компоненты окна редактора Visual Basic
10. 1 Стандартная панель инструментов редактора Visual Basic Панель разбита на отдельные сегменты по типу выполняемых команд. Кнопки первого сегмента: - для возвращения в Excel, вставки элементов (модулей, процедур, экранных форм) в проект и сохранение рабочей книги. Кнопки второго сегмента: - для вырезания, копирования, вставки и поиска фрагментов кодов. Кнопки третьего сегмента: - отмены действий и повтор отменённых действий.
10. 1 Стандартная панель инструментов редактора Visual Basic Кнопки четвёртого сегмента: - для выполнения, остановки и окончания выполнения процедуры, а также изменения режима отображения экранной формы. Кнопки пятого сегмента: - руководители отображением окон проектов, свойств и просмотр объектов, а также панели инструментов. Последняя кнопка - это обычная кнопка вызова справочной системы.
10. 1 Окно проекта активизируется выбором команды View / Project Explorer или нажатием кнопок Ctrl + R. В окне проекта представлена иерархическая структура файлов, форм и модулей текущего проекта.
10. 1 Окно свойств проекта (Properties Windows). В окне свойств перечисляются основные значения свойств выбранного объекта. Для просмотра свойств выбранного объекта необходимо выполнить команду Properties Windows или нажатием кнопки F 4. Окно свойств состоит из двух составных частей: верхней и рабочей. В верхней части окна располагается раскрывающийся список, из которого можно выбрать любой элемент управления текущей формы или саму форму. Рабочая часть состоит из двух вкладок, в которых свойства располагаются По алфавиту (Alphabetic) и По категориям (Categorized).
10. 1 Окно Просмотр объектов (Object Browser) вызывается командой Вид, Просмотр объектов (View, Object Browser) или нажатием кнопки Просмотр объектов (Object Browser). В этом окне приведен список всех объектов, которые имеются в системе и которые можно использовать при создании проекта.
10. 1 Окно Просмотр объектов (Object Browser) состоит из трех основных частей: 1. Раскрывающегося списка Проект/Библиотека (Project/Library) в левом верхнем углу окна.
10. 1 Окно Просмотр объектов (Object Browser) В этом раскрывающемся списке можно выбрать различные проекты и библиотеки объектов. В частности, библиотеки объектов Excel, VBA, Office и VBAProject (объекты пользовательского проекта). Выбор в списке строки <Все библиотеки> (<Аll Libraries>) отображает список объектов всех библиотек.
10. 1 Окно Просмотр объектов (Object Browser) 2. Списка Классы (Classes). После выбора из раскрывающегося списка Проект/Библиотека (Project/Library) просматриваемой библиотеки, например VBA, все классы объектов выбранной библиотеки выводятся в списке Классы (Classes).
10. 1 Окно Просмотр объектов (Object Browser) 3. Списка Компоненты (Members). После выбора класса из списка Классы (Classes) просматриваемой библиотеки, например File. System, все компоненты выбранного класса выводятся в списке Компоненты (Members). При выделении строки в этом списке в нижней части окна приводится дополнительная информация о выбранном компоненте. Если нажать на кнопку Справка (Help), то на экране отобразится окно Справочник Visual_Basic (Microsoft Visual Basic Help) с подробной информацией о выделенном компоненте.
10. 1 Поле редактирования кода процедуры. Правая часть окна редактора предназначена для формирования и отображения кода процедуры. В окне редактирования кода процедуры доступны два режима кода: просмотр отдельной процедуры и всего модуля. Переключение режимов работы окна редактирования кода осуществляется: 1) выбором одной из двух кнопок в нижнем левом углу окна редактирования кода
10. 1 Поле редактирования кода процедуры. 2) либо установкой или снятием флажка Просмотр всего модуля (Default to Full Module View) вкладки Редактор (Editor) диалогового окна Параметры (Options), отображаемого на экране командой Сервис, Параметры (Tools, Options).
10. 1 Поле редактирования кода процедуры. Два раскрывающихся списка в верхней части окна редактора кода облегчают ориентацию в процедурах. Левый раскрывающийся список позволяет выбрать управляющий элемент или форму, а правый — содержит список событий, допустимых для выбранного в левом списке объекта.
10. 1 Поле редактирования кода процедуры. При выборе элемента управления в форме посредством двойного щелчка или перемещении указателя на элемент управления и нажатии кнопки Программа (Veiw Code) открывается окно редактирования кода как раз в том месте, где располагается процедура, связанная с этим элементом управления. Обратный переход от процедуры к объекту управления быстрее всего осуществить нажатием кнопки Объект (Veiw Object)
10. 1 Модули и процедуры Код VBA должен где то находиться, и это "где то" называется модулем. Модуль состоит из процедур. Каждая процедура, содержащаяся в модуле, являются либо процедурой-функцией, или процедуройподпрограммой. Модуль - это совокупность объявлений (описательная часть) и хранимых процедур как единое целое. Процедура - любая совокупность кодов VBA, который рассматривается как единое целое. Как правило, процедура состоит из операторов, которые выполняют какое-нибудь задание или вычисляют значения. Каждая процедура идентифицируется своим уникальным именем. Часто выполнения процедуры является реакцией на какое -либо событие. В этом случае говорят, что процедура обрабатывает событие.
10. 1 Окно редактирования форм (User. Form) Предназначено для разработки пользовательских диалоговых окон. Форма к проекту добавляется с помощью нажатия кнопки Insert User. Form. В результате на экран выводится пустая форма с панелью инструментов Toolbox. Используя панель инструментов можно с пустой формы сконструировать любое окно.
10. 1 Окно редактирования форм (User. Form) Размещение нового управляющего элемента в форме осуществляется следующей последовательностью действий: 1. Щелкните значок того элемента, который вы собираетесь разместить в форме. 2. Поместите указатель мыши на то место, где будет располагаться управляющий элемент. 3. Нажмите левую кнопку мыши и, не отпуская ее, растяните появившийся прямоугольник до требуемых размеров. 4. Отпустите кнопку мыши. Элемент управления на нужном месте создан. Размеры формы и расположенных на ней элементов управления можно изменять. Окно редактирования форм поддерживает операции буфера обмена.
10. 1 Окно редактирования форм (User. Form) Т. о. , можно копировать, вырезать и вставлять элементы управления, расположенные на поверхности формы. Для облегчения размещения и выравнивания элементов управления используется сетка. Активизировать ее можно с помощью вкладки Общие (General) диалогового окна Параметры (Options), вызываемого командой Сервис, Параметры (Tools, Options), там же устанавливается шаг сетки.
10. 1 Окно редактирования форм (User. Form) Кроме того, команды меню Формат (Format) автоматизируют и облегчают процесс выравнивания элементов управления как по их взаимному местоположению, так и по размерам.
10. 2 Программирование в EXCEL. Синтаксис и данные языка VBA. Синтаксис – это совокупность правил, которые определяют порядок использования и организацию элементов языка. Типы данных - это определённые виды данных, которые VBA сохраняет и может манипулировать.
Типы данных Описание и диапазон значений Byte Сохранение положительных чисел от 0 до 255 Boolean Сохранение логических значений: True, False Сохранение чисел для точных вычислений в диапазоне Currency от -922337203685477, 5808 до 922337203685477, 5807 Сохранение даты и времени. Даты от 1. 01. 100 до 31. 12. 9999 Date Время от 00: 00 до 23: 59
Типы данных Описание и диапазон значений Double Integer Long Single String Сохранение чисел двойной точности от -1, 79769313486232*10308 до 4, 94065645841247*10 -324 от 4, 94065645841247*10 -324 до 1, 79769313486232*10308 Сохранение целых чисел от -32768 до 32767 Сохранение целых чисел от -2147483648 до 2147483647 Сохранение чисел одинарной точности от -3, 402823*1038 до -1, 401298*10 -45 от 1, 401298*10 -45 до 3, 402823*1038 Сохранение текста длинной до 2 млрд. символов
10. 2 Операторы языка VBA. Оператор - это символ, или выражение, дает указание программе выполнить определенное действие над конкретными данными. VBA содержит несколько категорий операторов: 1. оператор присваивания; 2. числовые и текстовые операторы; 3. логические операторы; 4. операторы сравнения. 1. Оператор присвоения. Символ равно (=) в VBA является оператором присваивания и используется для присвоения значения переменной. Правила записи оператора присваивания следующие: слева от оператора присваивания должна стоять переменная, которой передается значение, справа от оператора присваивания должно стоять выражение.
10. 2 Операторы языка VBA. Операция присваивания имеет две синтаксические формы: 1. Let varname = expression; 2. varname = expression; varname - любая переменная VBA expression - любое выражение VBA Первый вариант операции присвоения использовался в ранних языках программирования Basic. Второй вариант используется в современной версии VBA. При выполнении оператора присваивания VBA сначала вычисляет выражение справа от оператора присваивания, а затем сохраняет результат выражения в переменной, имя которой находится слева от знака равенства. X = 5 + 7; Y = X + 5 ; Z = X - Y; A = B; I = I + 1.
10. 2 Операторы языка VBA. Следует запомнить: • Можно присваивать любую численную переменную (или выражение) любой другой переменной численного типа (или переменной типа Variant); • Если присваивается численное выражение переменной, которая типизируется, с меньшей точностью (например, Double - Long), VBA округляет значение выражения для совпадения с точностью переменной, приобретающей новое значение; • Если переменной типа String присваивается переменная типа Variant, содержащей число, VBA автоматически преобразует это число в строку.
10. 2 Операторы языка VBA. 2. Оператор сложения (+) - выполняет простое сложение. Оба операнда должны быть численными выражениями или строками, которые VBA может преобразовать в число. Можно также использовать для выполнения арифметических операций с данными типа Date. Тип данных результата выражения сложения обычно тот же, что и наиболее точный тип в этом выражении. Но, есть исключения: • Single + Long = Double; • Date + любой другой тип данных = Date; • Если результат превышает диапазон типа Integer, то VBA преобразует его в Long;
10. 2 Операторы языка VBA. • Если результат превышает типы Long, Single, Date, то VBA преобразует его в Double; • Если любой операнд в выражении сложения является Null, то результатом выражения сложения также будет Null. Порядок увеличения точности для численных типов данных: Byte, Integer, Long, Single, Double, Currency.
10. 2 Операторы языка VBA. 3. Оператор вычитания (-) – выполняет две задачи: 1) используется для вычитания одного числа из другого; 2) обозначает унарный минус (это знак минус, который помещается перед числом для указания того, что это отрицательное число). Оба операнда в выражении вычитания должны быть многочисленными переменными (выражениями) или строчными выражениями, которое VBA может преобразовать в число. Можно использовать оператор вычитания для работы с датами. VBA использует те же правила для определения типа данных результата выражения вычитания, что и для сложения. Но, есть дополнение: Если оба операнда в выражении является типом Date, то результат выражения будет иметь тип Double.
10. 2 Операторы языка VBA. 4. Оператор умножения (*) - умножает два числа - результатом выражения умножения есть произведение двух операндов. Оба операнда в выражении умножения должны быть численными выражениями или строками, которые VBA может преобразовать в число. VBA следует тем же правилам для определения типа данных результата выражения умножения, что и для выражений, использующих оператор сложения. В выражениях умножения все переменные Variant, содержащие значения типа Date, преобразуются в численные значения.
10. 2 Операторы языка VBA. 5. Оператор деления с плавающей запятой (/) – выполняет обычное арифметическое деление своих операндов. Оба операнда в выражении деления с плавающей запятой должны быть численными выражениями или строками, которые VBA может преобразовать в число. Если хотя бы один операнд в выражении деления имеет тип Null, то результат деления также будет Null. Типом данных операции деления с плавающей запятой является Double, за исключением: • Оба операнда в выражении деления имеют тип Integer или Single - результат Single; • Если результат выражения не переполняет диапазон значений для типа Single.
10. 2 Операторы языка VBA. 6. Целочисленное деление () – отличается от деления с плавающей запятой тем, что его результатом всегда является целое число без дробной части. Оба операнда в выражении целочисленного деления должны быть численными выражениями или строками, которые VBA может преобразовать в число. Перед выполнением операции целочисленного деления VBA округляет каждый операнд в число типа Integer или Long (такой же тип имеет и результат целочисленного деления). VBA отвергает (но не округляет!) любой дробный остаток результата выражения целочисленного деления. Например, выражения 22 5 и 24 5 иметь один и тот же результат = 4. Если хотя бы один операнд в выражении целочисленного деления имеет тип Null, то результат деления также будет Null.
10. 2 Операторы языка VBA. 7. Деление по модулю (Mod) –выражение возвращает только остаток операции деления как целое. 22 Mod 5 = 4; 24 Mod 5 = 8; 25 Mod 5 = 0. Остальные свойства деления по модулю идентичны целочисленному делению. 8. Возведение в степень (^) – подносит число в степень. 5 ^ 3 = 125. Оба операнда в выражении возведение в степень должны быть численными выражениями или строками, которые VBA может преобразовать в числа. Операнд слева от оператора возведения в степени может быть отрицательным числом только тогда, когда операнд справа является целым. Результат выражения имеет тип Double. Если хотя бы один операнд в выражении имеет тип Null, то результат возведения в степень также будет Null.
10. 2 Арифметические операторы VBA. Оператор Синтаксис Описание + A+B Сложение: складывает. А и В. - A-B Вычитание вычитает из В. : А * A*B Умножение: перемножает. А на В. / A/B Деление: делит. А на В. AB Целочисленное деление : делит. А на В, отбрасывая дробную часть. Результат - целое число. Mod A Mod B ^ A^B Деление по модулю : делит. А на В, возвращая только остаток операции деления как целое число. Возведение в степень: возводит. А в степень В.
10. 2 Логические операторы VBA Как операнд для логических операторов можно использовать любое действительное выражение, имеющее результат типа Boolean, а также число, которое может быть преобразовано в значение типа Boolean. Результатом логической операции является значение типа Boolean (или Null, если хотя бы один из операндов имеет значение Null).
Логические операторы VBA 10. 2 1. Логический оператор AND - выполняет логическую конъюнкцию. Результатом данной операции является значение True, только когда оба операнда имеют значение True, иначе - False. Синтаксис: Операнд_1 AND Операнд_2 Таблица истинности оператора AND Операнд_1 Операнд_2 Результат True False True False
10. 2 Логические операторы VBA Оператор AND можно использовать для нескольких операндов: (5<7) AND (4>3) AND (5=6) результатом будет False Независимо от количества операндов результатом логической операции AND будет True только в том случае, когда все операнды выражения будут иметь значение True. В любом другом случае результатом будет False. Обратите внимание, что операнды состоят в круглые скобки. VBA сначала вычисляет значение каждого операнда внутри скобок, а потом уже все выражение целиком.
10. 2 Логические операторы VBA 2. Логический оператор OR - выполняет логическую дизъюнкцию. Результатом данной операции является значение True, если хотя бы один из операндов имеет значение True, иначе - False. Синтаксис: Операнд_1 OR Операнд_2 Таблица истинности оператора OR Операнд_1 Операнд_2 Результат True True False False
10. 2 Логические операторы VBA Оператор OR можно использовать для нескольких операндов: (5<7) OR (4>3) OR (5 = 6) результатом будет True. Независимо от количества операндов результатом логической операции OR будет всегда True в том случае, если хотя бы один из операндов выражения иметь значение True. Иначе результатом будет False. Операторов AND и OR можно комбинировать: ((5<7) AND (4>3)) OR (5 = 6) результатом будет True
10. 2 Логические операторы VBA 3. Логический оператор NOT - выполняет логическое отрицание. Оператор NOT использует только один операнд. Синтаксис: NOT Операнд Таблица истинности оператора NOT Операнды Результат True False True Операторы AND OR NOT можно комбинировать: ((5<7) AND (4>3)) OR NOT (5 = 6) результатом будет True
10. 2 Логические операторы VBA 4. Логический оператор XOR - выполняет логическое исключение. Результатом данной операции является значение True, если операнды имеют разные значения, иначе - False. Синтаксис: Операнд_1 XOR Операнд_2 Таблица истинности оператора XOR Операнд_1 Операнд_2 Результат True False True False ((5<7) AND (4>3)) OR NOT (5=6) XOR (5=5) результатом будет False
10. 2 Логические операторы VBA 5. Логический оператор EQV- это оператор логической эквивалентности. Результатом данной операции есть значение True, если операнды имеют одинаковые значения, в противном случае - False. Синтаксис: Операнд_1 EQV Операнд_2 Таблица истинности оператора EQV Операнд_1 Операнд_2 Результат True True False True ((5<7) AND (4>3)) OR NOT (5=6) EQV (5=5) результатом будет True
10. 2 Логические операторы VBA 6. Логический оператор IMP - выполняет логическую операцию импликации. Синтаксис: Операнд_1 IMP Операнд_2 Таблица истинности оператора IMP Операнд_1 True False Операнд_2 True False Результат True False True ((5<7) AND (4>3)) OR NOT (5=6) IMP (5=5) результатом будет True.
10. 2 Оператор Логические операторы VBA. Синтаксис Описание A AND B Конъюнкция: Если А и В имеют значения True, то - True. Иначе - False A OR B Дизъюнкция: Если какой-то из операндов имеет значение True, то - True. Иначе - False NOT A Отрицание Если А имеет значение False, то : True. Иначе - False XOR A XOR B Исключение: Если А имеет значение True или В имеет значение True, то - True. Иначе - False EQV A EQV B Эквивалентность : Если А имеет такое же значение что и В, то - True. Иначе - False IMP A IMP B Импликация: Если А имеет значение True и В имеет значення False, то - False. Иначе - True AND OR
10. 2 Диалоговые окна VBA В проектах VBA используются такие виды диалоговых окон: 1. Окна сообщений (Msg. Box); 2. Окна ввода (Input. Box); 3. Вмонтированные диалоговые окна;
10. 2 Диалоговые окна VBA 1. Окно сообщения (Msg. Box) предназначено для выведения на экран диалогового окна, которое содержит сообщение пользователю для реагирования на выполненное действие и возвращение значения Integer, которое указывает как отреагировал пользователь на это сообщение. Функция окна Msg. Box имеет следующий синтаксис: Msg. Box(Текст сообщения [, Стиль, Заголовок, Файл справки, Индекс темы справки]) где: Текст сообщения – задаётся строка сообщения (Например, Завершить выполнение программы? ); Стиль – определяет какие кнопки должны отображаться в диалоговом окне и какая кнопка является активной.
10. 2 Диалоговые окна VBA 2. Окна ввода (Input. Box): Если в память компьютера необходимо ввести с клавиатуры число или текст, тогда используется диалоговое окно (функция) Input. Box, которое отображает на экране диалоговое окно ввода с полем ввода и текстом пояснения. Синтаксис функции: Application. Input. Box (приглашение [, заголовок] [, по умолчанию] [, влево] [, сверху] [, файл справки] [, содержание] [, тип])
10. 2 Диалоговые окна VBA 3. Вмонтированные диалоговые окна: В распоряжении Excel насчитывается приблизительно 200 вмонтированных диалоговых окон. С помощью VBA можно получить доступ ко всем вмонтированным диалоговым окнам. Синтаксис оператора для открытия вмонтированных диалоговых окон следующий: Application. Dialogs(xl. Dialog. Константа). Show. Константа – это название конкретного диалогового окна (название окна следует вводить на английском языке). Чтобы определить значение аргумента xl. Dialog. Константа, необходимо открыть окно просмотра объектов Object Browser (F 2) и в библиотеке Excel выбрать класс XLBuiltln. Dialog – на экране появится перечень всех значений аргумента xl. Dialog. Константа.
LOGO


