Введение в программирование на примере VBA
Часть I Создание макроса Word
Занятие 1. Начало работы. Проектирование и запись макроса WordПервое занятие будет посвящено введению в макросы. Вы сможете спроектировать и записать макрос MS Word, узнав при этом подробности работы со стилями документа. Подготовка к работеНачнем обучение с определения понятия макрос. Первый термин. Макрос есть средство автоматизации работы в приложениях MS Office. Используя макросы, вы можете в значительной мере упростить и ускорить свою работу в приложениях MS Office за счет «поручения» макросам рутинной работы. Создавать макрос имеет смысл тогда, когда вам приходится часто и много повторять какую-то (но всегда одну и ту же) последовательность действий по изменению документа, и вы ловите себя на мысли, что бездумно повторяете одни и те же щелчки мышью и нажатия на клавиши – без уделения внимания творчеству. Постановка задачиЛюбая творческая деятельность должна начинаться с создания представления о том, что же, собственно, требуется сделать. Замечено, что лучшее понимание собственных мыслей достигается при ведении записей, дневников и конспектов. Поэтому весь процесс создания программ следует сопровождать подробными заметками, описывающими каждый шаг. Запись, содержащая описание представления о том, что требуется от приложения, так и называется – требования. Итак, составим требования к будущему приложению. Цель работы – создать макрос Word, который будет автоматически преобразовывать слова и фразы определенного стиля в сноски. При наборе текста некоторые слова (и фразы) вы будете выделять специальным стилем – назовем его «примечание». Затем, по окончании работы, макрос автоматически преобразует все подобные участки в сноски. Выигрыш времени при большом количестве сносок будет значительный. Создание стендового документаПервым шагом работы будет создание «стендового» документа, который мы будем использовать при написании и отладке макроса. Для этого сделайте следующее:
Пусть, для простоты, в нем не будет ни картинок, ни таблиц, никаких других сложных элементов. Например, так: Только не открывайте уже существующий документ! Мы будет создавать макрос «с нуля», кроме того, это упростит работу. Теперь несколько участков надо определить как имеющие стиль примечание. Если вы забыли, как это делается, кратко напомним. Сначала надо создать стиль примечание (в предопределенном наборе Word этого стиля нет), относящийся к символам текста, а не к абзацам – ведь мы будем преобразовывать в сноски слова, а не абзацы. Если же вы пожелаете создавать примечания именно из абзацев, то сможете самостоятельно записать макрос, используя знания, полученные при обучении. Заметим сразу, что название стиля не несет никакой смысловой нагрузки, можно применить любое другое слово – лишь бы название не совпадало ни с каким из имеющихся. Кроме того, в последующей работе вы должны помнить, что это название стиля уже используется. Для создания нового стиля: Поместите курсор в тексте, который будет иметь новый стиль. В нашем «стендовом» тексте подразумевается фраза «примечание…».
Здесь и далее будет применяться система краткого описания команд меню программы Office. Вышеуказанная запись обозначает, что вам следует щелкнуть один раз в строке меню на пункте , а затем на появившемся меню на пункте :В результате выполнения команды меню появится окно: Как видите, в этом окне и происходит работа со стилями.
Везде в подобных случаях указания относятся к окну, с которым идет работа. То есть здесь имеется в виду щелчок по кнопке окна работы со стилями, которое вы только что вызвали.Появится окно создания стиля:
Это делается для того, чтобы стиль применялся к словам, а не к целым абзацам. Для наглядности изменим внешний вид нового стиля.
Появится окно настройки шрифтов.
Окно настройки шрифтов исчезнет.
Вы вернетесь в окно создания стилей.
Теперь вы можете оформить текст.
Для выделения текста быстрее и проще (особенно тем, кто не вполне уверенно владеет мышью) использовать клавиши. Описание сочетаний клавиш, применяемых для перемещения курсора и выделения символов и слов текста, вы сможете найти в справке MS Word.
Это сочетание приводит к выделению слова (или пробела) слева от курсора. Текст должен приобрести такой вид: Теперь примените созданный стиль к выделенному тексту.
Дополнительные сведения о стилях вы найдете в справочной системе Word. Обзор справочной системыДля начинающих дадим краткий обзор использования справочной системы приложений MS Office. Для вызова справки:
Появится окно справки Word.
Появится список разделов справки, так или иначе относящихся к макросам (слева внизу): Как видите, здесь есть пункты Создание нового стиля и другие, которые могут вам помочь. Помните, что, кроме одиночного слова, вы можете использовать фразы как параметр поиска.
Как видите, список результатов изменился. В Word 97 ваши действия будут немного другими:
Как видите, по мере ввода слова-запроса происходит перемещение по списку разделов справки. Выбором раздела в нижнем списке (двойным щелчком) вы откроете окно с текстом справки, где, возможно, получите недостающую информацию. Назначение стиля участкам текстаПродолжим работу с новым документом.
Присвойте документу имя, по которому вы легко поймете предназначение документа, например: макрос_word_1. При сохранении позаботьтесь, чтобы документ был размещен в месте, где вы его легко найдете. Рекомендуется создать специальную папку, в которой вы будете хранить файлы, создаваемые в процессе обучения. «Стендовый» документ создан. Проектирование макросаПрограммы MS Office обладают очень полезной возможностью автоматически создавать макросы. При этом происходит запись последовательности выполнения команд этой программы MS Office и нажатий на клавиши. Движения мыши не записываются (за исключением случаев, когда действия мыши приводят к выполнению какой-либо команды программы MS Office). Для записи макроса сначала следует определить (спроектировать) последовательность действий, которую вы хотите записать. Последовательность действий для преобразования абзаца определенного стиля в макрос, очевидно, будет выглядеть так:
Буфер обмена– специальное средство операционной системы Windows, служащее для обмена данными между разными программами.
Эту последовательность можно изобразить наглядно, в виде схемы – так и называемой: схема последовательности действий: Настало время «бумажной» работы.
Обязательно указывайте, к созданию какой программы, и к какому этапу относится схема. Не забудьте отметить текущую дату! Подобная «бумажная» работа, казалось бы, не имеет отношения к программированию и, в частности, к созданию макросов. Но представьте себе ситуацию, когда вы обращаетесь к программе после значительного перерыва в работе, предположим, через несколько месяцев – или даже лет. Отсутствие документации сделает работу с программой настолько затруднительной, что вам, может быть, будет проще написать программу заново, нежели разбираться в ее работе. Тем более – если вы захотите изменить, улучшить старую программу. Когда вы попробуете выполнить спроектированную последовательность, то увидите, что ее следует немного изменить, так, чтобы она выглядела так:
Схема также немного изменится: Для обработки дальнейшего текста потребуется повторить эту последовательность несколько раз – до конца текста. Как это сделать, мы разберем позднее. В «тетради документации» создайте новую схему, обозначив, что это – «улучшение» предыдущей. Не следует исправлять схемы, внося в них изменения, не ленитесь рисовать новые! Набор последовательно изменяющихся документов будет иллюстрировать процесс создания программы, а измененная, «замаранная» схема ничего вам не скажет об этом… Запись макроса, проверка работыСледующий после проектирования шаг – реализация, воплощение задуманного средствами выбранного языка. Так как мы еще не приступали к изучению собственно языка программирования, реализация макроса будет выполнена при помощи средства автоматической записи макросов, встроенного в продукты MS Office. Заметьте, что автоматическая запись макросов однотипна для всех продуктов пакета MS Office, хотя детали могут отличаться. Приступим к записи макроса.
Проверьте, что документ имеет «нормальный» вид, при котором вы не видите на экране страницы документа, а текст занимает все окно Word.
Появится окно: Здесь вы можете определить некоторые параметры будущего макроса. В поле следует помещать содержательное имя, характеризующее макрос.В списке вы можете выбрать, будет ли этот макрос работать только в данном документе, или же вы хотите его использовать во всех документах Word.Поле содержит текущую дату и имя пользователя, под которым вы зарегистрированы. Это позволит в дальнейшем определить, кто автор макроса. Пункты мы пока рассматривать не будем».
Заметьте, что имя должно состоять из одного слова. Желательно – но не обязательно, – использовать английский алфавит. Обязательное условие – имя должно содержать только буквы, цифры и знак подчеркивания. Начинается имя всегда только с буквы.
Появится небольшая панелька с кнопками управления записью макроса: Левая кнопка (с «квадратиком») предназначена для остановки записи макроса. Правая – с «полосочками» и кружочком, – для «паузы» при записи, когда нужно произвести какие-то манипуляции, но запись их в макрос не нужна. Наконец, начнем запись. Иллюстрации сделаны в Word версии 2000. При работе в других версиях внешний вид диалоговых окон может немного отличаться, но принципиальных отличий нет, все манипуляции будут точно такими же. Как мы определились, сперва надо найти участок текста, имеющий определенный стиль. Сразу отметим, что при записи макроса допускается нажимать мышью на кнопки меню Word, но операции с текстом следует выполнять при помощи клавиатуры.
Появится диалог для выбора настроек поиска:
Диалоговое окно увеличится, появятся дополнительные пункты: Как видите, курсор (в виде тонкой вертикальной линии) находится в верхнем поле . Ничего не вводите сюда. Ведь наша цель не поиск какого-то определенного текста, а поиск текста с особенным стилем.
Появится окно выбора стиля.
Как видите, в окне поиска сразу под полем появилась строка, уточняющая параметры поиска:Итак, параметры поиска настроены. Производим собственно поиск.
Как видите, абзац искомого стиля выделяется в тексте: Если окно параметров поиска не исчезло, щелкните по кнопке [Esc]. в верхнем правом углу диалогового окна параметров поиска (не окна документа и не Word-а!), или нажмитеСледующий шаг – «вырезание» найденного участка в буфер обмена.
Не забывайте, в подобных сокращениях используются латинские буквы Выделенный участок исчезнет из документа. Не беспокойтесь, он сохранен в буфере обмена, и будет там до следующего занесения данных или до выключения компьютера. Обратите внимание на расположение курсора. Он находится в начале слова, следующего за найденным участком. Обычно сноски следуют за текстом, а не предшествуют ему. Поэтому переместим курсор в нужное место.
Курсор переместился в конец предыдущего слова, как и требовалось. Теперь создадим сноску.
Как видите, внизу окна документа появилась область сносок и готовая заготовка сноски. Курсор уже перенесен в эту область, остается только ввести текст.
Текст сноски создан. Теперь для продолжения работы с самого начала следует перенести курсор обратно в основную область документа.
Курсор вернется в прежнюю позицию (если вы случайно сделаете два и более щелчка, курсор появится там, где вы щелкнули, а если один раз – он возвращается в прежнюю позицию, туда, где он был при выполнении предыдущих действий, такова особенность Word-а). Макрос записан. Теперь остановим запись.
Вы записали свой первый макрос. Перед тем, как продолжить работу, выполним еще одно действие. Так как невозможно сразу создать работоспособный макрос, обязательно потребуется отладка. А для отладки следует привести стендовый документ к первоначальному виду. Общепринятое сочетание клавиш для этого – [Ctrl]+[Z].
Еще один способ восстановления документа – закрытие документа без сохранения изменений. Но мы не можем так сделать, так как нужные нам изменения находятся не в видимой части документа, а в макросе. Если документ закрыть – мы утратим макрос.
Следующий после реализации этап создания программ – отладка. Во время отладки производится проверка работоспособности программы, обнаружение и исправление ошибок. Попробуем выполнить созданный макрос – чтобы проверить его работоспособность.
Для выполнения макроса сделайте следующее.
Появится окно выбора макросов (список в вашем конкретном случае может быть другим):
Если выполнение прошло успешно (а это произойдет, если вы правильно выполнили все, описанное ранее), восстановите состояние документа (несколько раз нажмите [Ctrl]+[Z]). В макросе отсутствует одна важная особенность, предусмотренная нами – автоматическая обработка всего документа. Поэтому мы не будем останавливаться на сделанном, а осмысленно исправим созданный макрос. Но это – тема следующих занятий. Не забудьте сохранить созданный макрос! В дальнейшем сохранение результатов работы будет подразумеваться. Итог занятияМы закончили изучение материала первого занятия учебника. Подведем первые итоги. Во-первых, мы поставили перед собою вполне практическую задачу – создать макрос, с помощью которого можно быстро и легко создать сноски в документе. Уяснение цели – первый и важнейший этап работы. Как часто, к сожалению, можно наблюдать «программистов», работающих над чем-то, чего они и сами не понимают… Вторым шагом занятия было создание тестового документа, применяемого для отладки будущего макроса. В общем случае тестовый документ должен представлять собой «средний», абстрактный документ, содержащий различные стили текста, рисунки, таблицы, ссылки и так далее – это нужно для того, чтобы макрос в своей работе «встретился» со всеми возможными объектами, – а вы смогли бы обнаружить возможные ошибки работы макроса. Третий, очень важный шаг – проектирование макроса. Начавшись с уяснения цели работы, проектирование переходит к формулированию требований. Если уясненная цель выражается образным, «человеческим» языком, то требования формализированы, каждое слово в них должно быть взвешено и употреблено так, чтобы исключить разночтения. Формулировка требований – начало «бумажной» работы над любым проектом. Если цель могла быть высказана устно, то требования обязательно записываются. Следует иметь какое-то хранилище для документации проекта. Для начинающих подойдет тетрадь. Когда вы станете серьезно программировать, то обнаружите, что существуют специальные программы, облегчающие ведение документации – так называемые системы контроля версий. Проектирование макросов, записываемых средствами приложений MS Office, имеет свою специфику и отличается от «обычного» проектирования, которое будет рассмотрено в следующей части учебника. А именно – следующий шаг создания макроса состоит в том, чтобы, основываясь на требованиях, составить последовательность манипуляций, которую надо выполнить, чтобы достичь поставленной цели. Очевидно, что для этого надо уметь пользоваться приложениями MS Office. При составлении последовательности вам пригодится тестовый документ – на нем вы будете «пробовать» найденное. Найденную последовательность манипуляций также нужно задокументировать. Документацию к последовательности манипуляций целесообразно отобразить графически – в виде схемы последовательности действий. Далее последовательность действий, описанную абстрактно, желательно предельно детализировать – «нажать [F1], потом нажать [Alt]+[X]» и тому подобное. Это можно не делать, если вы очень хорошо разбираетесь в используемом приложении MS Office – но лучше все-таки сделать… Помните, что средство записи макроса внесет в макрос все ваши действия. Для того чтобы избегнуть «мусора», надо избегать ненужных манипуляций. В худшем случае – повторите запись. Не забудьте, что при записи макроса следует использовать клавиатуру. Использование мыши допускается для выбора и выполнения команд меню – но не для перемещения в документе! Затем вы записали сконструированный макрос. Этот этап создания программ называется реализацией. Эффективность этого этапа целиком зависит от того, насколько тщательно были выполнены предшествующие шаги. Пробный запуск макроса знаменует переход к следующему шагу создания программы – отладке. Подробно об этапах создания программ вы узнаете во второй части учебника. |