Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Создание макроса с абсолютными ссылкамиСтр 1 из 15Следующая ⇒
СОДЕРЖАНИЕ
Введение 4 Тематический план лабораторных работ 5 Лабораторная работа 1. Инструментальная среда разработки Visual Basic Application (VBA). Макрорекордер.. 6 Лабораторная работа 2. Функция пользователя 14 Лабораторная работа 3. Работа с элементами управления на рабочем листе 19 Лабораторная работа 4. Интерфейс Visual Basic for Application 30 Лабораторная работа 5. Создание форм 44 Лабораторная работа 6. Процедуры и функции 52 Лабораторная работа 7. Массивы данных 69 Литература 77
ВВЕДЕНИЕ Данные методические указания предназначены для проведения лабораторных работ со студентами 1 курса дневной и заочной форм обучения по дисциплине «Информатика», входящей в состав общих математических естественно-научных дисциплин по направлению 6.050502 "Машиностроение" специальности «Оборудование перерабатывающих и пищевых производств». В методических указаниях приведены 7 лабораторных работ, которые были разработаны и апробированы в течение нескольких лет на кафедре информатики и прикладной математики. Все лабораторные работы объединены единым подходом, основанным на моделировании типовых процессов при выполнении задач вычислительного характера средствами Visual Basic for Application (VBA). Лабораторные работы включают краткие теоретические сведения, практическую часть, в которой представлен порядок проведения работы, а также вопросы для самоконтроля. Основной задачей данных лабораторных работ является обучение студентов основам алгоритмизации, составлению небольших приложений средствами встроенной в Excel интегрированной средой. Выбор в качестве рабочей среды VBA продиктован тем, что этот язык является рабочим языком для большинства приложений фирмы Microsoft (в том числе, для Word и Excel). VBA соединяет в себе все положительные черты самого простого языка программирования VB со всеми вычислительными возможностями Excel, имеет полный доступ ко всем командам и структурам Excel. VBA – сравнительно легкий язык программирования. Он прост в освоении и позволяет быстро получать ощутимые результаты – конструировать профессиональные программы, решающие практически любые задачи. При этом создание программ на языке VBA зачастую проще и быстрее, чем при использовании других языков программирования. VBA относится к числу объектно-ориентированных языков. Он легко позволяет работать со стандартными объектами Microsoft Excel и одновременно позволяет конструировать и вставлять в программу свои собственные объекты.
ТЕМАТИЧЕСКИЙ ПЛАН ЛАБОРАТОРНЫХ РАБОТ
ЛАБОРАТОРНАЯ РАБОТА 1
Инструментальная среда разработки Visual Basic Application ( VBA ). Цель работы: 1. Научиться создавать, редактировать, удалять макросы 2. Освоить работу с макросами
Для автоматизации периодического выполнения одной и той же задачи в Microsoft Excel используется макрос. Макрос — это именованная последовательность команд и функций, хранящаяся в модуле. Модуль – совокупность описаний, инструкций и процедур, сохраненная под общим именем. Существуют модули двух типов: стандартный модуль и модуль класса Visual Basic. Записанный макрос можно вызывать для выполнения из основного меню при помощи кнопки на панели инструментов или на рабочей области, а также комбинации клавиш. Макрос может быть назначен так же графическому объекту. Макрос записывается на языке Visual Basic for Applications (VBA). Текст макроса можно вызывать для редактирования. Создание макросов Для работы с макросами необходимо сначала включить возможность работы с макросами. Работу с макросами можно разрешить в окне Центра управления безопасностью, которое можно вызвать либо посредством окна кнопки Office / Параметры Excel / Центр управления безопасностью, либо с помощью кнопки Безопасность макросов на вкладке Разработчик, которая вызывается в окне кнопки Office / Параметры Excel / Основные / Показать Разработчик на ленте. Макросы начнут работать после выхода из Excel и повторного входа. Для работы с макросами надо активизировать вкладку Разработчик. На вкладке Разработчик в группе Код нажать кнопку Запись макроса (Рисунок 1.1). Рисунок 1.1 1. В диалоговом окне Запись макроса в поле Имя макроса ввести имя макроса. Первым знаком имени макроса должна быть буква. Остальные знаки могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не допускаются пробелы; в качестве разделителей слов следует использовать знаки подчеркивания. Нельзя использовать имя макроса, являющееся ссылкой на ячейку. Имя должно начинаться с буквы и состоять не более чем из 64 символов. 2. Если этот макрос потребуется запускать нажатием на клавиатуре, нужно ввести букву в поле Сочетание клавиш. Допускается использование сочетаний CTRL+ буква (для строчных букв) или CTRL+SHIFT+ буква (для прописных букв), где буква — любая буквенная клавиша на клавиатуре. Нельзя использовать сочетания клавиш с цифрами и специальными знаками, такими как @ или #. Выбранное сочетание клавиш заменяет все совпадающие стандартные сочетания клавиш Microsoft Excel на то время, пока открыта книга, содержащая данный макрос (Рисунок 1.2). Рисунок 1.2 3. Если необходимо добавить описание макроса, введите его в поле Описание. 4. Нажать кнопку OK. Если макрос требуется выполнять относительно позиции активной ячейки, нужно записать его, используя относительные ссылки на ячейки. На вкладке Разработчик в группе Код нажать кнопку Относительные ссылки. Повторное нажатие на эту кнопку отключит Относительные ссылки (Рисунок 1.3). Рисунок 1.3 5. Выполнить макрокоманды, которые нужно записать. 6. На вкладке Разработчик в группе Код нажать кнопку Остановить запись (Рисунок 1.4). Рисунок 1.4 Задание 1 Запись макроса К часто повторяющимся действиям можно отнести выбор нужного формата. Создайте макрос с именем Число, который будет устанавливать для выделенной области числовой формат с одним знаком после запятой. 1. Включить запись макроса; 2. Ввести в поле ввода Имя макроса название создаваемого макроса — Число. Помимо стандартной информации (когда и кем был записан макрос) можно ввести в поле ввода Описание краткое описание назначения макроса. После этого нажать кнопку OK. Начиная с этого момента, осуществляется запись макроса. На экране появляется кнопка Остановить макрос. Если нажать на эту кнопку, то запись макроса будет закончена. 3. Теперь нужно выполнить последовательность действий, которая будет записана в макрос. В нашем случае последовательность действий следующая: выделить ячейки A1:B5, которые нужно отформатировать, и нажать Ctrl+1; в появившемся окне диалога Формат ячеек выбрать вкладку Число, а на ней категорию форматов Числовой, установите число десятичных знаков – 1. 4. Нажать кнопку OK. 5. Остановить запись. После окончания записи макроса он появляется в списке макросов под именем Число. Результатом работы макроса Число будет ввод форматного кода в выделенные ячейки таблицы. 6. Назначьте макросу клавишу быстрого вызова, для этого воспользуйтесь кнопкой Параметры. Задание 2 Задание 3 Sub Число() ' Число Макрос ' Сочетание клавиш: Ctrl +ч Range("A1:B5").Select Selection.NumberFormat = "0.0" End Sub
Строки, записанные после апострофа, составляют комментарий, остальные — текст макроса. Например, для изменения форматирования чисел вместо одного знака после запятой на два знака нужно вместо форматного кода “0.0” ввести форматный код “0.00”. Действуя аналогичным образом, можно внести более серьезные изменения в текст макроса. Фактически можно изменять текст программы Visual Basic, реализующий макрос. Удаление макросов Удаление макроса производится в окне Макросы, которое находится на вкладке Разработчик, кнопка Удалить. Переименование макроса Специальной команды для переименования макроса нет, а часто возникает потребность исправить имя или присвоить макросу совершенно новое наименование. Для этого нужно войти в режим редактирования макроса и в тексте программы исправить заголовок. Задание 4 Порядок выполнения работы 1. Изучить теоретический материал. 2. Загрузить Excel. 3. Выполнить задания, предложенные в теоретическом материале. 4. Создать макрос с относительными ссылками с именем месяц_отн, который выполняет следующие действия: · вводит названия месяцев от января до декабря; · формат введенного текста: 12 пт, Arial, синего цвета, отформатирован по центру горизонтали и вертикали; · установлено обрамление ячеек; · установлен автоподбор ширины столбцов. 5. Задать сочетания горячих клавиш. 6. Создать макросы Прогрессия_ар и Прогрессия_геом, выполняющие заполнение ячеек арифметической и геометрической прогрессиями с шагом 5 с относительными ссылками. Для этого необходимо предварительно внести любое значение в любую ячейку таблицы, выделить несколько ячеек и выполнить запись макроса создающего прогрессию. 7. Назначить созданные макросы надписям, обеспечив поясняющий текст, для удобства получения результата.
8. Добавить в созданные макросы обрамление, заливку для заполняемых ячеек и выравнивание по центру горизонтали. Для этого создать новый макрос с требуемыми форматами. Открыть режим редактирования модулей и скопировать текст программы из созданного макроса в макросы Прогрессия_ар и Прогрессия_геом. 9. Удалить вспомогательный макрос. 10. Продемонстрировать результат преподавателю. 11. Выйти из Excel. Завершить сеанс работы.
Вопросы для самоподготовки 1. Дать понятие о макросе. Для чего он используется? 2. Дать понятие о модуле. Какие типы модулей представлены в Microsoft Excel? 3. Какие настройки необходимо предварительно выполнить для работы макросов в среде MS Excel? 4. Как осуществить запись макрокоманды? 5. Какова последовательность действия при создании макроса с помощью макрорекордера? 6. Какие требования налагаются при задании имени макроса? 7. Какие символы можно использовать для задания сочетания клавиш при запуске макроса? 8. Как запустить макрос на выполнение? 9. Какие два режима записи отличающиеся разными видами ссылок Вам известны? Чем они отличаются друг от друга? 10. Как осуществить выбор нужного режима ссылок? 11. Как назначить макрос графическому объекту? 12. Как активизировать графический объект, к которому назначен макрос? 13. Как назначить макрос рисунку? 14. Опишите действия, которые требуется выполнить для редактирования созданного макроса. 15. Как удалить существующий макрос? 16. Какие действия необходимо предпринять для переименования макроса?
ЛАБОРАТОРНАЯ РАБОТА 2 Функция пользователя Цель работы: Научиться создавать, редактировать и использовать функции пользователя.
Макрос — это процедура языка программирования VBA. Процедура представляет собой группу операторов VBA, которые могут выполнять определенные задачи или возвращать нужный результат. Процедуры, созданные в Excel, могут быть разделены на два типа: подпрограммы и функции. Подпрограммы — это процедуры, выполняющие определенные задачи. Коды подпрограмм начинаются со слова Sub и заканчиваются словами End Sub. Макросы относятся к типу подпрограмм. Например, ниже приведен макрос для выделения и печати текущей области Sub PrintRegion() End Sub Функции — это процедуры, возвращающие результат. Язык VBA предоставляет возможность создания собственных функций, которые могут быть использованы наряду со встроенными функциями Excel. Функции начинаются со слова Function и заканчиваются словами End Function. Синтаксис: Function <имя функции> (список переменных) <Тело функции> End function В качестве разделителя элементов списка используется запятая. End Function 6. Для проверки работоспособности созданной функции возвратиться в окно приложения, выбрав команду ExcelCloseandReturnto Microsoft Excel в меню File. Вызвать Мастерфункций, в открывшемся окне мастера функций выбрать категорию Определенныепользователем, а в окне Выберитефункцию выбрать функцию СУММА5 (Рисунок 2.5). Рисунок 2.5 Задание 1. Создание пользовательской функции. Создать функцию, переводящую значения радиан в градусы. Function grad ( rad ) Grad=rad*180/3.1415 End function
При создании пользовательских функций необходимо обратить внимание на следующие моменты · Пользовательские функции могут быть использованы только в данной рабочей книге · Чтобы иметь возможность использования созданных функций в других рабочих книгах, текущую рабочую книгу нужно сохранить как надстройку Excel, т.е. с расширением xlam. Затем открыв, новую книгу, нужно открыть диалоговое окно Надстройки в мню кнопки Office и подключить созданную надстройку. · Если надстройка сохранена в папке AddIns, она будет автоматически подключаться каждый раз при включении Excel. Порядок выполнения работы 1. Изучить теоретический материал. 2. Загрузить Excel. 3. Выполнить задания, предложенные в теоретическом материале. 4. Создать пользовательские функции, вычисляющие значение функций Z ( x ), F(x), заданные в таблице 2.1. в соответствии с вариантом. 5. Продемонстрировать результат преподавателю. 6. Выйти из Excel. Завершить сеанс работы.
Таблица 2.1.
Вопросы для самоподготовки
1. Что такое процедура VBA? 2. Какие типы процедур VBA Вам известны? 3. Что представляет собой подпрограмма? Какие задачи она решает? 4. Что представляет собой функция? 5. Опишите правила создания пользовательской функции в VBA. 6. Какие моменты необходимо учитывать при создании пользовательских функций в VBA? 7. Как использовать созданную пользовательскую функцию?
ЛАБОРАТОРНАЯ РАБОТА 3
Элементов управления Формы Пример |
Описание | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Подпись | Указывает назначение ячейки или текстового поля либо содержит описание (заголовки, подписи, рисунки) или краткие инструкции. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Группа | Группирует связанные элементы управления в виде прямоугольника с необязательной подписью. Обычно группируются переключатели, флажки или тесно связанные данные. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Кнопка | Запуск макроса, который выполняет действие при нажатии кнопки. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Флажок | Включает или отключает значение, что соответствует выбору противоположных действий. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Вид кнопки |
Название кнопки |
Пример | Описание | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Переключатель | Позволяет выбрать одно из ограниченного набора взаимоисключающих значений. Переключатели обычно находятся в группе или рамке. Переключатель может иметь одно из трех состояний: установлен (значение включено), снят (значение отключено) и смешенное состояние, то есть сочетание состояний "включено" и "отключено" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Список | Выводит список из одного или нескольких текстовых элементов, которые может выбрать пользователь. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поле со списком | Представляет собой сочетание текстового поля и раскрывающегося списка. Поле со списком следует использовать, когда требуется обеспечить возможность ввода элементов в список и выбора из него одного элемента. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Полоса прокрутки | Используется для прокрутки диапазона значений с помощью кнопок со стрелками или путем перетаскивания ползунка полосы прокрутки. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Вид кнопки | Название кнопки | Пример | Описание |
Счетчик | Позволяет увеличивать и уменьшать значение, например числовое значение, время или дату. Чтобы увеличить значение, щелкните стрелку вверх, чтобы уменьшить — стрелку вниз. |
Задание 1.
Задание 2
Порядок выполнения работы.
1. Изучить теоретический материал.
2. Загрузить Excel.
3. Выполнить задания, рассматриваемые в теоретическом разделе. Создать расчетные таблицы, аналогичные таблицам Рисунок 3.3 и Рисунок 3.4.
4. Продемонстрировать результат преподавателю.
5. Перейти на новый лист. Создать Сводную ведомость.
Наименование сырья
Медь
Квартал
1
Номер записи
4
Всего
714
11. Создать Элемент управления Полоса прокрутки, связав ее с ячейкой Квартал Вспомогательной таблицы (Команда Формат элемента управления контекстного меню, вкладка Элемент управления).
12. Создать Поле со списком для выбора материала, указав в качестве Списка диапазон ячеек Наименование сырья из Сводной ведомости и установить связь с ячейкой Номер записи Вспомогательной таблицы
13. Во вспомогательной таблице значение Наименование сырья определить, используя функцию ИНДЕКС.
14. Значение поля Всего определяется с использованием функции
ИНДЕКС, где в качестве массива указывается диапазон ячеек Сводной ведомости, содержащий числовые значения, добытого сырья, в качестве строки указывается Номерзаписи, а столбца – Квартал Вспомогательной таблицы.
15. В каждом блоке Надпись сослаться на ячейки, в которых расположена указанная информация. (Активизировать объект, в строке формул ввести равно и щелкнуть по ячейку с нужной информацией.).
16. На основе данных Сводной ведомости создать таблицу для построения диаграммы Добычи сырья по кварталам. Для этого нужно воспользоваться функцией ИНДЕКС, причем расчет значений выполнить в виде формулы массива. {=ИНДЕКС(C38:F41;0;M44)}
Перед вводом формулы выделить все ячейки для расчета, а по окончанию нажмите Ctrl + Shift + Enter. Диапазон C38:F41 – Массив числовых данных из Сводной ведомости, М44 – поле Квартал из Вспомогательной таблицы.
Наименование сырья | квартал |
золото | 5354 |
серебро | 3388 |
медь | 714 |
кварц | 714 |
17. Создать диаграмму, при этом определите ряды данных в столбцах.
Для придания диаграмме более компактного вида можно воспользоваться командой Формат рядов данных из контекстного меню, вкладка Параметры. Выбрать для перекрытия значение -30 и для ширины зазора значение 30.
18.
19. Выйти из Excel. Завершите сеанс работы.
Вопросы для самоподготовки
1. Какие элементы управления в Excel Вам известны? Каково назначение элементов управления?
2. В чем заключается основная идея использования элементов управления?
3. Опишите панель инструментов Элементы управления Форма.
4. Дайте описание для кнопок, представленных на панели Элементы управления Форма. Как добавить элемент управления на лист или форму?
5. Перечислите значения ячеек для связи для разных элементов управления.
6. В чем разница между элементов управления Список и Поле со списком?
7. В чем сходства и отличия элементов управления Полоса прокрутки и Счетчик? Какие значения может передавать в связанную ячейку элемент управления Флажок?
8. Опишите порядок создания элемента управления раскрывающегося списка.
9. Как задать количество строк списка, которое должно выводиться на экране при раскрытии списка?
10. Что произойдет, если количество элементов списка превышает указанное количество строк? Какие дополнительные опции можно установить для элементов управления?
11. Какая стандартная функция Excel используется для автоматического получения информации по значению, выбранному из списка?
ЛАБОРАТОРНАЯ РАБОТА 4
Элементы ActiveX
Элемент ActiveX – это элемент управления, служащий для выбора параметров либо для запуска макроса или скрипта, автоматизирующего выполнение задачи. Макросы для таких элементов управления можно создавать в редакторе Visual Basic для приложений, а скрипты в редакторе скриптов.
Элементы ActiveX – можно использовать на формах листа (без кода VBA или с ним), а также на пользовательских формах VBA. Их рекомендуется применять, если требуются более гибкие возможности, чем у элементов управления формы. Многочисленные свойства элементов ActiveX позволяют настраивать их внешний вид, поведение, шрифты и другие характеристики.
Можно также управлять событиями, которые происходят при взаимодействии с элементом ActiveX. Например, можно выполнять различные действия в зависимости от того, какой элемент выбирается из списка, или отправлять запрос базе данных для заполнения поля со списком элементами при нажатии кнопки. Можно также создавать макросы, которые реагируют на события, связанные с элементами ActiveX. При выборе элемента управления будет выполняться код VBA, обрабатывающий все назначенные ему события.
Не все элементы ActiveX можно использовать непосредственно на листах; некоторые из них можно применять только в пользовательских формах VBA . При попытке добавить такие элементы управления на лист приложение Excel отображает сообщение "Вставка объекта неосуществима".
В таблице 4.1 приведены элементы ActiveX и их описание.
Таблица 4.1. Обзор элементов ActiveX
Вид кнопки | Название кнопки | Пример | Описание |
Флажок | Включает или отключает значение, что соответствует выбору противоположных действий. На листе или в группе можно одновременно установить несколько флажков. | ||
Текстовое поле | Представляет собой прямоугольник, в котором можно просматривать, вводить и изменять текст или данные, связанные с ячейкой. Текстовое поле также может быть статическим и содержать данные, предназначенные только для чтения. | ||
Кнопка | Запуск макроса, который выполняет действие при нажатии кнопки. | ||
Переключатель | Позволяет выбрать одно из ограниченного набора взаимоисключающих значений. Переключатели обычно находятся в группе или рамке. Переключатель может иметь одно из трех состояний: установлен (значение включено), снят (значение отключено) и смешенное состояние, то есть сочетание состояний "включено" и "отключено" (если поддерживается выбор нескольких элементов). |
Вид кнопки | Название кнопки | Пример | Описание |
Список | Выводит список из одного или нескольких текстовых элементов, которые может выбрать пользователь. Список можно применять для представления большого числа вариантов, количество и содержимое которых может быть различным. | ||
Поле со списком | Представляет собой сочетание текстового поля и раскрывающегося списка. Поле со списком компактнее обычного списка, однако чтобы отобразить список элементов, пользователь должен щелкнуть стрелку вниз. Поле со списком следует использовать, когда требуется обеспечить возможность ввода элементов в список и выбора из него одного элемента. В этом элементе управления отображается текущее значение независимо от того, каким образом оно было введено. | ||
Выключатель | Указывает на состояние (да/нет) или режим (вкл./вкл.). При нажатии кнопки она меняет свое состояние на противоположное. | ||
Счетчик | Позволяет увеличивать и уменьшать значение, например числовое значение, время или дату. ячейку или текстовое поле. |
Вид кнопки | Название кнопки | Пример | Описание |
Полоса прокрутки | Используется для прокрутки диапазона значений с помощью кнопок со стрелками или путем перетаскивания ползунка полосы прокрутки. | ||
Подпись | Указывает назначение ячейки или текстового поля либо содержит описание (заголовки, подписи, рисунки) или краткие инструкции. | ||
Изображение | Выводит изображение, например точечный рисунок, JPEG или GIF. | ||
Рамка | Группирует связанные элементы управления в виде прямоугольника с необязательной подписью. Обычно группируются переключатели, флажки или тесно связанные данные. | ||
Другие элементы | Выводит список доступных на компьютере элементов ActiveX, которые можно добавить в настраиваемую форму |
Окно Project
Окно Project активируется выбором команды View , ProjectExplorer или одноименной пиктограммы панели инструментов. В окне Project представлена иерархическая структура файлов форм и модулей текущего проекта. В проекте автоматически создается по модулю для каждого рабочего листа и для всей книги. Кроме того, модули создаются для каждой пользовательской формы, макросов и классов. По своему предназначению модули делятся на два типа: модули объектов и стандартные. К стандартным модулям относятся те, на которых записываются макросы. Такие модули добавляются в проект с помощью команды
Insert , Module. К модулям объектов относятся модули, связанные с рабочей книгой, рабочими листами, формами и модули класса.
Удаление файла из окна проекта производится выбором значка файла с последующим выбором команды File , Remove.
Окно редактирования кода
Двойной щелчок по элементу управления откроют окно Code в VBA. Область заголовка отображает объект, которому это окно принадлежит. В верхнем левом углу области заголовка находится всплывающий список, содержащий названия всех содержавшихся объектов в пределах выбранного рабочего листа. Например, при создании процедуры обработки событий для управления объекта Кнопка, используется название Command.
Окно редактирования кода служит в качестве редактора для ввода кода процедур приложения. Код внутри модуля организован в отдельные разделы для каждого объекта, программируемого в модуле. В окне редактирования доступны два режима представления кода: просмотр отдельной процедуры и всего модуля. Переключение режимов работы окна редактирования кода осуществляется выбором одной из кнопок в нижнем левом углу окна редактирования кода, либо установкой или снятием флажка Default to Full Module View вкладки Editor диалогового окна Options, отображаемого на экране командой Tools , Options.
Два раскрывающихся списка в верхней части окна редактора облегчают ориентацию в процедурах. Левый раскрывающий список позволяет выбрать объект, а правый содержит список событий, допустимый для выбранного в левом списке объекта. Кроме того, выбор объекта и события приводит к созданию в редакторе кода первой и последней инструкции процедуры обработки события, связанного с выбранным объектом.
При написании кода редактор сам предлагает пользователю список компонентов, логически завершающих вводимую пользователем инструкцию. Двойной щелчок на выбранном элементе из этого списка или нажатие клавиши Tab вставляет выбранное имя в код программы. Автоматическое отображение списка компонентов предоставляется при установленном флажке AutoListMembers вкладки Editor диалогового окна Options. Для автоматического отображения на экране сведений о процедурах, функциях, свойствах и методах после набора их имени предназначен флажок Auto Data Tips вкладки Editor диалогового окна Options.
Синтаксис
Объект.Свойство=Значение
Метод – это специальное утверждение, которое выполняет действие или обслуживает отдельный объект в программе. В программном коде шаблон для использования метода выглядит следующим образом:
Синтаксис
Объект.Метод
Процедуры обработки событий - отдельные блоки программы, которые требуют выполнения определенного действия для их работоспособности.
Процедуры обработки событий предопределены для элементов управления ActiveX и других объектов. Все процедуры обработки событий для выбранного объекта перечислены в верхнем правом углу окна Code во всплывающем списке. Синтаксис процедуры:
[ Private ] Sub ИмяПроцедуры> (СписокПараметров)
Тело процедуры
End Sub.
Ключевое слово Private является необязательным и обозначает, что процедура работает только в модуле, в котором располагается.
Досрочный выход из тела процедуры Exit Sub.
Пример.
Private Sub cmdColorChange_Click()
Range(“A1 ”).Select
Cells.Interior.ColorIndex =Int(Rnd *56)+1
End Sub
При щелчке мышью по кнопке выполнится заливка всех ячеек листа одним из 56 цветов. Выбор цвета происходит случайным образом при каждом щелчке мыши.
При возврате в Excel командой Close and Return to Microsoft Excel из меню File и щелчке по кнопке выполнит созданную программу.
Порядок выполнения работы.
1. Изучить теоретический материал.
2. Загрузить Excel.
3. Создать элемент управления Кнопка (Панель инструментов Элементы ActivX) на рабочем листе Лист1, нажатие которой будет приводить к активизации рабочего листа Лист2.
Замечание. Можно сначала создать Макрос активизации Листа2 с помощью Макрорекордера. Затем скопировать инструкцию в процедуру обработки события Click (Нажатие кнопки). Вызов текста программы процедуры производится двойным щелчком по элементу, для которого создается процедура.
4. Создать элемент управления Кнопка на рабочем листе Лист1, нажатие которой будет приводить к заливке всех ячеек листа одним из 56 цветов. (Программа процедуры приведена в примере выше).
5. Продемонстрировать результат преподавателю.
6. Создать программу Счастливая семерка (Рисунок 4.4.), которая должна выполнять следующие действия:
End Sub
9. Создать процедуру вызова созданной формы в Excel., воспользовавшись меню Insert/Midule.
Sub вызов ()
UserForm1.Show
End Sub
10.
11. Сохранить файл с именем Счастливая семерка.
12. Продемонстрировать результат преподавателю.
13. Выйти из Excel. Завершите сеанс работы.
Вопросы для самоподготовки
1. С помощью каких средств можно создавать компоненты в непосредственно среде Excel?
2. Что такое Элемент ActiveX?
3. Чем элементы Элемент ActiveX отличаются от Элементов управления Формы?
4. Перечислите известные Вам Элементы ActiveX. Опишите их.
5. Какие существуют способы вызова интегрированной среды разработки VBA в Excel?
6. Опишите основные элементы окна VBA .
7. Для чего предназначено окно Project ? Как окно активируется? Опишите элементы этого окна.
8. Как создать модуль для пользовательской формы или макроса?
9. Как удалить файл из окна проекта?
10. Для каких целей используется окно Code ? Какие способы открытия этого окна Вам известны? Опишите это окно.
11. Какие режимы представления кода? Как они переключаются?
12. Как осуществляется выбор объектов и событий в окне кода? Какие действия необходимо произвести для автоматического отображения компонентов?
13. Каково предназначение окна Properties ? Как просмотреть свойства выбранного объекта?
14. Опишите окно Properties . Как производится настройка этого окна?
15. Для чего предназначено окно редактирования форм? Как осуществить создание формы?
16. Как установить сетку в окне формы? Какие команды используются для установки расстояния по вертикали и горизонтали между соседними узлами сетки?
17. Опишите команды меню Format , используемые при форматировании элементов формы.
18. Что такое процедура обработки событий?
19. Приведите синтаксис процедуры.
20. Как осуществить досрочный выход из процедуры?
ЛАБОРАТОРНАЯ РАБОТА 5
Создание форм
Цель работы:
1. Ознакомиться с основами программирования VBA
2. Изучить основные структурные элементы VBA
3. Выучить основные операции над данными
4. Выучить основные встроенные функции VBA и научиться их использовать
Основы программирования VBA
К основным структурным элементам программирования VBA относятся
· Типы данных
· Переменные и константы
· Процедуры ввод и вывод
Допустимые имена
В VBA пользователь определяет имена переменных, функций, процедур, типов, постоянных и других объектов. Вводимые пользователем имена должны отражать суть обозначаемого объекта так, чтобы делать программу легко читаемой. В VBA имеются следующие ограничения на имена:
1. Длина имени не должна превышать 255 символов.
2. Имя не может содержать точек, пробелов и следующих символов: %, #, @, $.
3. Имя может содержать любую комбинацию букв, цифр и символов, начинающуюся с буквы.
4. Имена должны быть уникальны внутри области, в которой они определены.
5. Не следует использовать имена, совпадающие с ключевыми словами VBA и именами встроенных функций и процедур.
Хотя верхний или нижний регистр букв в имени не имеет значения, умелое использование его может существенно облегчить понимание содержательной стороны переменной.
Типы данных
Типы данных относятся к самим фундаментальным понятиям любого языка. Тип данных определяет множество допустимых значений, которое может принимать указанная переменная. В таблице 5.1. приведены основные типы данных:
Таблица 5.1. Основные типы данных
Тип | Содержимое | Память, байт | Диапазон значений |
Byte | Целые числа | 1 | [0;255] |
Boolean | Логические значения | 2 | [True, False] |
Integer | Целые числа | 2 | [-32768;32767] |
Long | Целые числа | 4 | [-2";231-1] |
Single | Вещественные числа одинарной точности | 4 | [-2128; -2-149] и [2-149;2128-1] |
Double | Вещественные числа двойной точности | 8 | [-21024; -2-1074] и [2-|074;2|024-1] |
Currency | Денежный (целая часть-до 15 цифр, дробная -до 4 цифр) | 8 | [-263.10-4; (263-1).10-4] |
Date | Дата и время | 8 | [1.01.100;31.12.9999] |
Object | Объект | 4 | Ссылка на объект |
String | Строка постоянной длины Строка переменной длины | Длина строки 10+ длина строки | [1..65400] [0..2.109] |
Variant | Числовые подтипы Строковые подтипы | 16 22+длина строки | Любое числовое значение Как для строки String |
Переменные
Переменные в программе создаются для того, чтобы хранить какие-либо данные. Перед тем как использовать переменную, ее необходимо описать. Объявить переменную можно двумя способами: явным и неявным. Явное объявление означает, что переменная должна быть объявлена перед ее использованием. Явно переменную можно объявить одним следующих способов:
Dim ИмяПеременной1 [ As Тип1] [,ИмяПеременной2 [ As Тип2]]…
Private ИмяПеременной1 [ As Тип1] [,ИмяПеременной2 [ As Тип2]]…
Static ИмяПеременной1 [ As Тип1][,ИмяПеременной2 [ As Тип2]]…
Public ИмяПеременной1 [ As Тип1] [,ИмяПеременной2 [ As Тип2]]…
Параметр Описание
Dim , Private , Ключевые слова, определяющие, где и как можно
static , Public использовать переменную.
Имя _П еременной Имя переменной, удовлетворяющее стандартным правилам
Тип Тип данных переменной. Для каждой описываемой переменной следует использовать отдельное предложение As Тип.
Объявление каждой переменной делает программу надежнее и, кроме того, убыстряет ее работу, т. к. VBA не требуется тратить время на распознание типа неописанной переменной при каждом обращении к ней. Например, следующая инструкция объявляет переменную с типом Integer.
Dim N As Integer
Если тип данных при объявлении переменной опущен, то по умолчанию переменная получает тип Variant. Например, следующая инструкция объявляет переменную х типа Variant.
Dim x
Хотя переменные обычно объявляются в начале процедуры или функции, они могут быть объявлены в любом месте до того, как в коде встречается первая ссылка на них. Например,
Dim х As Single
х = 1
Dim y As Single
У = x + 1
Неявное объявление переменной осуществляется включением в конец ее имени специального символа, устанавливающего тип переменной. В этом случае переменную не надо объявлять перед тем, как ее использовать. В таблице 5.2. приведены описания специальных символов.
Таблица 5.2. Символы неявного объявления переменных
Специальный символ | Тип |
% | Integer |
& | Long |
! | Single |
# | Double |
@ | Currency |
$ | String |
Если переменную в программе заранее не объявлять, то создание будет происходить автоматически при первом же присвоении ей какого-либо значения. Для обязательного объявления переменных в модуле в его начале, в так называемой области модуля General Declaration надо поместить инструкцию Option Explicit . Использование этой инструкции не допускает возможности неправильного ввода имени переменной, которая используется в одной или нескольких процедурах модуля. Если установить в меню Tools команда Options вкладка Editor настройку Require Variable Declaration , то в каждый создаваемый модуль в раздел Declarations будет добавляться оператор Option Explicit.
Область видимости переменной определяет область кода, которая "знает" о существовании данной переменной. При определении переменной в процедуре получить или изменить ее значение можно только из кода этой процедуры. Можно объявить переменной с более обширной областью видимости. Существуют три типа такой области:
· Переменные уровня процедуры распознаются только в процедуре, в которой они описаны при помощи инструкций Dim или Static. Такие переменные называются локальными.
· Переменные уровня модуля используются только в модуле, в котором они описаны перед описанием процедур при помощи инструкций Dim или Private, но не в других модулях данного проекта.
· Переменные уровня модуля, описанные при помощи инструкции Public являются доступными для всех процедур проекта. Такие переменные называются открытыми.
Private переменная [As тип]
Static переменная [As тип]
Public переменная [As тип]
Ключевое слово Private описывает локальные переменные, которые используются только в процедуре, в которой были описаны. Ключевое слово Static описывает переменную тоже как локальную только лишь с той разницей, что последнее значение переменной не будет потеряно. Переменные, описанные с помощью ключевого слова Public являются глобальными.
Константы
Константы, в отличие от переменных не могут изменять своего значения. Синтаксис:
[ Public | Private ] Const ИмяКонстанты [ As Тип] = Выражение
Параметр Описание
Public Ключевое слово, используемое на уровне модуля для объявления констант, доступных всем процедурам во всех модулях. Не допускается в процедурах.
Private Ключевое слово, используемое на уровне модуля для объявления констант, доступных только внутри модуля, в котором віполнено описание. Не допускается в процедурах.
Имя Константы Имя константы, удовлетворяющее стандартным правилам
Тип Один из поддерживаемых типов. Для каждой константы следует использовать отдельное предложение As Тип.
Выражение Литерал, другая константа или любое сочетание, которое включает все арифметические или логические операторы, за исключением Is.
Пример .
Private Const ПроцСтавка As Single = 0.2
Public Const Фирма = "Транспортное агентство: Керчь"
Операции над данными
В программах VBA можно использовать стандартный набор операций над данными. Имеются три типа операций:
· Математические, выполняются над числами и их результатом являются числа;
· Отношения, применяются не только к числам, но и к их результатам и их результатом являются логические значения;
· Логические, применяются логическими выражениями и их результатом являются логические значения
В таблице 5.3. приведены операторы, используемые при различных типах операций.
Таблица 5.3. Виды операторов
Операция | Оператор |
Математические операторы
Операторы отношений
Логические операторы
Другие операторы
VBA выполняет операции в соответствии с их приоритетами, что обеспечивает однозначность в трактовании значений выражений. В таблице 5.4. приведены приоритеты выполнения операций.
Таблица 5.4. Приоритеты операций.
Приоритет | Операция |
1. | Вызов функции в скобке |
2. | ^ |
3. | – (смена знака) |
4. | * и / |
5. | \ (деление на целое) |
6. | Mod (остаток от деления на целое) |
7. | + и – |
8. | >, <, <=, >=, = и <> |
9. | Not |
10. | And |
11. | Or |
Встроенные функции VBA
В VBA имеется большой набор встроенных функций и процедур, использование которых существенно упрощает программирование. Эти функции можно разделить на следующие основные категории:
· математические функции;
· функции проверки типов;
· функции преобразования форматов;
· функции обработки строк;
· функции времени и даты;
· финансовые функции.
В таблице 5.5. рассмотрены основные математические функции.
Таблица 5.5. Математические функции
Функция | Возвращаемое значение |
Abs(x) | Модуль (абсолютная величина) числа |
Atn(x) | Арктангенс |
Cos(x) | Косинус |
Exp(x) | Экспонента, т. е. результат возведения основания натурального логарифма в указанную степень |
Log(x) | Натуральный логарифм |
Rnd(x) | Случайное число из интервала [0,1]. Если x меньше нуля, то Rnd возвращает каждый раз одно и то же число. Если x больше нуля или опущено, то Rnd возвращает следующее случайное число в последовательности. Если x равняется нулю, то Rnd возвращает случайное число, возвращенное при предыдущем вызове этой функции. Перед вызовом функции Rnd используется инструкция Randomize. |
Sgn(x) | Знак числа |
Sin(x) | Синус |
Sqr(x) | Квадратный корень из числа |
Tan(x) | Тангенс |
Int(x) | Обе функции Int и Fix отбрасывают дробную часть числа и возвращают целое значение. Различие между функциями I nt и Fix состоит в том, что для отрицательного значения параметра x функция I nt возвращает ближайшее отрицательное целое число, меньшее либо равное указанному, a Fix — ближайшее отрицательное целое число, большее либо равное указанному. |
Fix(x) |
Порядок выполнения работы.
1. Изучить теоретический материал.
2. Загрузить Excel.
3. Создать форму, с помощью которой можно производить четыре арифметических действия над числами. Для этого необходимо выполнить следующие действия:
· Создать соответствующие элементы управления:
· четыре Метки – переменная 1, переменная 2, результат, окно результата (Label);
· два текстовых поля (TextBox);
· Рамку с четырьмя Переключателями (Frame, OptionButton);
· Три кнопки – Вычислить, Очистить, Выход (CommandButton)/
·
· В процедуре, вызываемая кнопкой Вычислить, объявить переменные инструкцией Dim, присвоить им значения из соответствующих текстовых полей, предварительно преобразованные из текстовых значений в числовые (функция val). Предусмотреть вычисления при ненулевых значениях переменных с использованием инструкции IF … Then. Вывод результата организовать с помощью Свойства Caption Метки4 (label 4).
· Дополнить ниже приведенную программу для двух оставшихся действий (вычитания и умножения).
Private Sub CommandButton1_Click()
Dim first, second
Label5.Visible = False
first = Val(Text1.Text)
second = Val(Text2.Text)
If first <> 0 And second <> 0 Then
If OptionButton1.Value = True Then
Label4.Caption = first + second
End If
‘ добавить инструкции для вычитания, умножения и деления
If OptionButton4.Value = True Then
Label4.Caption = Format(first / second, "######.00")
End If
Else
Label5.Visible = True
End If
End Sub
· Ввести инструкции для процедуры, вызываемой кнопкой Очистить.
Private Sub CommandButton3_Click()
Text1.Text = ""
Text2.Text = ""
Label4.Caption = ""
End Sub
· Сохранить файл под именем Арифметические операции.
· Продемонстрировать результат преподавателю. Завершить сеанс с Excel.
Вопросы для самоподготовки
1. Перечислите основные элементы программирования VBA.
2. Какие ограничения накладываются на имена переменных, процедур, функций, используемых в программе?
3. Приведите основные типы данных, дайте их характеристики.
4. Для чего используются переменные в программе?
5. Как можно описать переменные в программе?
6. Какая инструкция используется для обязательного объявления переменных?
7. Приведите пример объявления переменных?
8. Что такое область видимости переменной?
9. Какие типы области видимости существуют в VBA?
10. Как задаются области видимости для переменных?
11. В чем отличие переменных от констант?
12. Приведите синтаксис описания констант в VBA.
13. Какой стандартный набор операций над данными используется в VBA?
14. Перечислите виды операторов.
15. Каковы приоритеты выполнения операций?
16. На какие категории можно разделить встроенные функции VBA?
17. Приведите основные стандартные математические функции VBA.
ЛАБОРАТОРНАЯ РАБОТА 6
Процедуры и функции
Цель работы:
1. Изучить основные операторы VBA .
2. Научиться использовать процедуры и функции VBA .
Операторы
Рекомендации при написании программы
Перенос строк.
Для переноса строки в программе используется <Пробел> +<Знак подчеркивания>. При этом надо помнить, что
· нельзя разбивать переносом строковые константы;
· допустимо не более семи продолжений одной и той же строки;
· сама строка не может состоять более чем из 1024 символов.
Комментарии
Текст, следующий в программе за символом (') вплоть до конца строки, игнорируется компилятором и представляет собой комментарий. Комментарии позволяют добавлять описания и пояснения к строкам программы. Они полезны и при отладке программ, т.к. позволяют временно отключать строки кода программы при ее отладки.
Оператор присвоения
Оператор присвоения присваивает значение выражения переменной константе или свойству объекта. Оператор присвоения всегда включает знак равенства (=).
Синтаксис:
[Let]Переменная (или Постоянная или Свойство Объекта)= Выражение
Инструкция Let необязательна и чаще всего опускается. Оператор присвоения предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, имя которой указано в левой части. В результате, например, действия следующей пары операторов
х = 2
х = х + 2
переменной х будет присвоено 4.
Для присвоения переменной ссылки на объект применяется инструкция Set . В следующем примере инструкция Set присваивает объектной переменной Кнопка элемент управления Кнопка с именем CommandButton1.
Set Кнопка = CommandButton 1
В общем случае инструкция Set имеет следующий синтаксис.
Set объектнаяПеременная = {[ New ] объектноеВыражение | Nothing )
Где ключевое слово N ew используется при создании нового экземпляра класса, а ключевое слово Nothing позволяет освободить все системные ресурсы и ресурсы памяти, выделенные для объекта, на который имелась ссылка (удаляет объект из памяти).
Оператор With
Оператор With позволяет избежать использования большого количества повторений имени одного и того же объекта при работе со свойствами и методами. Кроме того, он структурирует код программы.
Пример.
With Range (“ A 1”)
.Value = 3
. Font . Italic = True
End With
Допустимо использование вложенных операторов With .
Пример.
With Range (“A1”)
.Value = 3
With .Font
.Italic = True
.Size = 12
.Bold = True
.Color = RGB(255,30,255)
End With
End With
Операторы управления
В VBA имеется несколько операторов управления ходом выполнения программы. Функционально они делятся на две группы операторов:
· Перехода и выбора (Goto, If – Then – Else, Select)
· Повтора (For – next, For Each, Do – Loop, While – Wend)
Оператор условного перехода
Оператор условного перехода задает выполнение определенных групп инструкций в зависимости от значения выражения.
Синтаксис.
If Условие Then [Инструкция] [ Else Инструкция_ else ]
Если Условие принимает значение True, то выполняется Инструкция, если False, то Инструкция_ else. Ветвь является необязательной.
Пример.
If Сумма>1000 Then Скидка=0.5 Else Скидка=0.5
If Сумма>1000 Then Скидка=0.5
Допускается использование блочной формы оператора условного перехода.
Синтаксис.
If Условие Then
[Инструкция]
[ Else
[Инструкция_ else ]]
End IF
При сложном условии используется оператор If – Then – ElseIf , который позволяет проверять множественные условия.
Синтаксис.
If Условие1 Then
[Инструкция1]
[ Elseif Условие2
[Инструкция2]…
[ Else
[Инструкция_ else ]]
End IF]
Пример. Определение, какому интервалу принадлежит вводимое число.
x = InputBox (“ Введите число ”)
If 0<=x And x<=1 Then
MsgBox “Число из интервала от 0 до 1”
Elseif 1<x<=2 Then
MsgBox “Число из интервала от 1 до 2”
Else
MsgBox “Число отрицательное, либо больше 2”
End if
Оператор выбора
Оператор выбора выполняет одну из нескольких групп инструкции, в зависимости от значения выражения.
Синтаксис.
Select Case Выражение
[ Case СписокВыражений-1
[Инструкции-1]]
…
[ Case СписокВыражений- n
[Инструкции- n ]]
[ Case Else
[ Инструкции _Else] ]
End Select
· СписокВыражений — это список с разделителями, состоящий из одной или нескольких форм следующего вида: Выражение, Выражение То Выражение, -Is ОператорСравнения Выражение, где Выражение — это любое числовое или строковое выражение. Ключевое слово То задает диапазон значений. При использовании ключевого слова То перед ним должно находиться меньшее значение. Ключевое слово Is с операторами сравнения задает диапазон значений. Если ключевое слово Is не указано, оно вставляется по умолчанию.
· Инструкции — это одна или несколько инструкций, выполняемых в том случае, если выражение совпадает с любым компонентом списка от СписокВыражений-1 ДО СписокВыражений-n
· Инструкции_Else — одна или несколько инструкций, выполняемых в том случае, если выражение не совпадает ни с одним из предложений Case.
Оператор выбора очень эффективен, когда надо проверить одну переменную, принимающую несколько значений. В следующем примере в зависимости от величины введенного числа отображается сообщение, указывающее на величину числа или диапазон, которому оно принадлежит.
Пример. Использования оператора выбора Select Case
Число = InputBox ("Введите целое число")
Select Case Число
Case 1
MsgBox " Число равно 1"
Case 2,3
MsgBox "Число равно 2 или 3"
Case 4 То 6
MsgBox "Число от 4 до 6"
Case Is >= 7
MsgBox "Число не менее 7"
End Select
Оператор For – Next
Оператор For – Next повторяет выполнение группы инструкции, указанное число раз. Число повторений определяется от Начало до Конца с указанным Шагом. Если Шаг не указан, то он полагается равным 1. Досрочный выход из цикла осуществляется оператором Exit Next
Синтаксис.
For Счетчик = Начало То Конец [Step Шаг]
[Инструкции]
[Exit For]
[Инструкции]
Next [Счетчик]
Задание 1. Вычисление n факториала
Sub Factor ()
N=20
Fact=1
For i=1 To n
Fact = Fact * i
Next i
MsgBox Format (Fact,"############")
End Sub
Задание 2. Суммирование элементов выделенного диапазона
With Selection
n = .Rows.Count
m = .Columns.Count
End With
S = 0
For i = 1 to n
For j = 1 to m
s = s +Selection.Cells(i,j).Value
Next j
Next i
With Selection. End(xlDown)
.Offset(1,0).Value = “ Сумма ”
.Offset(1,1).Value = s
End With
Оператор For – Each
Оператор For Each повторяет выполнение группы инструкций для каждого элемента массива или семейства.
Синтаксис:
For Each Элемент In Группа
[Инструкции]
[ Exit For ]
[Инструкции]
Next [Элемент]
Альтернативный способ выхода из цикла предоставляет инструкция Exit For. В данном примере при помощи оператора цикла For Each находится сумма элементов массива.
Пример
Dim A As Variant
A = Array(1, 4, 12, 23, 34, 3, 23)
s = 0
For Each b In A
s = s + b
Next b
Пример. Суммирование значений из выделенного диапазона:
s = О
Next с
MsgBox s
В следующем примере цикл For Each используется для работы с семейством ячеек. В нем все ячейки диапазона А1:С4 с положительными значениями окрашиваются в в синий цвет, а с неположительными — в красный.
Пример .
For Each Ячейка In Range ("Al :C4") .Cells
With Ячейка
If .Value <= 0 Then
.Interior.Colorlndex = 3
Else
Interior.Colorlndex = 5
End If
End With
Next Ячейка
Оператор While— Wend
Оператор W hile - W end выполняет последовательность инструкций, пока данное условие имеет значение True.
Синтаксис:
While Условие
[Инструкции]
Wend
Оператор повтора W hile - W end в отличие от For - Next работает не заданное число раз, а пока выполняется условие. В следующем примере бросается игральная кость до тех пор, пока не выпадет шесть очков. При выпадении шести очков игра заканчивается, и отображается сообщение с указанием, на каком броске она закончилась.
Пример.
Dim Бросок As Integer
D im Очки As Integer
RandomiZe
Очки = Int (6* Rnd ())+1
Бросок = 1
Whi le Очки < 6
Бросок = Бросок + 1
Очки = Int (6* Rnd ())+1
Wend
MsBox ”Победили на броске ” & Бросок
Оператор Do — Loop
Оператор Do - Loop повторяет выполнение набора инструкций, пока условие имеет значение True (случай while) или пока оно не примет значение True (случай Until).
Синтаксис:
Do [{ While | Until } Условие]
[Инструкции]
[ Exit Do ]
[Инструкции]
Loop
Или
Do
[Инструкции]
[ Exit Do ]
[Инструкции]
Loop [{While | Until] Условие]
В любом месте управляющей структуры Do - Loop может быть размещено любое число инструкций Exit Do, обеспечивающих альтернативные возможности выхода из цикла Do - Loop.
Пример. Конструкция, обеспечивающая повторение цикла до тех пор, пока в поле ввода диалогового окна не будет введен пароль.
" ■ • ■ -
Do
Пароль = InputBox ("Введите пароль")
Loop Until Пароль = "Привет"
Пример . Суммирование всех вводимых чисел
s = О
Do
х = InputBox("Введите число")
If Not IsNumeric(x) Then Exit Do
s = s + x
Loop
GoTo Строка
Для использования оператора безусловного перехода надо какой-то строке присвоить метку. Метка должна начинаться с буквы и заканчиваться двоеточием.
Процедуры ввод и вывод
В проектах VBA для вода / вывода используются две разновидности диалоговых окон: окна сообщений и окна ввода. Они встроены в VBA и если их возможностей достаточно, то можно обойтись без проектирования диалоговых окон. Окно сообщений (MsgBox ) выводит простейшие сообщения для пользователя, окно ввода (Inputbox ) обеспечивает ввод информации.
Функция Описание
I nputbox Выводит на экран диалоговое окно, содержащее сообщение и поле ввода, две кнопки ОК и Cancel. Устанавливает режим ожидания ввода текста пользователем и нажатия кнопки, а затем возвращает значение типа String по нажатию на кнопку ОК, содержащее текст, введенный в поле ввода. При нажатии кнопки Cancel возвращает пустую строку ( Empty ).
Синтаксис:
Inputbox ( Prompt [, Title ][, Default ][, xPos ][, yPos ] [, Helpfile , Context ])
· Prompt –строковое выражение, отображаемое как сообщение в диалоговом окне. Строковое выражение Prompt может содержать несколько строк.;
· Title — строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот параметр опущен, то в строку заголовка помещается имя приложения;
· Default — строковое выражение, отображаемое в поле ввода как используемое по умолчанию, если пользователь не введет другую строку. Если этот параметр опущен, то поле ввода изображается пустым;
· xPos — числовое выражение, задающее расстояние по горизонтали между левой границей диалогового окна и левым краем экрана. Если этот параметр опущен, то диалоговое окно выравнивается по центру экрана по горизонтали;
· yPos — числовое выражение, задающее расстояние по вертикали между верхней границей диалогового окна и верхним краем экрана. Если этот параметр опущен, то диалоговое окно помещается по вертикали примерно на одну треть высоты экрана;
· Helpfile — строковое выражение, определяющее имя файла справки, содержащего справочные сведения о данном диалоговом окне. Если этот параметр указан, то необходимо указать также параметр Contex t;
· Context — числовое выражение, определяющее номер соответствующего раздела справочной системы. Если этот параметр указан, то необходимо указать также параметр Helpfile .
MsgBox Выводит на экран диалоговое окно, содержащее сообщение, устанавливает режим ожидания нажатия кнопки пользователем, и возвращает значение типа Integer, указывающее, какая кнопка была нажата.
Синтаксис:
MsgBox(Prompt[,Buttons][,Title][,Helpfile,Context])
· Prompt — строковое выражение, отображаемое как сообщение в диалоговом окне;
· Buttons — числовое выражение, представляющее сумму значений, которые указывают число и тип отображаемых кнопок, тип используемого значка, основную кнопку и модальность окна сообщения. Значение по умолчанию этого параметра равняется 0;Значения констант, определяющих число, тип кнопок и использования значка приведены в таблицах 6.1 –6.3.
· Title — строковое выражение, отображаемое в строке заголовка Диалогового окна. Если этот параметр опущен, то в строку заголовка помещается имя приложения;
· Helpfile — строковое выражение, определяющее имя файла справки, содержащего справочные сведения о данном диалоговом окне. Если этот параметр указан, то необходимо указать также параметр Contex t;
· Context — числовое выражение, определяющее номер соответствующего раздела справочной системы. Если этот параметр указан, то необходимо указать также параметр Helpfile .
Таблица 6.1. Значения параметров Buttons п роцедуры MsgBox ,
определяющие отображаемые кнопки в диалоговом окне.
Константа | Значение | Отображаемы кнопки |
VbOKOnly | 0 | OK |
VbOKCancel | 1 | OK, Отмена |
VbAbortRetryIgnore | 2 | Стоп, Повтор, Пропустить |
VbYesNoCancel | 3 | Да, Нет, Отмена |
VbYesNo | 4 | Да, Нет |
VbRetryCancel | 5 | Повтор, Отмена |
Таблица 6.2. Значения параметров Buttons п роцедуры MsgBox ,
определяющие отображаемые информационные значки
в диалоговом окне.
Константа | Значение | Значок сообщения |
VbCritical | 16 | |
VbQuestion | 32 | |
VbExclamation | 48 | |
VbInformation | 64 |
Таблица 6.3. Значения параметров Buttons п роцедуры MsgBox ,
определяющие основную кнопку в диалоговом окне.
Константа | Значение | Номер основной кнопки |
VbDefaultButton1 | 0 | 1 |
VbDefaultButton2 | 256 | 2 |
VbDefaultButton3 | 512 | 3 |
VbDefaultButton4 | 768 | 4 |
При написании программ с откликом в зависимости от того, какая кнопка диалогового окна нажата, вместо возвращаемых значений удобнее использовать константы, приведенные в таблице 6.4.
Таблица 6.4. Значения параметров Buttons п роцедуры MsgBox ,
определяющие возвращаемые значения на нажатие кнопки
Константа | Значение | Нажатая кнопка |
VbOK | 1 | ОК |
VbCancel | 2 | Отмена |
VbAbort | 3 | Прервать |
VbRetry | 4 | Повторить |
VbIgnore | 5 | Пропустить |
VbYes | 6 | Да |
VbNo | 7 | Нет |
Задание 3.
Введите программу и разберитесь в ее работе.
Sub Знакомство ()
Dim Имя As String
Имя = InputBox ("Введите Ваше имя", "Знакомство")
If Имя <> "" Then
MsgBox "Здравствуй, " & Имя, vbInformation , "Пример окна_ сообщений"
Else
MsgBox "Вы забыли ввести свое имя? " & Имя,_ vbExclamation , "Другой пример окна сообщений"
End If
End Sub
Порядок выполнения работы.
1. Изучить теоретический материал.
2. Загрузить Excel.
3. Выполнить задания, рассматриваемые в теоретическом разделе.
4. Создать форму для ввода, накопления данных и вычисления среднего арифметического положительных элементов ряда. Предусмотреть вывод формы с помощью комбинации клавиш и кнопки панели инструментов, сохраненной на листе Excel. Внешний вид формы для ввода данных и расчета среднего арифметического значения элементов ряда (Рисунок 6.1-6.2)).
5. Создать процедуры для обработки событий, вызываемых 3-мя кнопками: Сохранить значения, Вычислить результат, Выход.
6. Ввести программы.
7. Сохранить созданный проект. Сделать копию сохраненного файла.
8. Выполнить индивидуальное задание в соответствии с вариантом.
9. Продемонстрировать результат преподавателю
10. Завершить работу с Excel. Выйти из системы.
Текст программы
Option Explicit 'директива обязательного объявления переменных
Dim i As Integer 'задания типа переменных
Dim d, s, k, sr As Single
'процедура ввода значений и оформление ввода данных
Private Sub CommandButton1_Click() 'начало процедуры для первой кнопки
Cells(1, 1) = "Исходные данные" 'присвоение ячейке А1 текстового значения
Columns("A:A").AutoFit 'автоподбор ширины столбца А
Cells(1, 1).Select 'выделение ячейки А1
Selection.Interior.ColorIndex = 2 'изменение цвета выделенной ячейки
Selection.Borders.LineStyle = xlDouble 'создание границ ячейки
With Selection.Font 'задание форматов шрифта
.Size = 10 'размера
.FontStyle = "Bold" 'начертания
.ColorIndex = 5 'цвета
End With
i = 2 'присвоить переменной i значение 2
Do While Cells(i, 1) <> "" 'оператор цикла Do...Loop, работающий
i = i + 1 'пока условие проверки содержимого ячейки
Loop 'не равно пустому будет истинно
d = TextBox1 'переменной d присваивается значение поля
'TextBox1
Cells(i, 1) = d 'ячейке 1 столбца i-й строки присваивается
'значение переменной d
With Cells(i, 1).Font 'задание форматов шрифта
.Size = 10 'размера
.FontStyle = " Bold Italic" 'начертания
.ColorIndex = 1 'цвета
End With
Cells(i, 1).HorizontalAlignment = xlCenter 'форматирование содержимого по ‘центру горизонтали
Cells(i, 1).Borders.LineStyle = xlDouble 'создание границ ячеек
TextBox1 = "" 'обнуление поля TextBox1
End Sub 'конец процедуры первой кнопки
'процедура ввода значений и оформление вывода результата
Private Sub CommandButton2_Click() 'начало процедуры второй кнопки
s = 0 'обнулить переменную s для вычисления суммы
k = 0 'обнулить переменную k для вычисления количества
i = 2 'присвоить переменной i значение 2
Do While Cells(i, 1) <> "" 'начало цикла
If Cells(i, 1) > 0 Then ' условие проверки члена ряда на положительность
s = s + Cells(i, 1) 'вычислить сумму положительных чисел
k = k + 1 'вычислить количество положительных чисел
End If 'конец проверки условия
i = i + 1 'счетчик, изменяющий локальную переменную
Loop 'конец цикла
If k <> 0 Then
Label3 = Format(s / k, "####.00")
Else
Label3 = "Положительных элементов нет"
End If
End Sub 'конец процедуры второй кнопки
'Процедура окончания работы
Private Sub CommandButton3_Click() 'начало процедуры третьей кнопки
End 'оператор окончания работы
End Sub 'конец процедуры третьей кнопки формы
Рисунок 6.2
Варианты заданий.
№ вар. | Задание |
1. | Найти максимальное значение элемента ряда его номер |
2. | Найти минимальное значение элемента ряда и его номер |
3. | Найти сумму отрицательных элементов ряда |
4. | Найти сумму положительніх элементов ряда |
5. | Найти произведение положительных элементов ряда |
6. | Найти произведение отрицательных элементов ряда |
7. | Найти длину вектора, представленного рядом чисел |
8. | Найти сумму элементов ряда с нечетными номерами |
9. | Найти сумму элементов ряда с четными номерами |
10. | Найти максимальное и минимальное значения элемента ряда |
11. | Найти произведение четных элементов ряда |
12. | Найти произведение нечетных элементов ряда |
Вопросы для самоподготовки
1. Перечислите рекомендации при написании программы в VBA.
2. Приведите синтаксис оператора присваивания.
3. Для чего предназначен оператор присваивания?
4. Как можно присвоить переменной ссылку на объект?
5. Приведите синтаксис инструкции Set .
6. Для чего предназначен оператор With?
7. Приведите пример конструкции, в которой используется оператор With.
8. Какие операторы управления Вам известны?
9. Приведите суть предназначения оператора условного перехода.
10. Дайте синтаксис возможных конструкций оператора условного перехода.
11. Для чего предназначен оператор выбора?
12. Приведите синтаксис оператора выбора.
13. Какой оператор используется для организации цикла с известным числом повторений?
14. Приведите синтаксис оператора цикла.
15. Как осуществить досрочный выход из цикла?
16. В чем различие между операторами For – Next и For – Each?
17. Приведите синтаксис оператора For – Each.
18. С помощью каких операторов можно организовать цикл с неизвестным числом повторений?
19. Приведите синтаксис операторов цикл с неизвестным числом повторений.
20. В чем различие операторов цикла?
21. Какие операторы используются для цикла с с предусловием и постусловием?
22. Для чего предназначен оператор безусловного перехода?
23. Приведите синтаксис оператора безусловного перехода.
24. Как организовать процедуру ввода с помощью диалогового окна VBA?
25. Приведите описание процедуры Inputbox.Какой параметр является обязательным при использовании этой процедуры?
26. Как организовать процедуру вывода с помощью диалогового окна VBA?
27. риведите описание процедуры MsgBox.Какой параметр является обязательным при использовании этой процедуры?
ЛАБОРАТОРНАЯ РАБОТА 7
Массивы данных
Цель работы:
1. Освоить работу с массивами данных в VBA.
Массивы данных
Большинство задач, требующих выполнения операций над массивами, без программирования не решить. К ним относятся такие задачи, как транспонирование матрицы, нахождение ее следа, обращение матрицы, умножение матриц и многие подобные. Для решения некоторых из них, например, задачи транспонирования матрицы, имеются стандартные функции Excel.
Пример .
Dim B(3,3) As Single
Dim A (12) As Integer
В VBA существует тесная связь между диапазонами и массивами. Допустимо как заполнение массива значениями из ячеек диапазона, так и заполнение диапазона ячеек элементами массива одним оператором присвоения. При этом массив должен быть объявлен как переменная типа Variant .
Задание 1 .
Option Base 1
Public A As Variant
Sub Массив ()
A = Selection.Value
n = Selection.Rows.Count
m = Selection.Columns.Count
End Sub
Sub Диапазон ()
Массив
For i = 1 To n
For j = 1 To m
s = s + A(i, j)
Next j
End Sub
Удобным способом задания одномерных массивов является функция
Array. Она преобразует список элементов, разделенных запятыми, в вектор из этих значений, и присваивает их переменной типа Variant.
Пример.
Sub МассивArray()
Dim Число As Variant
Число = Array (10,20)
Сумму = Число(0) + Число(1)
MsgBox Сумму
End Sub
Отобразится 30
Объект Range (диапазон)
Ячейка рабочего листа не является объектом Excel. К отдельной ячейке рабочего листа можно получить доступ через объект Range, который представляет собой совокупность ячеек. Объект Range может представлять как единственную ячейку таблицы, так и строку или столбец, некоторую прямоугольную область, а также объединение подобных несмежных элементов.
Адресация ячеек может выполняться либо в формате А1, либо в формате R1C1.
Dim MyRange As Range
Set MyRange = Range(”C1:C4”)
MyRange.Range(”A1”) = 7
MyRange.Range(”A2”) = ”=A1+2”
MyRange.Range(”A3:A4”) = ”=A1+A2”
Первая инструкция объявляет имя MyRange как имя диапазона. Вторая инструкция создает объект MyRange, заданный диапазоном C1:C4. Третья инструкция задает ячейку C1 в абсолютных адресах. В инструкциях присвоения (четвертая и пятая строки) ссылки слева от знака равенства делаются относительно объекта MyRange, а ссылки справа от знака равенства привязаны к абсолютным адресам.
Dim MyRange As Range
Set MyRange = Range(”C1:C4”)
MyRange.Range(”A1”) = 7
MyRange.Range(”A2”) = ”=R1C1+2”
MyRange.Range(”A3:A4”) = ”=R[-2]+R[-1]”
В этом примере следует обратить внимание на следующие два обстоятельства:
1) при вызове диапазона его параметры можно задавать только в формате A1. Поэтому в левой части инструкций сохранена адресация в формате A1;
2) если в формуле вычисления связаны с одной и той же строкой или одним и тем же столбцом, то можно применять ссылку, используя один индекс. В данном примере в последней строке задано смещение по строкам, поскольку столбец остается неизменным и его можно не указывать.
Для перехода к новому диапазону, смещенному относительно текущего можно использовать метод Offset, который возвращает новый объект Range, отстоящий от прежнего на заданное расстояние. Этот метод имеет два параметра: смещение по строкам и смещение по столбцам.
Пример создания нового диапазона, смещенного относительно исходного:
Формулы с массивами
Можно размещать как одномерные массивы (векторы) так и двумерные массивы (матрицы) на рабочем листе. При желании массиву можно дать имя, используя свойство Name объекта Range. Например, имя массиву можно дать из меню Вставка.
Excel допускает, чтобы аргументами формулы были массивы, а также допускает, чтобы результатом функции был массив. Такие формулы обычно называют формулами с массивами.
Если результатом такой формулы является одно значение (скаляр), то формула с массивами вводится в ту ячейку, где должен появиться результат вычислений. Ввод формулы с массивами в отличие от ввода обычной формулы завершается нажатием не на одну клавишу Enter, а нажатием комбинации клавиш Ctrl+Shift+Enter. Такое завершение ввода формулы отобразится в поле ввода функции заключением формулы в фигурные скобки. Эти фигурные скобки нельзя задавать самим с целью придания формуле статуса формулы с массивами.
Если результатом формулы является массив, то его предварительно следует выделить, а уже затем ввести формулу. Она как бы вводится в каждую ячейку выделенного массива.
Если не применяется программирование, то ориентация массивов-аргументов и массива-результата должна быть одинаковой, а также размерности массивов должны быть одинаковыми.
Например, вектор, равный сумме двух векторов, может быть получен с помощью формулы {= C5:C10+E11:E16} или с помощью формулы {= A+B}, если предварительно дать имена A и B исходным массивам. Обратите внимание еще раз: фигурные скобки в формулу Excel вставляет как реакцию на нажатие комбинации клавиш Ctrl+Shift+Enter.
Порядок выполнения работы.
1. Изучить теоретический материал.
2. Загрузить Excel.
3. Выполнить задания, рассматриваемые в теоретическом разделе.
4. Продемонстрировать результат преподавателю.
5. Выполнить задание следующего содержания.
End If
Next
Next
1 2 : FunPr1 = kol
End Function
Обратить внимание: при объявлении аргументов функции Fun Pr 1 в качестве массива выступает диапазон, поэтому при объявлении соответствующего аргумента (X) он объявляется не как имя массива, а имеет тип Variant.
В строке 2 значение выражения X.Rows.Count равно числу строк диапазона X. Значение выражения X.Columns.Count в строке 3 равно числу столбцов диапазона X.
3. Cвернуть окно редактора Visual Basic. В открывшемся окне Microsoft Excel Массивы.xls протестировать созданную функцию
4. Продемонстрируйте результат преподавателю.
5. Выполнить задание следующего содержания:
Dim R() As Variant
3 n= X.Rows.Count
4 m= X.Columns.Count
Else
11: R(i, j) = X(i, j)
End If
Next
Next
15: FunPr2 = R
End Function
Смысл инструкций программы функции Fun Pr 2 достаточно прозрачен и не требует дополнительного комментария. Следует лишь обратить внимание на строку 15, в которой функция принимает значение не скаляра, а массива.
8. Свернуть окно редактора Visual Basic.
9. Провести тестирование
10. Продемонстрировать преподавателю результаты выполненной работы.
11. Выполнить индивидуальное задание в соответствии с номером своего
варианта.
Варианты индивидуальных заданий
№ вар. | Функция |
1. | По заданной прямоугольной матрице получает новую, являющуюся результатом поворота исходной матрицы на 90 градусов; |
2. | Находит скалярное произведение двух векторов C = ∑ Ai * Bi; |
3. | Находит матрицу, равную сумме двух матриц Ci j = Ai j+ Bi j; |
4. | Находит матрицу – произведение двух матриц Ci j = Ai j * Bi j; |
5. | По заданному одномерному массиву получает новый, отличающийся от исходного тем, что значения отрицательные элементов заменены заданной величиной; |
6. | Вычисляет число инверсий в порядке возрастания значений элементов вектора. Инверсия порядка возрастания – это когда два соседних элемента вектора расположены в порядке убывания; |
7. | Вычисляет число инверсий в порядке убывания значений элементов вектора. Инверсия порядка убывания – это когда два соседних элемента вектора расположены в порядке возрастания; |
8. | Проверяет, все ли элементы одномерного массива имеют значение больше заданной величины; |
9. | Проверяет, есть ли хотя бы один элемент одномерного массива, имеющий значение, меньше заданной величины; |
10. | Определяет для двух целочисленных одномерных массивов количество элементов первого массива, значение которых равно значению хотя бы одного элемента второго массива; |
11. | Вычисляет количество элементов одномерного массива, значение которых больше заданной величины h1, но в тоже время меньше заданной величины h2; |
12. | Проверяет, действительно ли количество положительных элементов одномерного массива больше количества его отрицательных элементов; |
13. | Вычисляет сумму элементов одномерного массива; |
14. | Вычисляет произведение элементов одномерного массива; |
15. | Вычисляет среднее арифметическое значение одномерного массива; |
16. | Вычисляет минимальный элемент одномерного массива; |
17. | Вычисляет максимальный элемент одномерного массива; |
18. | Вычисляет число элементов вектора, предшествующих его первому отрицательному элементу; |
Вопросы для самоподготовки
1. Дайте понятие массива данных.
2. Как задаются элементы массива? Приведите примеры массивов.
3. Как можно объявить массив?
4. Какой тип переменных должен быть задан для элементов массива при работе с ячейками таблицы?
5. Как можно задать одномерный массив?
6. Опишите объект Range.
7. Какие виды форматов могут использоваться при адресации ячеек? Опишите эти форматы.
8. Для каких целей используется метод Offset ?
9. Как создать функцию с использованием команды главного меню VBA?
10. Какое свойство используется для подсчета элементов семейства?
ЛИТЕРАТУРА
1. Гарнаев А.Ю. Microsoft Excel 2002: Разработка приложений /А.Ю.Гарнаев. – СПб.: БХВ-Петербург, 2003. – 768с.
2. Гарнаев А.Ю. Microsoft Excel 2000: Разработка приложений /А.Ю.Гарнаев. – СПб.: БХВ-Петербург, 2000 – 576с.
3. Кнут Дональд Э. Искусство программирования. Основные алгоритмы: пер. с англ. / Дональд Э.Кнут. – М. : Издательский дом «Вильямс», 2000. – 720с.
4. Хальворсон Микаэл. Microsoft Visual Basic 6.0 для профессионалов. Шаг за шагом. Практ.пособие: пер. с англ. / Микаэл Хальворсон. – М.: Изд-во ЭКОМ, 2000.–720с.
5. Глушков С.В. Программирование в среде Windows: учебный курс / С.В.Глушков, В.В. Мельников, Сурядный А.С. – М.:Изд-во АСТ, 2000. – 487с.
6. Матросов А.В. MS Office XP: разработка приложений / А.В. Матросов – СПб.: БХВ , 2003. – 944с.
© Чубина Т.В.
СОДЕРЖАНИЕ
Введение 4
Тематический план лабораторных работ 5
Лабораторная работа 1. Инструментальная среда разработки Visual Basic Application (VBA). Макрорекордер.. 6
Лабораторная работа 2. Функция пользователя 14
Лабораторная работа 3. Работа с элементами управления на рабочем листе 19
Лабораторная работа 4. Интерфейс Visual Basic for Application 30
Лабораторная работа 5. Создание форм 44
Лабораторная работа 6. Процедуры и функции 52
Лабораторная работа 7. Массивы данных 69
Литература 77
ВВЕДЕНИЕ
Данные методические указания предназначены для проведения лабораторных работ со студентами 1 курса дневной и заочной форм обучения по дисциплине «Информатика», входящей в состав общих математических естественно-научных дисциплин по направлению 6.050502 "Машиностроение" специальности «Оборудование перерабатывающих и пищевых производств».
В методических указаниях приведены 7 лабораторных работ, которые были разработаны и апробированы в течение нескольких лет на кафедре информатики и прикладной математики. Все лабораторные работы объединены единым подходом, основанным на моделировании типовых процессов при выполнении задач вычислительного характера средствами Visual Basic for Application (VBA). Лабораторные работы включают краткие теоретические сведения, практическую часть, в которой представлен порядок проведения работы, а также вопросы для самоконтроля.
Основной задачей данных лабораторных работ является обучение студентов основам алгоритмизации, составлению небольших приложений средствами встроенной в Excel интегрированной средой. Выбор в качестве рабочей среды VBA продиктован тем, что этот язык является рабочим языком для большинства приложений фирмы Microsoft (в том числе, для Word и Excel). VBA соединяет в себе все положительные черты самого простого языка программирования VB со всеми вычислительными возможностями Excel, имеет полный доступ ко всем командам и структурам Excel. VBA – сравнительно легкий язык программирования. Он прост в освоении и позволяет быстро получать ощутимые результаты – конструировать профессиональные программы, решающие практически любые задачи. При этом создание программ на языке VBA зачастую проще и быстрее, чем при использовании других языков программирования. VBA относится к числу объектно-ориентированных языков. Он легко позволяет работать со стандартными объектами Microsoft Excel и одновременно позволяет конструировать и вставлять в программу свои собственные объекты.
ТЕМАТИЧЕСКИЙ ПЛАН ЛАБОРАТОРНЫХ РАБОТ
Семестр | № темы | Объем (час) | Форма контроля | Наименование тем, краткое содержание материала |
2 | 5 | 2 | защита | Инструментальная среда разработки Visual Basic Application ( VBA ). Макрорекордер. Работа с макрорекодером. Создание макроса. Использование относительных ссылок. Вызов макроса. Использование макросов Назначение макросов графическому объекту. Создание, редактирование, переименование, удаление, сохранение макросов. |
2 | 5 | 2 | защита | Функция пользователя. Создание, редактирование использование. |
2 | 5 | 4 | защита | Работа с элементами управления на рабочем листе. Работа с панелью инструментов Форма. Добавление элементов управления к расчетным таблицам. Работа с флажками и счетчиками. Список и поле со списком. Стандартные функции, используемые при работе с элементами управления. Добавление элементов управления к диаграммам. |
2 | 5 | 6 | защита | Интерфейс Visual Basic for Application. Назначение окон VBA. Окно свойств. Окно проекта. Окно кода программы. Окно формы. Форма и элементы управления. Добавление формы в проект. Свойство формы. События формы. |
2 | 5 | 6 | защита | Создание форм. Работа с формами: Размещение элементов управления на форме. Настройка их свойств. Создание формы «Калькулятор». |
2 | 5 | 6 | защита | Процедуры и функции. Создание формы для ввода, накопления и вычисления статистических параметров данных, записанных на листе таблицы Excel. |
2 | 5 | 6 | защита | Массивы данных Использование функций и процедур для работы с массивами. |
ЛАБОРАТОРНАЯ РАБОТА 1
Инструментальная среда разработки Visual Basic Application ( VBA ).
Макрорекордер.
Цель работы:
1. Научиться создавать, редактировать, удалять макросы
2. Освоить работу с макросами
Для автоматизации периодического выполнения одной и той же задачи в Microsoft Excel используется макрос. Макрос — это именованная последовательность команд и функций, хранящаяся в модуле. Модуль – совокупность описаний, инструкций и процедур, сохраненная под общим именем. Существуют модули двух типов: стандартный модуль и модуль класса Visual Basic. Записанный макрос можно вызывать для выполнения из основного меню при помощи кнопки на панели инструментов или на рабочей области, а также комбинации клавиш. Макрос может быть назначен так же графическому объекту. Макрос записывается на языке Visual Basic for Applications (VBA). Текст макроса можно вызывать для редактирования.
Создание макросов
Для работы с макросами необходимо сначала включить возможность работы с макросами. Работу с макросами можно разрешить в окне Центра управления безопасностью, которое можно вызвать либо посредством окна кнопки Office / Параметры Excel / Центр управления безопасностью, либо с помощью кнопки Безопасность макросов на вкладке Разработчик, которая вызывается в окне кнопки Office / Параметры Excel / Основные / Показать Разработчик на ленте. Макросы начнут работать после выхода из Excel и повторного входа.
Для работы с макросами надо активизировать вкладку Разработчик.
Рисунок 1.1
1. В диалоговом окне Запись макроса в поле Имя макроса ввести имя макроса. Первым знаком имени макроса должна быть буква. Остальные знаки могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не допускаются пробелы; в качестве разделителей слов следует использовать знаки подчеркивания. Нельзя использовать имя макроса, являющееся ссылкой на ячейку. Имя должно начинаться с буквы и состоять не более чем из 64 символов.
2.
Рисунок 1.2
3. Если необходимо добавить описание макроса, введите его в поле Описание.
4. Нажать кнопку OK.
Рисунок 1.3
5. Выполнить макрокоманды, которые нужно записать.
6.
Рисунок 1.4
Задание 1
Запись макроса
К часто повторяющимся действиям можно отнести выбор нужного формата. Создайте макрос с именем Число, который будет устанавливать для выделенной области числовой формат с одним знаком после запятой.
1. Включить запись макроса;
2. Ввести в поле ввода Имя макроса название создаваемого макроса — Число. Помимо стандартной информации (когда и кем был записан макрос) можно ввести в поле ввода Описание краткое описание назначения макроса. После этого нажать кнопку OK. Начиная с этого момента, осуществляется запись макроса. На экране появляется кнопка Остановить макрос. Если нажать на эту кнопку, то запись макроса будет закончена.
3. Теперь нужно выполнить последовательность действий, которая будет записана в макрос. В нашем случае последовательность действий следующая: выделить ячейки A1:B5, которые нужно отформатировать, и нажать Ctrl+1; в появившемся окне диалога Формат ячеек выбрать вкладку Число, а на ней категорию форматов Числовой, установите число десятичных знаков – 1.
4. Нажать кнопку OK.
5. Остановить запись.
После окончания записи макроса он появляется в списке макросов под именем Число. Результатом работы макроса Число будет ввод форматного кода в выделенные ячейки таблицы.
6. Назначьте макросу клавишу быстрого вызова, для этого воспользуйтесь кнопкой Параметры.
Задание 2
Создание макроса с абсолютными ссылками
При составлении различных отчетов и сводок в качестве названий строк часто используются названия месяцев. Создать макрос, который выводит название месяцев в ячейках A1:A12.Для этого необходимо
1. ·Установить курсор в какую-нибудь ячейку книги, за исключением A1;
2. Включить запись макроса;
3. ·Ввести в поле ввода Имя макроса название создаваемого макроса Месяц. В поле ввода Описание ввести текст: Вводит названия месяцев. Задать клавишу быстрого вызова макроса в виде буквы «м». Нажать кнопку OK.
4. Выполнить последовательность действий, которую будет выполнять макрос: установить курсор в ячейку A1; ввести слово январь; поместить указатель мыши в правый нижний угол ячейки A1, при этом указатель мыши изменит вид на черный крестик; нажать кнопку мыши и, удерживая ее нажатой, продолжить выделение до ячейки A12.
5. Нажать на кнопку Остановить макрос.
6. Если курсор установлен перед записью макроса в ячейке A1, то макрос будет правильно работать только в том случае, когда перед нажатием клавиш Ctrl+м поместить курсор в ячейку A1.
Задание 3
Последнее изменение этой страницы: 2019-04-19; Просмотров: 833; Нарушение авторского права страницы