Добавил:
По своей натуре перфекционист. Поэтому люблю все аккуратно оформлять и упорядочивать, складывать по полочкам. Вот, не пропадать же добру, нажитому за четыре кропотливых семестра. Тут я выложил все мои ответы, курсовые, отчеты и некоторые ДЗ. Они могут вам помочь для получения зачета или сдачи экзамена. Если чего-то не нашли в папочках, то попытайте удачу в разделе НЕОТСОРТИРОВАННОЕ на моей страничке, там все 4 семестра разложены по папкам. ГРУППА КТ-43-15. Годы обучения 2015-2019. Коллекция будет пополняться. Что ж, удачки :З Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
69
Добавлен:
15.09.2017
Размер:
1.87 Mб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

"Чувашский государственный университет им. И. Н. Ульянова"

А. А. Стеценко

Программирование в среде электронных таблиц

Microsoft Excel

Лабораторной практикум

Чебоксары

2013

УДК 681.3.068 ББК 32.81

Рецензенты:

зав. кафедрой информационных технологий ГОУ ВПО "Чувашский государственный педагогический университет им. И. Я. Яковлева" доктор пед. наук, профессор Т. А. Лавина;

зав. кафедрой права Чебоксарского политехнического института (филиала) МГОУ им. В. С. Черномырдина канд. юр. наук доцент М. Г. Иванов.

Стеценко А.А.

Программирование в среде электронных таблиц Microsoft Excel: лаб.

практикум. – Чебоксары: Изд-во Чуваш. ун-та, 2013. – 90 с.

Приводятся описания 14 лабораторных работ по программированию на VBA в среде Microsoft Excel. Основное внимание уделяется работе с элементами объектной модели Excel – рабочими листами и листами диаграмм, ячейками и диапазонами ячеек. Каждая работа предваряется теоретическим введением, в котором рассматривается постановка вопроса и приводится поэтапное построение программы. Все приводимые программы и фрагменты программ опробова-

ны в среде Excel 2010 и Excel 2003.

Для студентов всех форм обучения всех специальностей. Составлено на основе рабочей программы учебных дисциплин “Информатика и программирование”, “Компьютерные технологии в науке и образовании”.

Ответственный редактор канд. техн. наук профессор В. П. Желтов

Утверждено Учебно-методическим советом университета.

УДК 681.3.068

ББК

©Издательство Чувашского университета, 2013

©А. А. Стеценко, 2013

Предисловие

Процессоры электронных таблиц нашли массовое применение в различных сферах управления и бизнеса, они широко применяются в научных и в инженерных расчётах. Вычислительная мощь электронных таблиц, заключённая во встроенных функциях, применительно к конкретному расчёту кратно возрастает благодаря функциям пользователя. Встроенная в Excel среда программирования Visual Basic for Applications (VBA) по доступности, удобству и мощи превосходит своих оппонентов в других электронных таблицах и в немалой степени обеспечивает лидерство Excel на рынке электронных таблиц. Умение программировать решение своих задач на VBA является одним из показателей квалификации специалиста.

VBA наследует синтаксис, традиционный для бейсиков, но в VBA добавлены средства дóступа к элементам объектной модели Excel, что дало некоторым радикалам повод утверждать, что VBA – объектно-ориентированный язык. VBA не имеет средств создания классов и объектов, но может работать с объектами, встроенными в Excel.

VBA встроен во все приложения пакета Microsoft Office, однако за общим синтаксисом кроется "привязка" к приложениюконтейнеру. VBA, встроенный в Microsoft Word, может работать с элементами объектной модели Word, но не может работать с элементами объектной модели Excel.

Исключение составляет объект Range, обеспечивающий дóступ к ячейкам рабочего листа, но программист VBA не может изменить класс, порождающий этот объект. Существует не лишённое аргументов мнение, что обучающийся, освоивший свойства и методы объекта Range, умеет программировать на VBA.

Все работы настоящего практикума "заточены" не на изучение синтаксиса языка, а на работу с элементами объектной модели Excel, в первую очередь – с объектом Range.

Автор заранее благодарит тех, кто пришлёт свои замечания в издатель-

ство или на почту aastets@gmail.com.

4

Программирование в среде электронных таблиц Microsoft Excel

Работа VBA1. Знакомство с Visual Basic for Applications

Цель работы: ознакомление со средой Visual Basic for Applications, встроенной в Microsoft Excel, освоение приёмов создания макроса.

Введение

Visual Basic for Applications (VBA) – интегрированная среда программи-

рования, встраиваемая в приложения пакетов Microsoft Office. VBA ориентирован на работу с элементами объектной модели приложений, и в этом различаются версии VBA в Excel, Word или PowerPoint. Что касается изменений VBA в разных версиях Excel, то эти изменения весьма незначительны и связаны, как правило, с изменениями объектной модели приложения и изменениями пользовательского интерфейса. Например, в VBA, встроенном в Excel 2007, появились средства работы с лентой.

