В начало
Статьи
Библиотека
Разное

Вот здесь - новый сайт, заходите немедленно!

kift - Коллекция Интересных Фактов и Теорий

А тут можно поболтать и побухтеть, милости просим:

kift - неизданное

Введение в программирование на примере VBA

Часть I Создание макроса Word

Аннотация
Предисловие
Часть I. Макрос Word
     2. Разбор макроса
     3. Внесение исправлений
     Итоги
Часть II. Макрос-приложение
     4. Проектирование
     5. Визуальное редактирование
     6. Запуск и остановка
     7. Вывод данных
     8. Выбор ответа
     9. Перемещение по списку
     10. Обратное перемещение
     11. Новая версия
     12. Реализация новой версии
     13. Завершение работы
     Итоги
Часть III. Объект на основе класса
     14. "Основное" приложение
     15. Компонент-таймер
     Итоги
Послесловие

Занятие 1. Начало работы. Проектирование и запись макроса Word

Первое занятие будет посвящено введению в макросы. Вы сможете спроектировать и записать макрос MS Word, узнав при этом подробности работы со стилями документа.

Подготовка к работе

Начнем обучение с определения понятия макрос.

Первый термин.

Макрос есть средство автоматизации работы в приложениях MS Office.

Используя макросы, вы можете в значительной мере упростить и ускорить свою работу в приложениях MS Office за счет «поручения» макросам рутинной работы. Создавать макрос имеет смысл тогда, когда вам приходится часто и много повторять какую-то (но всегда одну и ту же) последовательность действий по изменению документа, и вы ловите себя на мысли, что бездумно повторяете одни и те же щелчки мышью и нажатия на клавиши – без уделения внимания творчеству.

Постановка задачи

Любая творческая деятельность должна начинаться с создания представления о том, что же, собственно, требуется сделать.

Замечено, что лучшее понимание собственных мыслей достигается при ведении записей, дневников и конспектов. Поэтому весь процесс создания программ следует сопровождать подробными заметками, описывающими каждый шаг.

Запись, содержащая описание представления о том, что требуется от приложения, так и называется – требования.

Итак, составим требования к будущему приложению.

Цель работы – создать макрос Word, который будет автоматически преобразовывать слова и фразы определенного стиля в сноски.

При наборе текста некоторые слова (и фразы) вы будете выделять специальным стилем – назовем его «примечание». Затем, по окончании работы, макрос автоматически преобразует все подобные участки в сноски. Выигрыш времени при большом количестве сносок будет значительный.

Создание стендового документа

Первым шагом работы будет создание «стендового» документа, который мы будем использовать при написании и отладке макроса.

Для этого сделайте следующее:

  • Запустите Word.
  • Наберите сами или скопируйте откуда-нибудь любой текст.

Пусть, для простоты, в нем не будет ни картинок, ни таблиц, никаких других сложных элементов.

Например, так:

Только не открывайте уже существующий документ! Мы будет создавать макрос «с нуля», кроме того, это упростит работу.

Теперь несколько участков надо определить как имеющие стиль примечание.

Если вы забыли, как это делается, кратко напомним.

Сначала надо создать стиль примечание (в предопределенном наборе Word этого стиля нет), относящийся к символам текста, а не к абзацам – ведь мы будем преобразовывать в сноски слова, а не абзацы. Если же вы пожелаете создавать примечания именно из абзацев, то сможете самостоятельно записать макрос, используя знания, полученные при обучении.

Заметим сразу, что название стиля не несет никакой смысловой нагрузки, можно применить любое другое слово – лишь бы название не совпадало ни с каким из имеющихся. Кроме того, в последующей работе вы должны помнить, что это название стиля уже используется.

Для создания нового стиля:

Поместите курсор в тексте, который будет иметь новый стиль. В нашем «стендовом» тексте подразумевается фраза «примечание…».

  • Сделайте это:
  • Поместите курсор (щелкните один раз мышкой) на слове «примечание» в созданном вами тексте.
  • Выполните команду меню ФорматСтиль…

