Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Автоматизация процесса создания офисных документов. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
пользователем, будут записаны макрорекордером. Назначим в окне ленты Главная шрифт Time New Roman и остановим запись с помощью кнопки Остановить запись. После выполнения всех этих действий макрос будет назначен. Для просмотра программного код макроса в редакторе VBA на ленте «Разработчик» нажмем кнопку Макросы и в появившемся окне Макрос нажмем кнопку Изменить. Появится окно редактора VBA, представленное на рисунке
2.10, в правой половине которого можно посмотреть программный код макроса.
Рис. 2.10. Окно редактора VBA
Макросы в MS Word хранятся в шаблоне документа. Шаблон – это специальный файл MS Word с расширением *.dot, где хранится информация о стилях оформления документа, настройках, макросах и пользовательских инструментальных панелях. По умолчанию используется общий шаблон Normal.dot, в который и записывается макрос. Также возможно для документа пользователя создать свой шаблон под произвольным именем и записать туда вновь созданные макросы. Однако, эти макросы будут доступны только из документа, открытого в этом шаблоне.
Приведенные примеры показывают возможность значительно повысить уровень автоматизации при создании документов с помощью макросов в MS
Word.
11
2.3 Создание макросов в MS Excel
Для того, чтобы начать запись макроса, например в MS Office Excel 2007, с помощью макрорекордера, достаточно выполнить команду: Запись макроса. На экране появится окно Запись макроса, представленное на рисунке 2.11, в котором можно ввести имя макроса (по умолчанию предлагается имя МакросN), сочетание клавиш для вызова макроса, описание макроса, а также выбор одной из книг в раскрывающемся списке для сохранения в ней макроса.
Рис. 2.11. Диалоговое окно Запись макроса
После щелчка на кнопке ОК на ленте «Разработчик» отобразится кнопка Остановить запись. С этого момента все действия пользователя: выделение диапазонов ячеек, форматирование, ввод текста, чисел, формул и т.п. – будут преобразовываться в программный код и записываться в программном модуле. Для завершения процесса создания макроса нужно щелкнуть на кнопке остановки записи макроса.
Рассмотрим несколько примеров создания макросов в MS Office Excel 2007.
Пример 1.
Задание. Записать макрос при помощи макрорекордера, используя для этого сочетания клавиш «Ctrl + w», позволяющий выбирать максимальное чис­ло из чисел, записанных в ячейки А1:А5, и записывать его в ячейку Е1.
Выполнение. Откроем табличный процессор MS Office Excel 2007. Введем в ячейки А1:А5 произвольные числа, например 3, 7, 9, 12, 1. Перейдем на ленту «Разработчик» и нажмем на кнопку Запись макроса. В открывшемся окне, представленном на рисунке 2.12, назначим сочетание клавиш «Ctrl + w» и нажмем кнопку ОК. Макрорекордер начинает запись макроса.
12
Рис. 2.12. Диалоговое окно Запись макроса
Далее производим следующие действия: переходим на ленту «Главная» и выделяем ячейки А1:А5, затем нажимаем на кнопку Сортировка и выбираем сортировку от минимального значения до максимального. После такой сорти­ровки максимальное значение из чисел, записанных в ячейки А1:А5, будет все­гда находиться в ячейке А5. Затем копируем содержание ячейки А5, вставляем значение, полученное в этой ячейке, в ячейку Е1, переходим на ленту Разработ­чик и нажимаем кнопку Остановить запись. Макрос будет записан. Теперь, если ввести в ячейки А1:А5 любые другие числа и нажать сочетания клавиш «Ctrl + w», в ячейку Е1 будет записано максимальное число из чисел, записанных в ячейки А1:А5.
Для просмотра кода макроса достаточно перейти на ленту Разработчик, нажать кнопку Макрос и в открывшемся окне нажать кнопку Изменить. Откро­ется окно редактора VBA, в котором программный код макроса будет выгля­деть следующим образом:
Sub Макрос1()
'
' Макрос1 Макрос
'
' Сочетание клавиш: Ctrl+w
'
Range("A1:A5").Select
ActiveWorkbook.Worksheets("Лист1") _
.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Лист1")
.Sort.SortFields.Add
Key:=Range("A1"), _
13
SortOn:=xlSortOnValues,Order:=xlAscending,_
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Лист1").Sort .SetRange Range("A1:A5")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A5").Select
Selection.Copy
Range("E1").Select
ActiveSheet.Paste
End Sub
Пример 2.
Задание. Записать макрос при помощи макрорекордера, используя для этого сочетания клавиш «Ctrl + t», позволяющий выбирать минимальное число из чисел, записанных в ячейки А1:А5, и записывать его в ячейку Е1.
Выполнение. Выполняем действия, аналогичные действиям в примере 1, только вместо сортировки чисел от минимального значения до максимального выбираем сортировку чисел от максимального значения до минимального.
Программный код макроса будет выглядеть следующим образом:
Sub Макрос2()
'
' Макрос2 Макрос
'
' Сочетания клавиш: Ctrl+t
'
Range("A1:A5").Select
ActiveWorkbook.Worksheets("Лист1")_
.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Лист1")_
.Sort.SortFields.Add Key:=Range("A1"),_
SortOn:=xlSortOnValues, Order:=xlDescending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Лист1").Sort
14
.SetRange Range("A1:A5")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A5").Select
Selection.Copy
Range("E1").Select
ActiveSheet.Paste
End Sub
Пример 3.
Задание. Записать макрос при помощи макрорекордера, используя для этого сочетания клавиш «Ctrl + s», позволяющий выбирать среднее число из чисел, записанных в ячейки А1:А5, и записывать его в ячейку Е1.
Выполнение. Откроем табличный процессор MS Office Excel 2007. Введем в ячейки А1:А5 произвольные числа, например 3, 7, 9, 12, 1. Перейдем на ленту «Разработчик» и нажмем на кнопку Запись макроса. В открывшемся окне, представленном на рисунке 2.12, назначим сочетание клавиш «Ctrl + s» и нажмем кнопку ОК. Макрорекордер начинает запись макроса. Далее произво­дим следующие действия: переходим на ленту «Главная» и выделяем ячейку А6, вставляем в эту ячейку формулу =СРЗНАЧ(А1:А5) и нажимаем кнопку на клавиатуре Enter. Затем полученное среднее значение чисел, записанных в ячейки А1:А5, копируем в ячейку Е1, переходим на ленту Разработчик и нажи­маем кнопку Остановить запись. Макрос будет записан. Теперь, если ввести в ячейки А1:А5 любые другие числа и нажать сочетания клавиш «Ctrl + s», в ячейку Е1 будет записано среднее значение числа из чисел, записанных в ячей­ки А1:А5.
Для просмотра кода макроса достаточно перейти на ленту «Разработчик» и нажать кнопку Макрос и в открывшемся окне нажать кнопку Изменить. От­кроется окно редактора VBA, в котором программный код макроса будет вы­глядеть следующим образом:
Sub Макрос3()
'
' Макрос3 Макрос
'
15
' Сочетания клавиш: Ctrl+s
'
Range("A6").Select
Selection.FormulaR1C1 = "="
ActiveCell.FormulaR1C1 = "=AVERAGE(R[-5]C:R[-1]C)"
Range("A6").Select
Selection.Copy
Range("E1").Select
ActiveSheet.Paste
Columns("E:E").ColumnWidth = 12.86
Columns("E:E").ColumnWidth = 17.57
Columns("E:E").ColumnWidth = 9.14
Range("A6").Select
Application.CutCopyMode = False
Selection.Copy
Range("E1").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("A6").Select
Selection.Copy
Range("E1").Select
Selection.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks_
:=False, Transpose:=False
End Sub
Пример 4.
Задание. Записать макрос при помощи макрорекордера, используя для этого сочетания клавиш «Ctrl + r», позволяющий вставлять новые листы в те­кущую книгу MS Excel.
Выполнение. Откроем табличный процессор MS Office Excel 2007. Пе­рейдем на ленту «Разработчик» и нажмем на кнопку Запись макроса. В от­крывшемся окне, представленном на рисунке 2.12, назначим сочетание клавиш «Ctrl + r» и нажмем кнопку ОК. Макрорекордер начинает запись макроса. Далее производим следующие действия: устанавливаем курсор мыши внизу активно­го рабочего листа и нажимаем на кнопку «Вставить лист». Затем переходим на ленту Разработчик и нажимаем кнопку вставить Остановить запись. Макрос будет записан. Теперь, если нажать сочетания клавиш «Ctrl +r», то в текущую книгу MS Office Excel 2007 вставлен новый лист, которому будет автоматически будет присвоен новый номер.
16
Для просмотра кода макроса достаточно перейти на ленту «Разработчик» и нажать кнопку Макрос и в открывшемся окне нажать кнопку Изменить. От­кроется окно редактора VBA, в котором программный код макроса будет вы­глядеть следующим образом:
Sub Макрос4()
'
' Макрос4 Макрос
'
' Сочетание клавиш: Ctrl+r
'
Sheets.Add After:=Sheets(Sheets.Count)
End Sub
Пример 5.
Задание. Записать макрос при помощи макрорекордера, используя для этого сочетания клавиш «Ctrl + e», позволяющий устанавливать в ячейки А1:А5 числовой формат: числовой.
Выполнение. Откроем табличный процессор MS Office Excel 2007. Выде­лим ячейки А1:А5. Перейдем на ленту «Разработчик» и нажмем на кнопку За­пись макроса. В открывшемся окне, представленном на рисунке 2.12, назначим сочетание клавиш «Ctrl + e» и нажмем кнопку ОК. Макрорекордер начинает за­пись макроса. Далее производим следующие действия: на ленте «Главная» пе­реходим на вкладку «Число» диалогового окна «Формат ячеек» выбираем чис­ловой формат. Переходим на ленту Разработчик и нажимаем кнопку Остано­вить запись. Макрос будет записан. Теперь, если нажать сочетания клавиш «Ctrl + e», в ячейках А1:А5 будет установлен числовой формат.
Для просмотра кода макроса достаточно перейти на ленту «Разработчик» и нажать кнопку Макрос и в открывшемся окне нажать кнопку Изменить. От­кроется окно редактора VBA, в котором программный код макроса будет вы­глядеть следующим образом:
Sub Макрос5()
'
' Макрос5 Макрос
'
' Сочетание клавиш: Ctrl+e
'
Selection.NumberFormat = "0.00"
End Sub
17
Макросы в MS Excel, в отличие от MS Word, сохраняются в рабочих
книгах, имеющих расширение *.xls, там же хранится информация о сти­лях оформления документа, настройках, макросах и пользовательских ин­струментальных панелях [4].
Приведенные примеры показывают возможность значительно повысить уро­вень автоматизации при создании документов с помощью макросов в MS Excel.
2.4 Создание макросов в MS Access
MS Access представляет собой компьютерную программу для управления базами данных (СУБД). Технология создания макросов в нем несколько отличается от технологий, применяемых в MS Word и MS Excel. В MS Access для создания макросов служит Конструктор макросов. Вызов Конструктора макросов (например, в MS Office Access 2007) производится на ленте Создание при помощи кнопки Макрос. На рисунке 2.13 показан Конструктор макросов.
Рис. 2.13. Конструктор макросов
Как и в других приложениях MS Office, макрос представляет собой набор макрокоманд, выполняемых последовательно. Макрокомандой можно открыть форму, отчет, напечатать отчет, запустить запрос на выполнение, применить фильтр, присвоить значение, создать меню для формы. Макрокоманда
«Выполнить команду» позволяет выполнить любую встроенную команду MS Access из тех, которые выводятся в меню или на панели инструментов. В MS
18
Access имеется набор макрокоманд, который реализует практически любое
действие в процессе решения задач.
Макросы, являясь надстройкой над VBA, обеспечивают пользователя сред­ствами решения задач, не требующими знаниями детального программирования. Язык макросов является языком более высокого уровня, чем VBA.
Макросы определяют наборы методов обработки объектов. Также в MS Access имеются средства, обеспечивающие взаимодействие макросов с объектами на основе событий.
Создание макроса происходит в диалоговом режиме и сводится к записи в окне макроса последовательности макрокоманд и параметров к ним. Каждому макросу присваивается имя. При выполнении макроса макрокоманды, записанные в нем, выполняются последовательно, в том порядке, как были записаны. При этом используются объекты или данные, указанные в аргументах макрокоманды, также можно установить условия выполнения макрокоманды. Выполнение макроса можно инициировать при его открытии или же автоматически, при наступлении какого-либо события. Для связи макроса с событием объекта достаточно в бланке свойств этого объекта записать имя макроса. Такие события определяются в свойствах форм и отчетов и их элементов управления. Макросы удобны для простых ответов на события, но они имеют свои ограничения и не всегда с их помощью можно справиться с возникающими трудностями обработки данных в MS Access.
Например, макрос не возвращает значений, поэтому не может применяться для извлечения информации, введенной пользователем, или рассчитанного значения. Но макросы легко можно использовать как составную часть программ VBA. Их можно конвертировать или включать в процедуры VBA. Макрокоманды вводятся в столбец Макрокоманда. Для ввода макрокоманды можно выбрать ее из раскрывающегося списка макрокоманд или набрать ее имя на клавиатуре. В правой части окна Конструктора макросов выводится Аргументы макрокоманды. Значения аргументов задаются путем выбора их из списка, открывающегося в строке аргумента.
В поле справа от строк выводится пояснение для выбранного аргумента. В строки столбца Примечание вводятся комментарии, описывающие результат выполнения макрокоманды. Все макрокоманды вводятся последовательно, в порядке их выполнения. После ввода всех макрокоманд надо сохранить макрос с помощью команды меню Файл/Сохранить или воспользоваться кнопкой панели инструментов. Также возможно формирование макрокоманд путем перетаскивания мышью объектов из окна базы данных в строку макрокоманд.
19
Например, при перетаскивании таблицы создается макрокоманда Открыть таблицу со всеми необходимыми аргументами.
Возможно перемещение любых объектов, представленных в окне базы данных. Также можно переносить объекты в строки аргументов и тем самым формировать аргументы макрокоманды, которые не могут сформироваться при перемещении объекта в строку макрокоманды. В большинстве макрокоманд при перемещении объекта в любую строку аргументов происходит формирование всех или части аргументов макрокоманды. Например, можно выбрать макрокоманду Открыть таблицу, а затем перетащить мышью значок нужной таблицы в любую строку аргументов. Тогда все строки аргументов заполнятся информацией о выбранной таблице (например, Тип, Имя).
СУБД MS Access сохраняет макросы и проекты в файлах баз данных, которые имеют расширение *.mdb.
Таким образом, с помощью макросов можно добавлять к базе данных инструкций VBA для автоматизации повторяющихся задач и создания более удобного интерфейса.
В заключение, говоря о создании и использовании макросов, следует отметить следующее:
макросы можно записывать при помощи макрорекордера,
записанные макросы можно редактировать в редакторе VBA,
макросы состоят из инструкций VBA, служебных слов и комментариев,
макросы начинаются служебным словом Sub имя_макроса(), а заканчиваются служебным словом End Sub.
некоторые макросы выполняются автоматически. Например, при загрузке MS Word или при закрытии документа,
макросы включаются в проект VBA,
макросы можно создавать и без макрорекордера, непосредственно в редакторе VBA.
2.5 Задания для самопроверки
1. Создать макрос в MS Office Word 2007, вызывающий объект Microsoft
Equation 3.0, c помощью сочетаний клавиш «Ctrl+R».
2. Создать макрос в MS Office Word 2007, меняющий местами символы,
прилегающие к курсору. Например, макрос должен преобразовать слово «елси» при установке курсора в середине слова и его запуске в слово «если». Макрос создать c помощью кнопки на панели инструментов.
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]