Создание макросов в MicrosoftOfficeExcel 2007
Лабораторная работа №2
Создание макросов в MicrosoftOfficeExcel 2007
Цель работы:в результате выполнения лабораторной работы студент должен приобрести навыки создания макросов с помощью средств автоматической записи макросов – макрорекордера и освоить основные правила создания макросов с помощью языка VisualBasicforApplications.
Теоретическая часть
Без преувеличения можно сказать, с наступлением 21 века люди все чаще сталкиваются с работой в офисных пакетах приложений Microsoft Office. И современный руководитель, и менеджер, и преподаватель, и студент, и школьник – все, кто имеет в своем распоряжении компьютер, в той или иной степени используют эту систему.
Одним из компонентов пакета Microsoft Office является Microsoft Excel – наиболее популярное приложение для работы с таблицами и табличными данными, совмещает в себе систему обработки числовых данных, средства для построения диаграмм и обработки электронных таблиц. Проще говоря, Excel – это удобная табличная форма с возможностями калькулятора, позволяющего выполнять интенсивные расчеты на основе имеющихся данных. На сегодняшний день Excel является одним из наиболее популярных приложений в мире.
Независимо от используемых вами операционной системы и программных приложений вы часто выполняете одни и те же последовательности команд для многих рутинных задач. Вместо повторения последовательности команд каждый раз, когда вам необходимо выполнить какую-либо задачу, вы можете создать макрос, который позволяет автоматизировать эти команды, перекладывая монотонную однообразную работу на плечи Excel.Макросы позволяют вводить одиночную команду, выполняющую ту же задачу, для реализации которой вам было бы необходимо вводить несколько команд вручную.
Макрос (макрокоманда) – это набор инструкций, которые программа выполняет по команде запуска. Инструкции могут соответствовать простым нажатиям клавиш или сложным наборам команд меню. Макросы обычно создаются при необходимости в регулярном выполнении операций, которые повторяются в одном и том же порядке. Они записываются на языке программирования VisualBasic для приложений (forApplications).
VisualBasicforApplication(VBA) – это визуальный объектно-ориентированный язык макропрограммирования высокого уровня, встроенный во все программы пакета Microsoft Office.
Выделяют три разновидности макросов:
· Командные макросы, которые состоят из операторов, соответствующих тем или иным командам или параграфам диалоговых окон, записанных в определенном порядке. Основным предназначением таких макросов является изменение внешнего вида окна или объекта.
· Пользовательские функции. Эти макросы работают аналогичным образом, как встроенные функции Excel. Они не изменяют среды приложения в отличие от командных макросов.
· Макрофункции, представляющие собой сочетание командных макросов и пользовательских функций.
Создать макросы можно следующими способами:
Запустить встроенное средство автоматической записи макросов – макрорекордер (рекордер) – средство записи действий пользователя с одновременным переводом их в программный код языка VBA. Воспроизведение записанного макроса программой ведет к выполнению каждой записанной рекордером команды точно в той последовательности, в которой их выполняли во время записи, включая все допущенные ошибки.
Ввести коды макроса в окне редактора VisualBasic и ввести операторы VBA.
Обычно при создании сложных макросов объединяют два эти способа в один.
Принцип действия макрорекордера напоминает работу магнитофона. Нажатие одной кнопки приводит к записи действий пользователя. Нажатие второй кнопки приводит к остановке записи. Нажатие третьей кнопки приводит к проигрыванию записанного, то есть повторному выполнению той же последовательности действий.
Макросы, кроме удобства, имеют и другие преимущества. Поскольку компьютеры больше приспособлены для выполнения повторяющихся задач, чем люди, запись макрорекордером неоднократно выполняемых команд повышает точность и скорость работы. Другим преимуществом использования макросов является то, что при их выполнении обычно нет необходимости в присутствии человека-оператора.
Записанные макрорекордером макросы лишены гибкости, поэтому они не могут реагировать на изменившиеся или меняющиеся условия. Законченный макрос сохраняется как процедура VBA.
Для Excel возможно сохранять макросы в текущем документе или в новой рабочей книге, чтобы иметь возможность использовать их из других рабочих книг или в личной книге макросов.
Личная книга макросов(PersonalMacroWorkbook) – это книга, которая автоматически загружается при запуске Excel. Обычно она невидима и макросы из нее можно вызывать из любой рабочей книги.
Макросы, сохраненные в текущем документе, называются локальными. Глобальными называются макросы, сохраненные в личной книге макросов.
Макросы можно запускать, находясь в той книге, где они были сохранены, из другой рабочей книги, если она открыта или из личной книги макросов. При необходимости использовать макросы во многих книгах, их лучше сохранять в личной книге макросов.
Создание макросов
2.1 Стартовые условия для выполнения лабораторной работы
Выполнение лабораторной работы осуществляется в программе MicrosoftOfficeExcel 2007. Для запуска программы необходимо зайти в Пуск/Все программы/MicrosoftOffice и нажать на MicrosoftOfficeExcel 2007.В открытой рабочей книге необходимо будет проверить наличие в ленте вкладки Разработчик.В левой части вкладки Разработчик находятся кнопки управления макросами.
Рисунок1. Вкладка разработчика.
Для включения вкладки Разработчик нажмите кнопку MicrosoftOffice , а затем - кнопку Параметры Excel.В открывшемся окне выберите вкладку Основные, установите флажок напротив пункта Показать вкладку «Разработчик» на ленте, после чего нажмите OK. После выполнения данной процедуры вкладка появится на ленте.
2.2 Создание и сохранение макроса
Прежде чем создать макрос надо подумать, какие действия должен выполнять макрос. Настроить приложение таким образом, чтобы можно было беспрепятственно выполнять команды, подлежащие записи. Если этого не сделать, то подготовка к записи макроса также попадет в программу, и в результате он будет работать не верно.
Чтобы создать макрос первым способом:
Запустите встроенное средство автоматической записи макроса. Откройте вкладку Разработчик и нажмите на кнопку Запись макроса. Откроется окно «Запись макроса».
Рисунок2. Окно записи макроса.
1. В соответствующем поле окна «Запись макроса» введите имя макроса - желательно давать его осмысленным, которое будет отражать суть выполняемых действий, дабы избежать путаницы. В названии макроса можно использовать русские и английские буквы, цифры и знаки подчеркивания.
2. Задайте комбинацию «горячих» клавиш для вызова макроса (если необходимо).
3. Укажите в выпадающем списке место, где будет сохранен макрос.
4. Введите краткое описание макроса в соответствующие поля диалогового окна «Запись макроса»(если оно вам необходимо).
5. Нажмите на кнопку OK. После этого момента начнётся запись макроса.
6. Выполните действия, которые следует включить в макрос.
Для того, чтобы включить в макрос команды, выберите её обычным способом – через меню или с помощью кнопок из ленты инструментов(при этом вкладкой Форматирование, которая находится на ленте инструментов, не стоит пользоваться, т.к. данные кнопки работают как переключатели).
Внимание! При записи фиксируются лишь выполняемые операции, но не затраченное время, поэтому торопиться нет необходимости. Старайтесь действовать аккуратно, поскольку, как ошибка, так и операции по её исправлению будут воспроизведены при пуске макроса.
7. После выполнения всех шагов по вводу макроса, нажмите на кнопку становить запись на вкладке Разработчик. Ваш макрос будет успешно сохранен.
Рисунок 3. Кнопка остановки записи макроса.
Для запуска макроса:
1. Если вы задавали комбинацию «горячих» клавиш, запустить макрос можно всего лишь нажатием данной комбинации.
2. Если при создании макроса вы не указали комбинацию горячих клавиш или же вовсе забыли это сделать, запустить макрос вы сможете, нажав на кнопку Макросы. В открывшемся окне «Макрос»выберите из списка нужный макрос.
Рисунок 4. Окно макроса.
3. Нажмите на кнопку Выполнить.
Удаление макросов
Удалить макрос можно несколькими способами:
1) Нажмите на кнопку Макросыво вкладкеРазработчик. В открывшемся окне «Макрос» выберите из списка нужный макрос. Нажмите на кнопку Удалить.В открывшемся окне «MicrosoftOfficeExcel» вас спросят, действительно ли вы хотите Удалить макрос.Нажмите на кнопкуДа;
2) Переписать макрос заново под тем же именем, если не устраивает работа первоначального макроса.
Процедуры
Если считать, что операторы VBA - это предложения, то процедуры - аналог абзацев. Процедуры VBA являются хорошо определёнными блоками кода, выполняющегося вместе. Программы могут переходить от процедуры к процедуре, невзирая на их местонахождение в тексте программы. Существует два типа процедур: подпрограммы и функции.
Подпрограммы делятся на две категории. Одни из них могут применяться как макросы, а другие - не могут. Различие между этими двумя типами основывается на том, передаются ли процедуре значения при её вызове или нет.
Внимание!Макросу при запуске не могут быть переданы никакиепараметры. Однако во время выполнения он может находить нужные ему значения в подпрограммах или функциях.
Любая подпрограмма имеет следующий синтаксис:
Sub name (arguments)
списокоператоров VBA
EndSub
Где name-имя процедуры, а argumertts-это список переменных, представляющих значения, которые передаются процедуре. Их может и не быть, как уже говорилось выше. Однако скобки должны быть сохранены.
Функции - это второй тип VBA-процедур. Общее назначение функции - возвращать при вызове единственное значение. Именно этим функции и отличаются от подпрограмм.
Синтаксис функции:
Functionname (arguments)
списокоператоров VBA
name = expression
EndFunction
Где name - имя функции, a arguments - это список переменных, представляющих значения, которые переданы этой функции. Строка name = expression говорит о том, что имени, определённому в первой строке функции, присваивается значение выражения expression. Оно и становится возвращаемым значением функции.
Переменные в VBA
Описанные в процедурах VBA действия выполняются над переменными или объектами. Переметая - это поименованная область памяти, которая используется для хранения данных в период работы процедуры. Объекты (см. о них ниже) представляют собой средство программного управления приложениями Office 2007 и созданными с их помощью документами. У объектов VBA есть свойства, которые могут принимать различные значения. Переменные, содержащие ссылку на объект, называются объектными переменными.
Существует несколько видов переменных. Это:
¾ Локальные переменные, которые объявляются в одной отдельной процедуре;
¾ Переменные модульного уровня- это переменные, которые может использовать любая процедура отдельного модуля;
¾ Общие переменны - это переменные, которые могут использоваться даже при переходе от модуля к модулю.
Создать переменную можно двумя способами:
1) Простым упоминанием о переменной. (Т.е. переменная создаётся на «ходу» и она объявляется в процессе использования);
2) В начале процедуры объявить необходимые переменные.
Для объявления переменныхнеобходимо написать оператор Dim. имя переменной и тип переменных. Если заранее неизвестен тип переменных, то его можно не писать. Полностью объявление переменной выглядит так:
Dim ИмяПеременной asТуре
Где Туре - это тип вводимой переменной. Основные типы переменных перечислены ниже:
Variant-переменные, тип которых определяется типом последнего присвоенногоим значения.
Integer - используется для хранения целых чисел. Например:
-375,375
String - объявляет строковые переменные. Например: МоёИмя.
Boolean - логические переменные, которые принимают одно из двух значений:
Истина (Тrue) либо Ложь (False).
Date - тип переменных для хранения даты и времени.
Object - объявляет объектную переменную.
Объекты в VBA
Объекты, с которыми работают процедуры и функции VBA, представляют собой средство программного управления приложениями Office2007 и созданными с их помощью документами. Широко используемые объекты - это рабочие листы, меню, диапазоны ячеек и др. В Excel существует очень много объектов. Объект имеется для каждого элемента в каждом меню, для каждой кнопки и рабочего листа в каждой рабочей книге.
У объектов VBA есть свойства, которые могут принимать различные значения. Фактически свойствами являются атрибуты объекта. Например: имя объекта, количество листов (для рабочих книг).
Для того чтобы написать законченную строку кода VBA, включающую объект, необходимо указать объект и что необходимо с ним сделать. Объект в VBA указывается при помощи ссылки. Иногда ссылка состоит из нескольких компонентов. Причём каждый компонент ограничивает область возможных объектов, пока не укажет точно конкретный объект. Каждая ступень ограничения области отделяется точкой (.). Например:
Workbooks (“Книга 2”). Worksheets (“Лист 1”)
Данная строка ссылается на объект с именем Лист 1 в рабочей книге ''Книга 2”. Ссылка на ''Книга 2” дана для того, чтобы отличить данный объект от других листов с таким же именем в различных книгах. В этом примере оператор VBAне закончен, так как не указано, что необходимо с ним сделать. Вот пример законченного оператора VBA:
Workbooks(“Книга 2”) . Worksheets(“Лист 1”) . Delete
Данная строка указывает VBA удалить заданный лист из рабочей книги.
В этих примерах была дана ссылка на объект, расположенный в определённой рабочей книге. Однако когда нужно сделать более общую ссылку на объект, такая детализация не подходит. Например, в случае, когда нужно что-либо сделать с определённой ячейкой на любом выбранном в данный момент рабочем листе. Для этого просто используем ссылку на такие объекты. Например:
Range (“В6”)
Ссылка на ячейку В6 любого рабочего листа любой открытой рабочей книги.
Объекты, ссылающиеся на конкретные ячейки или диапазоны ячеек рабочего листа, называются Range-объектами. Для работы с ячейками и их диапазонами используются методы:
Range - если необходимо сослаться на какую-либо конкретную ячейку или диапазон ячеек. Например:
Range(“В4”")
Cells - если нужно работать с ячейками, меняющимися в процессе работы программы (каждый раз они определяются заново). Причём в скобках данного метода указывается сначала номер строки, а затем номер столбца. Например: Cells (7,2)- ссылка на ячейку В7.
Методы Row и Column нужны при работе со всей строкой или столбцом.
ActiveCell - свойство, которое возвращает единственную активную ячейку в рабочей книге.
Например:(Эти примеры являются законченными операторами VBA.)
1) Range(“В4 : Е6”). Select
Данный оператор выделяет диапазон ячеек В4 : Е6.
2) For m = 1 to 3
Cells (m,2 ) = m* 12
Next m
В данном примере переменная m изменяется от 1 до 3. Каждой ячейке В1, В2 иВЗ присваивается вычисленное значение.
3) Row (4). Select
Данный оператор выделяет всю четвёртую строку рабочего листа.
Управляющие конструкции
Управляющие конструкции в VBA позволяют изменять порядок выполнения операторов программы. В случае отсутствия таких конструкций операторы программы выполняются последовательно, начиная с первого и заканчивая последним. Управляющие конструкции подразделяются на ветвления и циклы.
Ветвлением называется управляющая конструкция, структура которой представляет собой простую форму проверки заданных условий, впоследствии чего выполняются определенные операторы. Позволяет пропускать те или иные группы операторов в зависимости от значения условия.
Все ветвления работают по общему принципу: вначале проверяется заданное условие, а затем в зависимости от результатов проверки выполняется та или иная группа операторов, входящая в конструкцию ветвления. Для ветвления применяются операторы условного перехода IF иоператор выбора SelectCase. При создании подпрограмм следует заметить, что возможно вложение одного или нескольких операторов в другой.
Оператор условного перехода IFимеет следующий синтаксис:
If условие Then 1й_оператор Else 2й_оператор
Условный оператор If можно использовать в трёх видах:
1) IfусловиеThenоператор
Пример:
Sub example1()
If 100 = 100 Then MsgBox True
EndSub
В данном примере приведена краткая форма записи, что означает: если (if) 100 = 100(условие) тогда(then) Msgbox True(оператор).
2) If условие Then 1й_оператор Else 2й_оператор EndIf
Пример:
Subexample2()
If100<10Then
MsgBoxTrue
Else
MsgBoxFalse
End If
End Sub
В данном примере приведена полная форма записи с двумя операторами, что означает: если(if) 100 < 10(условие) тогда(then) Msgbox True(1й_оператор) иначе(else) Msgbox False(2й_оператор) конец(endif).
3) If 1е_условие Then 1й_оператор ElseIf 2е_условие Then 2й_оператор EndIf.Пример:
Subexample3()
If 100 = 120 Then
MsgBox 120
ElseIf 100 = 100 Then
MsgBox 100
EndIf
В данном примере приведена самая гибкая форма условного оператора If (структура с двумя операторами и двумя условиями), что означает: если(if) 100 = 120(1е_условие) тогда(then) Msgbox 120(1й_оператор) иначе если(ElseIf) 100 = 100(2е_условие) тогда(then) Msgbox 100(2й_оператор).
Оператор выбора SelectCase – альтернативаоператоруIF.Санглийского Select Case можно перевести как «Выбор Ситуации».И если IF оператор в каждом своём ElseIf вынужден обращаться к проверяемым значениям снова и снова (допустим, выражение каждый раз одинаковое), то Select Case делает это только один раз, что позволяет последнему на больших массивах данных работать быстрее. Этот оператор позволяет удобно задать ветвление программы из одной точки в большое количество веток. То есть в основном применяется при множественных условиях проверки, когда проверяемых условий больше двух.
Синтаксис оператора Select Case выглядит так:
SelectCaseпроверяемое выражение
Caseконкретное значение
Некоторое действие
CaseElse
Некоторое действие X
EndSelect
В качестве кускаЗначение можно вставить любую переменную или свойство, значение которой или которого Вы можете проверить. Можно также проверять значение конкретной ячейки. При этом работать можно не только с числами, но и с текстами. И даже с булевыми значениями TRUE/FALSE («Правда» и «Ложь»), о чем знают не все.
КонкретноеЗначение- это то, с чем сравниваетсяПроверяемоеЗначение. И, если одно удовлетворяет другому, то выполняется НекотороеДействие. Есть несколько вариантов записи для блока КонкретноеЗначение. Для текстовых и числовых значений можно записывать разные значения через запятую.Например:
Case 3, 4, 5, "да", "нет"
Для чисел можно выбирать диапазоны, например:
Case 3 to 10 'От 3-х до 10-ти, включая сами 3 и 10
Также для чисел можно использовать логический оператор сравнения вместе с частицей "Is":
Case Is < 2 'Меньше 2, НЕ включая 2
Case Is = 3 'Равно 3-м. Избыточная запись, достаточно Case 3
Case Is >= 4 'Больше либо равно 4
Case Is <> 0 'Не равно нулю
Допустимо использовать и логические операторы, что позволит предусматривать сложнейшие случаи и проводить параллельные сравнения с другими переменными. Кроме оператора Or, который заменяется обычной запятой.
Case ... And ...
Case Not ...
НекотороеДействие может быть абсолютно любым. Если вы его пропускаете - то для данного случая программа будет бездействовать.Case КонкретноеЗначение вместе с частью НекотороеДействие складываются в один блок:
Case Конкретное Значение
Некоторое Действие
Таких блоков может быть любое количество, которое уложится в предельные размеры процедуры (она должна весить не более 64 килобайт). Полезно знать, что VBA просматривает соответствиеКонкретного Значения иПроверяемогоЗначения вдоль по блокам сверху вниз. То есть, у Вас может быть два блока с одинаковым Case, но выполнится только тот, который будет раньше найден программой при просмотре кода сверху вниз.
Case Else - это все другие случаи, которые не подошли ни под одно другоеКонкретное Значениево всех блоках оператора Select Case. Если блок Case Else отсутствует и ни один другой блок не подошёл, то программа делает логичное "ничего". Case Else должен быть последним проверяемым случаем среди всех блоков проверки в операторе. После него других блоков быть не должно, иначе получим синтаксическую ошибку Case without Select Case.
В конце оператора должен стоять End Select, который служит "точкой" в "предложении" оператора.
ПримериспользованияSelect Case:
Sub SelectCase_example_1()
Dim X As Long
X = 1 'Можете изменять эту цифру и смотреть, что получится.
Select Case X
Case 1
MsgBox "Один"
Case 2
MsgBox "Два"
Case 3
MsgBox "Три"
Case Else
MsgBox "Выбрано что-то другое"
End Select
End Sub
Подводя итог, можно сказать, что оператор Select Case по структуре довольно прост и удобен в использовании. Он менее гибок по сравнению с If … End, если по ходу проверок требуется менять проверяемое значение, но значительно выигрывает при разнообразных проверках одного и того же выражения. Для чего собственно и был создан.
Циклом называется такая конструкция, которая позволяет многократно повторять выполнение группы операторов до наступления какого-либо события. Иначе говоря, служат для выполнения несколько раз одних и тех же действий служат циклы. Они бывают трёх видов: с управляющим условием, со счётчиком и циклы по структуре данных.
Циклы с управляющим условием.В них оператор или группа операторов повторяются до тех пор, пока не будет выполнено управляющее условие. По названию оператора, лежащего в основе этой конструкции, такие циклы называют циклами Do. Различают четыре типа циклов Do, в зависимости от типа управляющего условия и времени его проверки.
1) Цикл выполняется, пока соблюдается некоторое условие.
DoWhileусловие
список операторов VBA число = Sqr(число ) -1
Loop
DoWhileчисло> = 0,01
число = Sqr (число) - 1
повторения = повторения + 1
Loop
Условие в данном цикле проверяется до начала выполнения повторяющихся операторов. Если условие не выполняется, то операторы, заключённыемежду Do и Loop, не выполняются, а управление переходит к следующему оператору за Loop.
2) Цикл выполняется до тех пор, пока условное выражение не станет равным значению Истина (True).
DoUntilусловие
список операторов VBA
Loop
DoUntilчисло<0,01
число = Sqr (число) – 1
повторения = повторения + 1
Loop
3) Циклы третьего и четвёртого типов отличаются от предыдущих только тем, что условие проверяется уже после выполнения тела цикла. Таким образом, эти циклы выполняются хотя бы один раз.
Do
список операторов VBA
Loop Whileусловие
Do
число = Sqr (число) – 1
повторения = повторения +1
LoopWhile число >= 0,01
Do
список операторов VBA
LoopUntilусловие
Do
число= Sqr (число) – 1
повторения = повторения +1
LoopUntilчисло < 0,01
Циклы со счётчиком. В циклах со счётчиком используется специальная переменная - счётчик, значение которой при каждом повторении тела цикла увеличивается или уменьшается на заданную величину (шаг цикла). Цикл завершается после того, как значение счётчика достигнет конечного значения счётчика цикла (или превысит его).
Синтаксис цикла со счётчиком:
Forсчётчик = начальное_значение То конечное_значение Step шаг_цикпа список операторов VBANextсчётчик
Телом цикла являются операторы VBA, заключённые между операторами, обозначающими его начало и конец.
Например:
Forb= 1 То 10 Step 2
S = S + Cells ( b, 1 )
Next b
Циклы по структуре данных. В циклах по структуре данных тело цикла поочерёдно выполняется для всех однородных объектов, составляющих массив или семейство. В этом случае в роли счётчика выступает объектная переменная. Синтаксис данного цикла:
ForEach элемент In структура_данных
тело цикла (список операторов VBA)
Next элемент
Например:Впримеревыводятся напечатьимена всех рабочихлистоввтекущей рабочей книге Excel и приведён синтаксис цикла по структуре данных.
Sub Цикп_по_структуре_данных ()
Dim S As Worksheet
ForEash S In Application. Worksheets
Debug.Print S.Name
Next S
EndSub
Задание на лабораторную работу
1. Ознакомьтесь с теоретическим минимумом (описанным выше) для выполнения данной лабораторной работы.
2. Откройте папку «МОИ ДОКУМЕНТЫ».
3. Создайте документ Лист MicrosoftOfficeExcelв папке «ВАШЕ ФИО НОМЕР ГРУППЫ».
4. Переименуйте созданный документ в «МАКРОСЫ ВАШЕФИО».
Часть 1
1. Откройте созданную книгу.
2. С помощью макрорекордера создайте макрос на Листе 1, изменяющий цвет ячейки, которая определяется пересечением первой буквы вашей фамилии и сумме последних двух цифрномера вашей зачетки. Назовите данный макрос «Цвет». Сохраните макрос в Эту книгу.
3. Для макроса «Цвет» создайте кнопку на панели быстрого доступа.
4. Измените значок кнопки со стандартного на любой другой знак.
5. Покажите результат преподавателю.
6. С помощью макрорекордера создайте макрос, вставляющий новый лист в рабочую книгу перед Листом 1. Назовите данный макрос «Новый_лист». Сохраните макрос в Эту книгу.
7. Для макроса «Новый_лист» создайте кнопку на панели быстрого доступа. Измените значок и отображаемое имя макроса.
8. Покажите результат преподавателю.
9. С помощью макросов «Цвет» и «Новый_лист» (объединив их) создайте макрос «Лист_цвет», который вставляет новый лист в данную рабочую книгу перед Листом 1 и окрашивает ячейку (первая буква вашей фамилии и сумма последних двух цифр номера зачетки) в другой цвет.
10. С помощью операторов VBA измените макрос «Лист_цвет» таким образом, чтобы он вставлял новый лист перед Листом 1и изменял цвет чётных ячеек в столбце первой буквы вашей фамилии и строках с 4 по 20. (т.е. например: в столбце В изменял цвет ячеек В4, В6, В8 и т.д. до ячейки В20 включительно.)
11. Сохраните документ и покажите результат преподавателю.
Часть 2
16. Скопируйте из файла Отчет продаж (ПРИЛОЖЕНИЕ 1)таблицу продаж в файл «МАКРОСЫ ВАШЕ ФИО»на листы 2 и 3.
17. Сохраните документ.
18. Переименуйте свой рабочий ЛистЗ в лист «Исходная таблица».
19. Переименуйте свой рабочий Лист2 в лист «Работа с макросами».
20. Отсортируйте лист «Работа с макросами» по расфасовке.
21. Оставьте в таблице два вида расфасовки, а остальные удалите.
22. Отсортируйте лист «Работа с макросами» по виду товара и по производителю.
23. Создайте новый макрос (с помощью операторов VBA и строк макроса «Цвет»), который в зависимости от расфасовки товара меняет цвет ячейки в столбце «Итоговое количество».То есть товар одного вида расфасовки меняет цвет, а у другого цвет ячейки сохраняется прежний.Назовите этот макрос «Выбор».Сохраните макрос в Эту книгу.
24. В панель быстрого доступа добавьте кнопку с именем макроса «Выбор».
25. Покажите результат преподавателю.
26. Создайте новый макрос, который подсчитывает данные в столбце «Итоговая цена» в зависимости от расфасовки и количества проданного товара.Цену за товар даннойрасфасовки вводите произвольно.Назовите макрос «Подсчёт». Сохраните макрос в Эту книгу.
27. Создайте для макроса «Подсчёт» кнопку быстрого доступаи изменитеего значок.
28. Покажите результат преподавателю.
29. Обнулите столбцы «Итоговое количество» и «Итоговая цена».
30. В макрос «Подсчёт» вставьте строку, считающую столбец «Итоговое количество» по месяцам.
31. Покажите результат преподавателю.
32. Сохраните свой документ.
Контрольные вопросы
1. Что такое макрос?
2. Чтотакое Visual Basic for Application (VBA)?
3. Перечислите виды макросов.
4. Какие существуют способы создания макросов?
5. Где можно сохранять макросы в Excel?
6. Что такое макрорекордер.
7. Особенности создания с помощью макрорекордерамакросов, форматирующих ячейки.
8. Как создать кнопку быстрого запуска макроса?
9. Как создать команду меню запуска макроса?
10. Что такое переменные? Обязательно ли их объявление в макросах?
11. Как можно создать переменную?
12. Назовите виды управляющих конструкций в VBA.
13. Приведите пример ветвлений.
14. Какие существуют операторы условного перехода? Объясните их конструкции.
15. Сколько существует видов циклов? Назовите их.
16. Что называется телом цикла?
17. Приведите пример цикла с управляющим условием.
18. Назовите особенности циклов со счётчиком.
ПРИЛОЖЕНИЕ 1
Отчет продаж
Лабораторная работа №2
Создание макросов в MicrosoftOfficeExcel 2007
Цель работы:в результате выполнения лабораторной работы студент должен приобрести навыки создания макросов с помощью средств автоматической записи макросов – макрорекордера и освоить основные правила создания макросов с помощью языка VisualBasicforApplications.
Теоретическая часть
Без преувеличения можно сказать, с наступлением 21 века люди все чаще сталкиваются с работой в офисных пакетах приложений Microsoft Office. И современный руководитель, и менеджер, и преподаватель, и студент, и школьник – все, кто имеет в своем распоряжении компьютер, в той или иной степени используют эту систему.
Одним из компонентов пакета Microsoft Office является Microsoft Excel – наиболее популярное приложение для работы с таблицами и табличными данными, совмещает в себе систему обработки числовых данных, средства для построения диаграмм и обработки электронных таблиц. Проще говоря, Excel – это удобная табличная форма с возможностями калькулятора, позволяющего выполнять интенсивные расчеты на основе имеющихся данных. На сегодняшний день Excel является одним из наиболее популярных приложений в мире.
Независимо от используемых вами операционной системы и программных приложений вы часто выполняете одни и те же последовательности команд для многих рутинных задач. Вместо повторения последовательности команд каждый раз, когда вам необходимо выполнить какую-либо задачу, вы можете создать макрос, который позволяет автоматизировать эти команды, перекладывая монотонную однообразную работу на плечи Excel.Макросы позволяют вводить одиночную команду, выполняющую ту же задачу, для реализации которой вам было бы необходимо вводить несколько команд вручную.
Макрос (макрокоманда) – это набор инструкций, которые программа выполняет по команде запуска. Инструкции могут соответствовать простым нажатиям клавиш или сложным наборам команд меню. Макросы обычно создаются при необходимости в регулярном выполнении операций, которые повторяются в одном и том же порядке. Они записываются на языке программирования VisualBasic для приложений (forApplications).
VisualBasicforApplication(VBA) – это визуальный объектно-ориентированный язык макропрограммирования высокого уровня, встроенный во все программы пакета Microsoft Office.
Выделяют три разновидности макросов:
· Командные макросы, которые состоят из операторов, соответствующих тем или иным командам или параграфам диалоговых окон, записанных в определенном порядке. Основным предназначением таких макросов является изменение внешнего вида окна или объекта.
· Пользовательские функции. Эти макросы работают аналогичным образом, как встроенные функции Excel. Они не изменяют среды приложения в отличие от командных макросов.
· Макрофункции, представляющие собой сочетание командных макросов и пользовательских функций.
Создать макросы можно следующими способами:
Запустить встроенное средство автоматической записи макросов – макрорекордер (рекордер) – средство записи действий пользователя с одновременным переводом их в программный код языка VBA. Воспроизведение записанного макроса программой ведет к выполнению каждой записанной рекордером команды точно в той последовательности, в которой их выполняли во время записи, включая все допущенные ошибки.
Ввести коды макроса в окне редактора VisualBasic и ввести операторы VBA.
Обычно при создании сложных макросов объединяют два эти способа в один.
Принцип действия макрорекордера напоминает работу магнитофона. Нажатие одной кнопки приводит к записи действий пользователя. Нажатие второй кнопки приводит к остановке записи. Нажатие третьей кнопки приводит к проигрыванию записанного, то есть повторному выполнению той же последовательности действий.
Макросы, кроме удобства, имеют и другие преимущества. Поскольку компьютеры больше приспособлены для выполнения повторяющихся задач, чем люди, запись макрорекордером неоднократно выполняемых команд повышает точность и скорость работы. Другим преимуществом использования макросов является то, что при их выполнении обычно нет необходимости в присутствии человека-оператора.
Записанные макрорекордером макросы лишены гибкости, поэтому они не м