Здесь и далее будет применяться система краткого описания команд меню программы Office. Вышеуказанная запись обозначает, что вам следует щелкнуть один раз в строке меню на пункте «Формат», а затем на появившемся меню на пункте «Стиль…»:

В результате выполнения команды меню появится окно:

Как видите, в этом окне и происходит работа со стилями.

  • Щелкните кнопку Создать…

Везде в подобных случаях указания относятся к окну, с которым идет работа. То есть здесь имеется в виду щелчок по кнопке Создать… окна работы со стилями, которое вы только что вызвали.

Появится окно создания стиля:

  • В поле Имя:, вместо имени Стиль1 (на рисунке эта надпись выделена) введите примечание.
  • Рядом, в падающем списке Стиль выберите значение Знака:

Это делается для того, чтобы стиль применялся к словам, а не к целым абзацам.

Для наглядности изменим внешний вид нового стиля.

  • Щелкните кнопку Формат.
  • В появившемся меню выберите пункт Шрифт.

Появится окно настройки шрифтов.

  • В списке Начертание выберите пункт Полужирный:

  • Щелкните ОК.

Окно настройки шрифтов исчезнет.

  • Еще раз OK.

Вы вернетесь в окно создания стилей.

  • Щелкните Применить.

Теперь вы можете оформить текст.

  • Переместите курсор (одиночным щелчком мыши) в начало будущей сноски:

Для выделения текста быстрее и проще (особенно тем, кто не вполне уверенно владеет мышью) использовать клавиши.

Описание сочетаний клавиш, применяемых для перемещения курсора и выделения символов и слов текста, вы сможете найти в справке MS Word.

  • Дважды нажмите [Ctrl]+[Shift]+[].

Это сочетание приводит к выделению слова (или пробела) слева от курсора.

Текст должен приобрести такой вид:

Теперь примените созданный стиль к выделенному тексту.

  • Для этого на панели инструментов Word найдите падающий список, содержащий все доступные в данном документе стили:

  • И в этом списке выберите пункт с названием нового стиля.

Дополнительные сведения о стилях вы найдете в справочной системе Word.

Обзор справочной системы

Для начинающих дадим краткий обзор использования справочной системы приложений MS Office.

Для вызова справки:

  • Выполните команду меню СправкаСправка по Microsoft Word (в Word 97 – ?Справка по Microsoft Word) или нажмите [F1].

Появится окно справки Word.

  • Выберите вкладку Мастер ответов
  • В поле Выберите действие: введите слово стиль.
  • Нажмите [Enter]

Появится список разделов справки, так или иначе относящихся к макросам (слева внизу):

Как видите, здесь есть пункты Создание нового стиля и другие, которые могут вам помочь.

Помните, что, кроме одиночного слова, вы можете использовать фразы как параметр поиска.

  • Например, попробуйте произвести поиск по фразе Создать стиль.

Как видите, список результатов изменился.

В Word 97 ваши действия будут немного другими:

  • В окне справки, вызванном нажатием [F1], выберите вкладку Предметный указатель.
  • Начните вводить слово стиль в верхнее поле вкладки:

Как видите, по мере ввода слова-запроса происходит перемещение по списку разделов справки. Выбором раздела в нижнем списке (двойным щелчком) вы откроете окно с текстом справки, где, возможно, получите недостающую информацию.

Назначение стиля участкам текста

Продолжим работу с новым документом.

  • Назначьте вновь созданный стиль примечание всем оставшимся участкам, которые впоследствии будут преобразованы.
  • Сохраните созданный документ (команда ФайлСохранить).

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

«Стендовый» документ создан.

Проектирование макроса

Программы MS Office обладают очень полезной возможностью автоматически создавать макросы. При этом происходит запись последовательности выполнения команд этой программы MS Office и нажатий на клавиши. Движения мыши не записываются (за исключением случаев, когда действия мыши приводят к выполнению какой-либо команды программы MS Office).

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

Последовательность действий для преобразования абзаца определенного стиля в макрос, очевидно, будет выглядеть так:

  • найти текст со стилем примечание и выделить его
  • вырезать найденный текст в буфер обмена.