Для перехода из среды приложения в среду VBA имеется несколько возможностей, например:

а) кнопка Visual Basic на вкладке "Разработчик" (или команда "Сервис | Макрос|

Редактор Visual Basic" в Excel 2003);

б) клавиатурная комбинация <Alt>+<F11>, которая действует как переключатель;

в) панель задач Windows (VBA образует собственное окно, и переключаться между окнами Excel и VBA можно на панель задач Windows);

г) команда "Исходный текст" в контекстном меню ярлыка любого листа.

Microsoft называет среду VBA "редактором Visual Basic", хотя в действительности VBA – полноценная интегрированная среда программирования (Integrated Development Environment, IDE), в которую входят Visual Basic Editor (VBE) текстовый редактор, Project Explorer Проводник проекта, Properties редактор свойств объектов, Object Browser обозреватель объектов. В среде VBA содержатся средства отладки: команды меню Debug, а также окна отладки

Immediate, Locals, Watch.

Все программы VBA в Excel называются макросами. Терминологически это не очень правильно, но так принято. Все программы, находящиеся в одной книге Excel, составляют проект VBA (VBAProject). Программы размещаются в модулях. Автоматически создаются модули, связанные с объектами Excel. Это модуль книги ЭтаКнига (ThisWorkbook) и модули листов Лист1 (Sheet1), Лист2 (Sheet2) и т.д. Эти модули предназначены для размещения программ, связанных с соответствующими объектами Excel, например, программ обработки событий. Другие объекты VBA – модули общего назначения Module, модули форм UserForm и модули классов Class – добавляются в проект VBA командами меню Insert. Команды вставки модулей дублируются в контекстном меню окна Project Explorer. В окне Properties можно изменить имя модуля (свойство name) на более содержательное, чем Module1 или UserForm1.

Стеценко А. А.

5

Макросы, записанные по команде записи макроса, макрорекордер размещает в модуле общего назначения, которому присваивается очередное стандартное имя Module1 etc. Эти макросы очень часто являются удобным плацдармом для написания программы VBA. Зачастую Вы обнаруживаете, что в макросе содержится бóльше команд, чем было дано во время записи макроса. Связано это с тем, что макрорекордер прописывает в макросе все свойства затронутого объекта, а не только те, на которые обратил внимание пользователь при записи макроса.

Немного о синтаксисе VBA

В VBA сохраняются правила, традиционные для бейсиков, хотя о многих раритетах пора бы забыть. Например, когда-то тип данных обозначался суффиксом к имени. Суффикс $ обозначал текстовое данное, суффикс % – целое число и т.д. Теперь типы данных обозначаются ключевыми словами Byte, Boolean, Integer, Long, Single, Double, Currency, Date, String и др., но суффиксы оста-

лись. VBA традиционно для бейсиков не различает регистры букв в именах и ключевых словах, так что имена book, Book и BOOK не различаются. Редактор VBE, однако, запоминает написание имени, заданное в инструкции описания Dim, и сохраняет его в тексте программы. Если при описании имени указано

Dim Book As String

а где-то программист наберёт

book="Большой привет!"

то VBE преобразует строку:

Book = "Большой привет!"

Заметьте, что кроме изменения регистра первой буквы VBE окружил знак = пробелами.

Все ключевые слова VBA пишутся в стиле UpperCamelCase, который русскоязычные программисты называют стилем Паскаль. Суть в том, что первые буквы слов – заглавные, остальные буквы – строчные. Если слово сложное, состоит из нескольких слов, то оно пишется слитно (пробелы не допускаются), но каждое слово начинается заглавной буквой, например, GoTo, AutoFilter. Исключение сделано для именованных констант: их имена начинаются строчными буквами vb для констант VBA и xl для констант Excel. vbYesNo и vbExclamation

– константы VBA, xlUp и xlFilterCopy – константы Excel.

Концом инструкции является конец строки EOL (End Of Line). VBE никак не помечает символ EOL. Допускается размещать несколько коротких инструкций в одной строке, разделяя их двоеточием, но лучше руководствоваться пра-

вилом "одной инструкции в строке достаточно". Длинную инструкцию при-

ходится размещать в нескольких строках. Перенос инструкции на следующую строку обозначается знаком подчёркивания с предшествующим пробелом:

If cell.Column = Diap.Column And _

IsEmpty(cell) Then Pusto = Pusto + 1

6

Программирование в среде электронных таблиц Microsoft Excel

Комментарии начинаются знаком ' (апостроф, одинарная кавычка) и заканчиваются концом строки. Никак не смотрятся программы без комментариев.

