Макросы. Большинство пользователей создавая и используя документы Microsoft Office используют стандартные возможности приложений.
Скачать 292.45 Kb.
|
1 МАКРОСЫ. Большинство пользователей создавая и используя документы Microsoft Office используют стандартные возможности приложений. Однако Office дает широкие возможности для автоматизации работы с документами – это программирование в VBA и использование макросов. VBA, язык программирования Visial Basic for Applications, - язык программирования, встроенный в приложения Office, используемый для создания макросов. Макрос и макрорекордер. Вместо повторения однообразных команд в MS Office можно создавать макрос, который будет выполнять эту последовательность команд автоматически. Макрос позволяет ввести одиночную команду, выполняющую ту же задачу, что и при выполнении группы команд. Макрос – это программа, написанная на VBA. VBA – специальная версия Visial Basic (for Application). В Office существует 2 способа создания макроса: запись макрорекордером действий пользователя открытие окна VBA и ввод операторов VBA Чаще всего пользователь использует VBA для коррекции макроса, записанного рекордером. Для работы с макросами в MS Office выводим на ленту вкладку РАЗРАБОТЧИК (кнопка OFFICE/ ПАРАМЕТРЫ Word / НАСТРОЙКА ЛЕНТЫ). 2 Пользователю необходимо продумать стартовые условия для макроса, например, если надо что-то делать с выделенным фрагментом, то перед записью или запуском следует выделить фрагмент. Запись макроса. вкладка РАЗРАБОТЧИК/ЗАПИСЬ МАКРОСА, даем имя макросу. Имя не должно содержать пробелы, начинаться с буквы, не содержать спец.символы. максимальная длина имени – 80 символов. Если созданному макросу присваивается имя, совпадающее с именем встроенного макроса Microsoft Word, то существующий макрос заменяется новым. выполняем команды вкладка РАЗРАБОТЧИК/ОСТАНОВИТЬ ЗАПИСЬ Обычно , макрос доступен для шаблона Normal.dot, он автоматически сохраняется вместе c ним. Запуск макроса. вкладка РАЗРАБОТЧИК/МАКРОСЫ, выбираем нужный и ВЫПОЛНИТЬ. 3 Назначение макросу кнопки на панели быстрого доступа и/или сочетания клавиш. или кнопка ФАЙЛ/ ПАРАМЕТРЫ /НАСТРОЙКА ЛЕНТЫ/МАКРОСЫ/добавить При назначении макросу сочетания клавиш, следует помнить, что в Office зарезервированы многие сочетания и найти «свободное» сочетание непросто. Удаление макроса. вкладка РАЗРАБОТЧИК/МАКРОСЫ, выбираем нужный и УДАЛИТЬ. Изменение текста макроса. При записи макроса рекордер сохраняет последовательность текстовых инструкций на VBA. Это текстовое описание называется исходным кодом. Его можно просмотреть и исправить: вкладка РАЗРАБОТЧИК/МАКРОСЫ, выбираем нужный и ИЗМЕНИТЬ. Для запуска макроса из редактора VBA: кнопка RUN (►) Создание автоматически выполняемых макрокоманд. В Word предусмотрены 5 специальных имен для макрокоманд Имя Назначение AutoExec Выполняется при запуске Word AutoNew Выполняется при создании нового файла AutoOpen Выполняется при открытии файла AutoClose Выполняется при закрытии файла AutoExit Выполняется при выходе из Word VBA – программы состоят из простой последовательности действий: программа получает доступ к объекту, придает ему свойства, производит с ним действия. !!!!!! Про объекты Каждый документ, абзац, … – это объекты. Например, объект Selection – выделенный фрагмент. Сам Word – объект Appication.(см. приложения 2,3) Каждый объект имеет свои характеристики – свойства. Многие объекты выполняют действия, которые называются методами. Например, ActiveDocument.Close (объект - активный документ, метод - закрыть) 4 В соответствии с синтаксисом VBA разделитель- точка. Обычно: объект, точка, метод и/или свойства (через точку) Правая мышь на объекте – список методов, свойств (List Properties/Methods) Последовательность With ….. End With позволяет указать несколько методов/свойств для одного объекта, не повторяя многократно его имя. Практическое задание 1. Запишем макрос с именем «мой_первый_макрос», в который запишем следующие команды: Альбомная ориентация страницы Масштаб просмотра – 33% В результате получим следующий код Sub мой_первый_макрос() ' ' мой_первый_макрос Макрос ' Макрос записан 03.12.07 ' With ActiveDocument.PageSetup .LineNumbering.Active = False .Orientation = wdOrientLandscape .TopMargin = CentimetersToPoints(1.5) .BottomMargin = CentimetersToPoints(3) .LeftMargin = CentimetersToPoints(2) .RightMargin = CentimetersToPoints(2) .Gutter = CentimetersToPoints(0) .HeaderDistance = CentimetersToPoints(1.25) .FooterDistance = CentimetersToPoints(1.25) .PageWidth = CentimetersToPoints(29.7) .PageHeight = CentimetersToPoints(21) .FirstPageTray = wdPrinterDefaultBin .OtherPagesTray = wdPrinterDefaultBin .SectionStart = wdSectionNewPage .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False .VerticalAlignment = wdAlignVerticalTop .SuppressEndnotes = False .MirrorMargins = False .TwoPagesOnOne = False .GutterPos = wdGutterPosLeft End With ActiveWindow.ActivePane.View.Zoom.Percentage = 33 End Sub Это комментарии, начинаются с ', комментарии- зеленые Sub/ End Sub – начало/конец макроса, все ключевые слова VBA- синие With/ End With – несколько действий для одного объекта. Отступы для удобства чтения 5 Можно исправить текст этого макроса, например, изменим процент, например 33 на 42 изменим поля заменим False на True в строке .LineNumbering.Active = False (будет автонумерация строк) заменим в строке .Orientation = wdOrientLandscape на wdOrientPortrait , ориентация бумаги будет книжная После сохранения данный макрос можно вновь запустить для любого другого документа. Практическое задание 2. Создадим макрос создающий окно сообщений при открытии файла. MessageBox - окно сообщения, которое появляется на экране. Для вывода MessageBox при открытии какого-либо файла MS Word необходимо создать макрос с именем AutoOpen и внутри него вызвать функцию msgbox. Это будет выглядеть так : Sub AutoOpen() ' Данная функция вызывается при открытии документа ' ' Выводим MessageBox MsgBox "Здравствуй, дружок!" ' End Sub Последовательность действий (один из вариантов): вкладка РАЗРАБОТЧИК/МАКРОСЫ, даем любое имя и СОЗДАТЬ В окне редактора VBA, меняю имя и печатаем текст программы на VBA Сохраняем Запускаем Теперь при открытии каждого документа, будем получим сообщение. Команда для вывода окна сообщений имеет вид: MsgBox (promt, button,title,helpfile) 6 • promt – обязательный аргумент, определяющий текст, который появится в окне сообщения • button – необязательный аргумент, определяющий тип окна сообщения, наличие кнопок Ок, Отмена, Стоп, Пропустить и т.д • title – необязательный аргумент, определяющий заголовок окна • helpfile– необязательный аргумент, определяющий какой файл справки будет открыт, если пользователь нажмет F1 Задание 1 для самостоятельной работы Создать макрос в Excel изменяющий шрифт в активной ячейке в зависимости от ее значения. Sub Макрос100() ' ' Макрос100 Макрос ' Dim CellValue As Integer CellValue = ActiveCell.Value If CellValue > 20 Then With Selection.Font .Color = vbRed .FontStyle = "полужирный" End With Else With Selection.Font .Color = vbGreen .Size = 19 End With End If ' End Sub 7 Задание 2 для самостоятельной работы Создание простого диалогового окна. Для создания диалогового окна необходимо создать визуальный объект, именуемый формой. Форма – аналог окна, на которое можно помещать элементы управления (кнопки, переключатели, флажки и т.п). Каждая форма является частью пользовательского интерфейса. Каждая форма является объектом,и, в свою очередь, содержит множество объектов, каждым из которых можно управлять по отдельности. Создание формы: Окно VBA (ALT+F11) INSERT/New Form или UserForm (вставка новой формы) В окне Properties можно настроить свойства формы, например свойство Caption позволяет дать форме имя Используя панель ToolBox устанавливаем на форму элементы управления: • Label – надпись • CommandButton- командная кнопка для выполнения какого-либо действия • TextBox - текстовое поле • Image – рисунок • ChtckBox – флажок • Т.д. Настраиваем работу каждого элемента. Например, 2 щелчка на CommandButton даст возможность написать те операторы VBA, которые должны выполняться при нажатии на эту кнопку. Чтобы такое диалоговое окно появлялось при запуске макроса, необходимо добавить в макрос следующие строки: Load UserForm1 UserForm1.Show Т.к. освоение VBA требует много времени и знаний основ алгоритмизации, пользователи обычно записывают команды Word с помощью макрорекордера, затем исправляют и/или дописывают макрос. |