Буфер обмена– специальное средство операционной системы Windows, служащее для обмена данными между разными программами.

  • создать в месте расположения курсора сноску
  • вставить вырезанный ранее текст из буфера обмена в сноску

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

Настало время «бумажной» работы.

  • Заведите тетрадь, в которой вы будете делать заметки, относящиеся к процессу создания программ.
  • Нарисуйте на отдельном листе приведенную выше схему.

Обязательно указывайте, к созданию какой программы, и к какому этапу относится схема. Не забудьте отметить текущую дату!

Подобная «бумажная» работа, казалось бы, не имеет отношения к программированию и, в частности, к созданию макросов. Но представьте себе ситуацию, когда вы обращаетесь к программе после значительного перерыва в работе, предположим, через несколько месяцев – или даже лет. Отсутствие документации сделает работу с программой настолько затруднительной, что вам, может быть, будет проще написать программу заново, нежели разбираться в ее работе. Тем более – если вы захотите изменить, улучшить старую программу.

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

  • найти текст со стилем примечание и выделить его
  • вырезать найденный текст в буфер обмена
  • создать ПОЧТИ в месте расположения курсора сноску (курсор надо будет немного сместить, чтобы сноска выглядела хорошо)
  • курсор САМ перейдет в панель сносок
  • вставить вырезанный ранее текст из буфера обмена в сноску (то есть ПРОСТО вставить текст, вставка всегда происходит в место нахождения курсора, а он уже находится в нужном месте)
  • из панели сносок перейти обратно в текст

Схема также немного изменится:

Для обработки дальнейшего текста потребуется повторить эту последовательность несколько раз – до конца текста. Как это сделать, мы разберем позднее.

В «тетради документации» создайте новую схему, обозначив, что это – «улучшение» предыдущей.

Не следует исправлять схемы, внося в них изменения, не ленитесь рисовать новые! Набор последовательно изменяющихся документов будет иллюстрировать процесс создания программы, а измененная, «замаранная» схема ничего вам не скажет об этом…

Запись макроса, проверка работы

Следующий после проектирования шаг – реализация, воплощение задуманного средствами выбранного языка.

Так как мы еще не приступали к изучению собственно языка программирования, реализация макроса будет выполнена при помощи средства автоматической записи макросов, встроенного в продукты MS Office. Заметьте, что автоматическая запись макросов однотипна для всех продуктов пакета MS Office, хотя детали могут отличаться.

Приступим к записи макроса.

  • Убедитесь, что запущен Word и открыт созданный нами «стендовый» документ. Если открыты другие документы Word – закройте их, предварительно сохранив. Дело в том, что неверно созданный макрос может нарушить работу Word, и вы рискуете потерять свою работу. После отладки макросов такой опасности уже не будет.

Проверьте, что документ имеет «нормальный» вид, при котором вы не видите на экране страницы документа, а текст занимает все окно Word.

  • На всякий случай выполните команду меню ВидОбычный.
  • Перейдите в начало документа. Например, нажатием [Ctrl] + [Home].
  • Выполните команду СервисМакросНачать запись…

Появится окно:

Здесь вы можете определить некоторые параметры будущего макроса.

В поле Имя макроса: следует помещать содержательное имя, характеризующее макрос.

В списке Макрос доступен для: вы можете выбрать, будет ли этот макрос работать только в данном документе, или же вы хотите его использовать во всех документах Word.

Поле Описание: содержит текущую дату и имя пользователя, под которым вы зарегистрированы. Это позволит в дальнейшем определить, кто автор макроса. Пункты Назначить макрос мы пока рассматривать не будем».

  • Назначьте макросу имя, например, СтильСноска, введя его в поле Имя макроса.

Заметьте, что имя должно состоять из одного слова. Желательно – но не обязательно, – использовать английский алфавит. Обязательное условие – имя должно содержать только буквы, цифры и знак подчеркивания. Начинается имя всегда только с буквы.

  • Подтвердите настройки нажатием [Enter].

Появится небольшая панелька с кнопками управления записью макроса:

Левая кнопка (с «квадратиком») предназначена для остановки записи макроса. Правая – с «полосочками» и кружочком, – для «паузы» при записи, когда нужно произвести какие-то манипуляции, но запись их в макрос не нужна.