Не следует жалеть времени на толковые комментарии: программы исполняются компьютером, но программы создаются и читаются людьми.

Рабочее задание. Создать макрос для форматирования диапазона ячеек.

Выполнение

Р1. Создайте новую книгу Microsoft Excel. В книге оставьте три листа (лишние удалите, недостающие добавьте). Первому листу дайте имя Хххх1, где Хххх

– Ваша фамилия или аббревиатура. Сохраните книгу под именем Хххх.xlsm, если работа выполняется в среде Excel 2007/2010, или Хххх.xls, если работа выполняется в среде Excel 2003, в личной папке на жестком диске.

Р2. Подготовьте книгу для записи и сохранения макроса. Требуется установить такой уровень безопасности, который позволяет сохранять макросы в книге

Excel.

Всреде Excel 2010 откройте меню Файл, и выберите Параметры (Options) (среде Excel 2007: кнопка Office, затем Параметры Excel), выберите вкладку Основные (Porular), установите флажок Показывать вкладку "Разра-

ботчик" на ленте (Show Developer Tab in the Ribbon). В Центре управления безопасностью выберите Подключать все макросы.

Всреде Excel 2003 дайте команду Сервис | Макрос | Безопасность… и

выберите средний уровень безопасности.

Р3. Запустите Visual Basic for Applications (нажмите комбинацию клавиш

<Alt>+<F11>).

Р4. В окне Visual Basic

а) дайте команду Tools | Options, на вкладке Editor:

проверьте установку флажка Require Variable Declaration (флажок должен быть установлен);

сбросьте флажок Auto Syntax Check;

на вкладке Docking установите все флажки, кроме Object Browser;

б) изучите окно Project Explorer. Отметьте, какие объекты указаны в его окне; найдите имя объекта Лист1 – это должно быть имя, которое Вы дали в п. Р1.

Р5. Перейдите в окно приложения (в окно Excel) и дайте команду на запись макроса:

в среде Excel 2007/2010 на вкладке Разработчик (Developer) выберите команду Запись макроса (Record Macro);

в среде Excel 2003: Сервис | Макрос | Начать запись;

Стеценко А. А.

7

В диалоговом окне Запись макроса укажите имя ФорматированиеДиа-

пазона и щелкните по кнопке <OK>. Создайте макрос по следующему сценарию:

а) выделите диапазон ячеек B1:F2;

б) из контекстного меню (щёлкните правой клавишей мыши по выделенной

области) выделенного диапазона выберите команду Формат ячеек (или дайте команду Формат | Ячейки…);

в) в диалоговом окне Формат ячеек:

на вкладке Число выберите Текстовый;

на вкладке Выравнивание выберите:

горизонтальное выравнивание – по центру выделения;

вертикальное выравнивание – по центру;

установите флажок "переносить по словам";

г) на вкладке Шрифт выберите Arial (или Arial Cyr), обычный, 12, цвет текста – синий;

д) на вкладке Граница установите цвет линий коричневый, внешние границы

– двойная линия, внутренние границы – одинарная тонкая линия; е) на вкладке Вид выберите цвет заливки – какой-нибудь светлый.

Щелчком по кнопке <ОК> закройте окно Формат ячеек.

Р6. Остановите запись макроса. В Excel 2003 щелкните по кнопке “Остановить запись” (рис. 1). Если кнопка не видна на экране, дайте команду Сер-

вис | Макрос | Остановить запись.

Рис. 1. Кнопка остановки записи макроса в

Excel 2003.

В Excel 2007/2010 на вкладке Вид в группе Макросы раскройте список и выберите команду Остановить запись макроса.

Р7. Перейдите в окно Visual Basic (команда <Alt>+<F11>), в окне Project Ex-

plorer найдите изменения, щёлкните по квадратику с плюсом и двойным щелчком откройте Module1. В окне кода появится текст записанного макроса. Укажите в начальном комментарии свои фамилию, инициалы, группу.

Р8. Изучите текст макроса, сверяя его со сценарием, и вставьте комментарии к логическим блокам макроса: выделение диапазона, задание типа данных в ячейке, задание имени, размера и цвета шрифта, горизонтальное и вертикальное выравнивание текста, тип и цвет линий границы, цвет заливки.

Р9. Проверьте наличие на экране окна Properties. Если его нет, дайте команду

View | Properties Window или нажмите клавишу <F4>. В окне Properties

измените имя (name) Module1 на МакросФорматЯчеек (имя не должно со-

8

Программирование в среде электронных таблиц Microsoft Excel

держать пробелы) и нажмите клавишу <Enter> (или щёлкните мышкой гденибудь). Заметьте, как изменилось имя модуля в окне Project Explorer.

Р10. Опробуйте созданный макрос. Для этого:

а) в макросе ФорматированиеДиапазона отключите инструкцию

Range("B1:F2").Select

(для отключения инструкции поставьте апостроф в начале строки);

б) перейдите в окно Excel, выделите произвольный диапазон, содержащий не менее двух строк и двух столбцов, и дайте команду Сервис | Макрос | Макросы… В диалоговом окне Макрос (рис. 2) выберите созданный макрос и щёлкните по кнопке Выполнить. Выделенный диапазон будет отформатирован макросом.

Рис. 2. Запуск макроса на выполнение из окна Excel

Р11. Сохраните книгу, закройте, скопируйте файл на личный носитель.

Контрольные вопросы к работе VBA1

К1. Для чего предназначен VBA?

К2. Если говорится “приложение”, то что имеется в виду? К3. Как перейти в окно VBA из окна приложения?

К4. Как перейти в окно приложения из окна VBA? К5. Какие окна можно видеть на экране VBA?

К6. Объясните процедуру записи макроса. К7. Вы создали макрос. Где найти его текст?

К8. Для чего предназначена директива Option Explicit?

К9. В тексте макроса нет ни одной переменной. С какими данными работает макрос?

 

 

 

Стеценко А. А.

 

9

К10.

Перечислите

объекты,

с

которыми

оперирует

макрос

ФорматированиеДиапазона.

 

 

 

 

К11.

Объясните назначение Проводника Проекта (Project Explorer).

 

К12.

Как называется набор модулей, пользовательских форм и классов, нахо-

дящихся в одном приложении?

 

 

 

 

К13.

Как можно добавить модуль в состав проекта?

 

 

К14.

Какие имена присваивает VBA новым модулям?

 

 

К15.

Каким образом можно переименовать модуль?

 

 

К16.

Если при испытании макроса

ФорматированиеДиапазона

выделить

диапазон в одной строке или в одном столбце, то при выполнении макроса произойдёт ошибка. Объясните, почему.

Работа VBA2. Программа Workbook_Open

Цель работы: приобретение опыта подготовки программы, запускаемой по событию, ознакомление с программой Workbook_Open.

Введение

Одна из разновидностей программ VBA это программы обработки событий (обработчики событий), связанных с объектами приложения. События инициируются внешними причинами пользователем или внешними программами. Например, для объекта Workbook могут обрабатываться события Open, BeforeClose, NewSheet и др., с объектом Worksheet связываются события Activate, Calculate, Change и др. Список обрабатываемых событий можно увидеть, если активизировать модуль VBA, относящийся к объекту Excel, выбрать в заголовке окна кода объект и раскрыть список событий (рис. 3).

Рис. 3. Список событий, связанных с рабочим листом

Программы обработки событий имеют предопределённое местоположение и предопределённые названия. Размещаться они должны в модуле VBA, "приписанному" к соответствующему объекту Excel. Например, программы обработки событий, связанных с рабочей книгой, должны размещаться в модуле

10

Программирование в среде электронных таблиц Microsoft Excel

ЭтаКнига (ThisWorkbook), программы обработки событий, связанных с рабочим листом Лист1 (Sheet1), в модуле Лист1 (Sheet1). Заголовок обработчика начинается ключевым словом Private, обозначающим, что к этим программам не разрешается обращаться из программ в других модулях. Имя обработчика содержит название объекта Excel и название события, например:

Private Sub Workbook_Open

Private Sub Worksheet_Change

Действия, выполняемые обработчиками, могут быть любыми и полностью определяются программистом.

Рабочее задание. Создать и опробовать программу

Workbook_Open.

Выполнение

Р1. Откройте свою книгу Excel, созданную в предыдущей работе, перейдите в среду VBA (нажмите комбинацию клавиш <Alt>+<F11>).

Р2. В окне VBA проверьте наличие окна Project Explorer (рис. 3); если его нет, дайте команду View | Project Explorer или нажмите <Ctrl>+<R>. В окне Project Explorer сделайте двойной щелчок по объекту ЭтаКнига (ThisWorkbook), чтобы открылось окно кода этого объекта.

Р3. Перейдите в окно кода, раскройте список Object (рис. 4) и выберите строку Workbook. В окне кода должна появиться заготовка программы:

Private Sub Workbook_Open()

End Sub

Рис. 4. Элементы среды VBA.

Соседние файлы в папке VBA лабы (Стеценко)
  • #
    15.09.201752.92 Кб66SergeevA.xlsm
  • #
    15.09.20171.87 Mб69VBA_ЛБ_13v2.pdf
  • #
    15.09.2017799 б65ВосГазСорт.dat
  • #
    15.09.2017799 б65ВоспламГаз.dat
  • #
    15.09.201724.18 Кб65ВосплГаз.xlsm