Наконец, начнем запись.

Иллюстрации сделаны в Word версии 2000. При работе в других версиях внешний вид диалоговых окон может немного отличаться, но принципиальных отличий нет, все манипуляции будут точно такими же.

Как мы определились, сперва надо найти участок текста, имеющий определенный стиль.

Сразу отметим, что при записи макроса допускается нажимать мышью на кнопки меню Word, но операции с текстом следует выполнять при помощи клавиатуры.

  • Выполните команду ПравкаНайти… (или нажмите [Ctrl] + [F]).

Появится диалог для выбора настроек поиска:

  • Щелкните на кнопке Больше.

Диалоговое окно увеличится, появятся дополнительные пункты:

Как видите, курсор (в виде тонкой вертикальной линии) находится в верхнем поле Найти. Ничего не вводите сюда. Ведь наша цель не поиск какого-то определенного текста, а поиск текста с особенным стилем.

  • Щелкните кнопку Формат.
  • В появившемся меню выберите пункт Стиль:

Появится окно выбора стиля.

  • Перейдите на строку со словом примечание:

  • Нажмите [Enter] или щелкните кнопку OK.

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

Итак, параметры поиска настроены. Производим собственно поиск.

  • Щелкните кнопку Найти далее или нажмите [Enter].

Как видите, абзац искомого стиля выделяется в тексте:

Если окно параметров поиска не исчезло, щелкните по кнопке Закрыть в верхнем правом углу диалогового окна параметров поиска (не окна документа и не Word-а!), или нажмите [Esc].

Следующий шаг – «вырезание» найденного участка в буфер обмена.

  • Выполните команду ПравкаВырезать или нажмите [Ctrl]+[X].

Не забывайте, в подобных сокращениях используются латинские буквы

Выделенный участок исчезнет из документа. Не беспокойтесь, он сохранен в буфере обмена, и будет там до следующего занесения данных или до выключения компьютера.

Обратите внимание на расположение курсора. Он находится в начале слова, следующего за найденным участком. Обычно сноски следуют за текстом, а не предшествуют ему. Поэтому переместим курсор в нужное место.

  • Один раз нажмите клавишу [] («стрелка влево»).

Курсор переместился в конец предыдущего слова, как и требовалось.

Теперь создадим сноску.

  • Выполните команду ВставкаСноска…
  • В появившемся диалоге ничего не меняйте, сразу щелкните кнопку OK или нажмите [Enter].

Как видите, внизу окна документа появилась область сносок и готовая заготовка сноски. Курсор уже перенесен в эту область, остается только ввести текст.

  • Для внесения содержимого буфера обмена выполните команду ПравкаВставить или нажмите [Ctrl]+[V].

Текст сноски создан.

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

  • ОДИН раз щелкните мышкой в основном тексте.

Курсор вернется в прежнюю позицию (если вы случайно сделаете два и более щелчка, курсор появится там, где вы щелкнули, а если один раз – он возвращается в прежнюю позицию, туда, где он был при выполнении предыдущих действий, такова особенность Word-а).

Макрос записан.

Теперь остановим запись.

  • Щелкните на кнопке с «квадратиком» на панельке управления записью макроса.

Вы записали свой первый макрос.

Перед тем, как продолжить работу, выполним еще одно действие.

Так как невозможно сразу создать работоспособный макрос, обязательно потребуется отладка. А для отладки следует привести стендовый документ к первоначальному виду. Общепринятое сочетание клавиш для этого – [Ctrl]+[Z].

  • Нажмите [Ctrl]+[Z] несколько раз, до приведения документа к первоначальному виду.
  • Если панель сносок не исчезла – щелкните на кнопке Закрыть на панели сносок.

Еще один способ восстановления документа – закрытие документа без сохранения изменений. Но мы не можем так сделать, так как нужные нам изменения находятся не в видимой части документа, а в макросе. Если документ закрыть – мы утратим макрос.

  • Сохраните документ.

Следующий после реализации этап создания программ – отладка. Во время отладки производится проверка работоспособности программы, обнаружение и исправление ошибок.

Попробуем выполнить созданный макрос – чтобы проверить его работоспособность.

  • Перенесите курсор в начало текста – щелкните один раз где-нибудь в первой строке стендового документа.

Для выполнения макроса сделайте следующее.

  • Выполните команду СервисМакросМакросы… или нажмите [Alt]+[F8].

Появится окно выбора макросов (список в вашем конкретном случае может быть другим):

  • Выберите в списке созданный макрос (мы условились назвать его СтильСноска).
  • Щелкните кнопку Выполнить или нажмите [Enter].

Если выполнение прошло успешно (а это произойдет, если вы правильно выполнили все, описанное ранее), восстановите состояние документа (несколько раз нажмите [Ctrl]+[Z]).

В макросе отсутствует одна важная особенность, предусмотренная нами – автоматическая обработка всего документа.

Поэтому мы не будем останавливаться на сделанном, а осмысленно исправим созданный макрос. Но это – тема следующих занятий.

Не забудьте сохранить созданный макрос! В дальнейшем сохранение результатов работы будет подразумеваться.

Итог занятия

Мы закончили изучение материала первого занятия учебника. Подведем первые итоги.

Во-первых, мы поставили перед собою вполне практическую задачу – создать макрос, с помощью которого можно быстро и легко создать сноски в документе.

Уяснение цели – первый и важнейший этап работы. Как часто, к сожалению, можно наблюдать «программистов», работающих над чем-то, чего они и сами не понимают…

Вторым шагом занятия было создание тестового документа, применяемого для отладки будущего макроса.

В общем случае тестовый документ должен представлять собой «средний», абстрактный документ, содержащий различные стили текста, рисунки, таблицы, ссылки и так далее – это нужно для того, чтобы макрос в своей работе «встретился» со всеми возможными объектами, – а вы смогли бы обнаружить возможные ошибки работы макроса.

Третий, очень важный шаг – проектирование макроса. Начавшись с уяснения цели работы, проектирование переходит к формулированию требований. Если уясненная цель выражается образным, «человеческим» языком, то требования формализированы, каждое слово в них должно быть взвешено и употреблено так, чтобы исключить разночтения.

Формулировка требований – начало «бумажной» работы над любым проектом. Если цель могла быть высказана устно, то требования обязательно записываются.

Следует иметь какое-то хранилище для документации проекта. Для начинающих подойдет тетрадь. Когда вы станете серьезно программировать, то обнаружите, что существуют специальные программы, облегчающие ведение документации – так называемые системы контроля версий.

Проектирование макросов, записываемых средствами приложений MS Office, имеет свою специфику и отличается от «обычного» проектирования, которое будет рассмотрено в следующей части учебника. А именно – следующий шаг создания макроса состоит в том, чтобы, основываясь на требованиях, составить последовательность манипуляций, которую надо выполнить, чтобы достичь поставленной цели. Очевидно, что для этого надо уметь пользоваться приложениями MS Office. При составлении последовательности вам пригодится тестовый документ – на нем вы будете «пробовать» найденное.

Найденную последовательность манипуляций также нужно задокументировать.

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

Далее последовательность действий, описанную абстрактно, желательно предельно детализировать – «нажать [F1], потом нажать [Alt]+[X]» и тому подобное. Это можно не делать, если вы очень хорошо разбираетесь в используемом приложении MS Office – но лучше все-таки сделать…

Помните, что средство записи макроса внесет в макрос все ваши действия. Для того чтобы избегнуть «мусора», надо избегать ненужных манипуляций. В худшем случае – повторите запись.

Не забудьте, что при записи макроса следует использовать клавиатуру. Использование мыши допускается для выбора и выполнения команд меню – но не для перемещения в документе!

Затем вы записали сконструированный макрос. Этот этап создания программ называется реализацией.

Эффективность этого этапа целиком зависит от того, насколько тщательно были выполнены предшествующие шаги.

Пробный запуск макроса знаменует переход к следующему шагу создания программы – отладке.

Подробно об этапах создания программ вы узнаете во второй части учебника.

Hosted by uCoz