Книга: Тайны и секреты компьютера

Глава 6. Волшебный мир макросов

Глава 6. Волшебный мир макросов

О том, как создавать программы на встроенном в Microsoft Office языке программирования Visual Basic for Applications (VBA), было подробно рассказано в предыдущих главах. Но теория будет еще полезнее, если подкрепить ее практикой — примерами реально работающих программ, написанных на этом языке. А таких — немало. К сожалению, многие из них не такие уж и известные, но весьма интересные и полезные для очень многих пользователей.

В этой главе вы найдете небольшой обзор существующих на настоящее время программ на языке VBA, работающих в среде Microsoft Office. Обратите внимание на них — если вы часто и много используете текстовый редактор Microsoft Word или другие компоненты Office, то они могут серьезно помочь вам в работе. Отличительная особенность большинства программ, описанных здесь — то, что они распространяются с открытым кодом. То есть — вы можете свободно просматривать текст программ, исследовать его, учиться на опыте ваших коллег, изучая код их программ и стремясь понять предназначение каждой строчки и каждой команды.

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

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

«Untaco» — расшифровка чисел и их обновление

Довольно часто в бухгалтерской и финансовой документации вместе с цифровой записью числа требуется указывать и его текстовую расшифровку — например, писать «сто» после числа 100. Довольно ясно, что делать это вручную утомительно, да и небезопасно — можно легко ошибиться. И не случайно данный процесс весьма большое количество пользователей решило поручить макросам — программам на VBA. Дополнений для Word, помещающие в документ текстовые расшифровки чисел, создано немало.

Однако программа Untaco (рис. 6.1) серьезно отличается от своих аналогов одной особенностью. Дело в том, что Untaco умеет автоматически обновлять те расшифровки, которые вставлены с ее помощью. Если после вставления расшифровки числа вы измените его значение, то расшифровка тоже соответственно изменится при сохранении, печати документа или вызове специальной команды, и вам не придется вставлять ее повторно. При работе с деловыми документами, бухгалтерской отчетностью такая автоматическая синхронизация расшифровки числа с его значением весьма важна, так как любое несогласование здесь может вызвать серьезные последствия.


Рис. 6.1.Untaco — многофункциональный конвертор «число-текст» с возможностью автоматического обновления расшифровок чисел.

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

В Untaco реализованы интересные технические решения, связанные с работой с переменными в документе, закладками, интеллектуальной обработкой текстовых строк, а также с операциями над самими макросами (их копирование и удаление). Также в Untaco показано, как осуществить подмену стандартных команд Word (например, «Сохранить», "Печать") макрокомандами. Простой и удобный инсталлятор демонстрирует возможность помещения компонентов программ в шаблон Normal.dot.

Программа Untaco доступна с адресов: http://antorlov.chat.ru или http://www.newtech.ru/~orlov.

TreeView — кнопка «Пуск» для Microsoft Word

Данная разработка способна серьезно облегчить труд тех, чей рабочий инструмент — Microsoft Office. Коротко можно сказать, что она — окно "Открыть файл", сделанное по образцу папки Internet Explorer'a «Избранное» (или меню Windows "Пуск"), — в виде выпадающего меню отображаются все документы в текущей папке и в любых других, указанных пользователем, что позволяет искать и открывать документы, не выходя из Word и не роясь в изрядно поднадоевшем окне Word «Открыть» (рис. 6.2).


Рис. 6.2.TreeView. Чтобы открыть нужный файл, просто пробегитесь мышкой по этим ниспадающим меню и найдите его.

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

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

Автор «TreeView» — Антонюк Дмитрий Александрович из города Комсомольск-на Амуре. Программу можно загрузить с сайта разработчика http://treeview.chat.ru.

SuperTypist — набиратель текстов

Небольшая программа SuperTypist, созданная Константином Ушаковым, предназначена для быстрого и удобного набора текстов. Для работы с программой сначала нужно создать небольшой словарь с теми словами, которые, по Вашему желанию, должны набираться автоматически (о том, как создавать этот словарь и куда его потом помещать, написано в инструкции к программе). Когда же вы начнете набирать какое-нибудь слово из словаря, макрос автоматически подставит его окончание, как только это слово будет однозначно определено. Если вы желаете набрать другое слово, начинающееся с тех же букв, что и записанное в словаре, то просто продолжайте набор, и подставленное слово исчезнет. А если вы согласны с макросом, то нажмите стрелку влево, и курсор автоматически перейдет к концу вставленного слова.

Изучение SuperTypist будет полезно при необходимости обеспечить работу программы с файлами, а также переназначить клавиши, — для выполнения своих функций SuperTypist делает так, что программа, проверяющая наличие набираемого слова в словаре и помещающая его в документ срабатывает каждый раз, когда на клавиатуре нажимается какая-либо буквенная клавиша.

Загрузить SuperTypist можно из Библиотеки Microsoft Office Extensions, расположенной по адресу http://www.microsoft.ru/offext.

ВерсткаТекстаКнижкой — книгоиздательство в Word

Иногда при подготовке документов в Microsoft Word возникает необходимость распечатать их в виде книжки размером в половину листа, так, чтобы после печати ее можно было бы сшить посередине. Такую книжку удобно взять с собой, да и просто читать, а для учебных материалов подобный вид был бы самым удобным. Зачастую методические пособия в высших учебных заведениях выпускаются именно в таком формате.

До недавнего времени стандартными средствами Word сделать такую книжку было невозможно. Многие пользователи прибегали к различным ухищрениям (к примеру, устанавливая «зеркальные» поля в полстраницы и пропуская каждый лист через принтер четыре раза) или пытались освоить специализированные программы верстки вроде PageMaker'а. В любом случае создание брошюры было весьма непростой задачей. В OfficeXP возможность делать брошюры появилась, однако просмотреть макет перед печатью и вывести на принтер его отдельные листы невозможно, так что при сбое принтера приходится перепечатывать весь макет заново. Кроме того, системные требования данного пакета программ весьма немалые.

Но книжку можно спокойно сделать в Word любой версии, начиная с 97-го, с помощью программы, написанной специально для этого и называющейся просто — «ВерсткаТекстаКнижкой». Она использует довольно оригинальный способ создания макета книжки, в качестве основы для него взяв надписи — обьекты Microsoft Word, способные содержать в себе текст. Надписи могут быть между собою связаны, и текст, вводимый в одну из них, при исчерпании свободного места в ней перетечет в другую, следующую по порядку связывания надпись. Эта возможность и используется в программе, которая заполняет макет книжки связанными надписями, соответствующими ее отдельным страничкам, а затем копирует в них текст из исходного документа. В результате получается макет книжки, готовый к печати (рис. 6.3), который в случае необходимости можно спокойно редактировать, а при сбое в процессе печати нетрудно перепечатать любой лист макета. Макет составлен так, что каждый второй лист в нем является обратной стороной первого, поэтому на принтере с двусторонней печатью получить готовую книжку можно, просто послав на печать документ со сверстанным макетом. На обычных принтерах необходимо посылать на печать вначале нечетные, а затем четные страницы макета (для автоматизации данного процесса служит специальный макрос, входящий в комплект поставки программы). При необходимости макет книжки можно перенести для печати на другой компьютер, где данная программа не установлена.


Рис. 6.3. Сделать книгу в Word теперь не проблема. Вот написать бы еще ее сначала

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

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

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

Также в комплект поставки входит программа «Файлообьединялка», которая поможет вам обьединить содержимое множества однотипных файлов в один.

Разумеется, у программы есть и недостатки, в основном обусловленные ограничениями Word в плане работы с надписями. Так, при наличии в исходном документе таблиц процесс верстки брошюры серьезно затрудняется, так как ширину таблиц приходится подгонять под ширину полученных страничек. Иногда при попадании таблицы на границу страничек пара ее строчек, примыкающих к этой границе, перестают отображаться (следствие ошибки в самом Word'е) — приходится принудительно разбивать таблицу. В случае наличия в исходном документе рисунков зачастую необходимо неоднократно переверстывать макет заново (впрочем, это нетрудно благодаря входящей в комплект дополнительной утилите), подбирая нужный размер рисунка, — программа их не масштабирует. Впрочем, данные проблемы возникают лишь при работе со сложными документами, содержащими большое количество таблиц и графики.

Ознакомиться с кодом компонентов пакета программ «ВерсткаТекстаКнижкой» рекомендуется всем, кто интересуется возможностями VBA по работе с содержимым документа, пользовательскими формами. Также весьма примечателен инсталлятор программы, который нетрудно приспособить для установки собственных разработок.

"ВерсткуТекстаКнижкой" можно загрузить с адресов:

http://antorlov.chat.ru или http://www.newtech.ru/~orlov.

Красоты из глубин Word

Когда обычный пользователь достигает определенных высот во владении компьютерными технологиями, то у него практически всегда возникает желание как-нибудь переделать привычные программы, настроить их под свои требования. Гибкая система настройки панелей и меню в Microsoft Word дает возможность это сделать весьма неплохо. Однако при добавлении новых команд на панели инструментов часто хочется присвоить командам красочные значки, отличающиеся от однообразных стандартных. Но набор значков, предоставляемый Word'ом по умолчанию в выпадающем списке выбора иконки для кнопки, не больно-то и велик…

Эту проблему успешно решает программа "Генератор иконок". Впрочем, вернее ее бы можно было бы назвать "Вытаскиватель иконок". Дело в том, что Microsoft Office содержит в себе, в своих исполняемых файлах и библиотеках около 3000 значков. Эти значки по умолчанию назначены разным командам, большую часть которых обычный пользователь никогда не вызывает по причине ненадобности или отсутствия информации о них. Но это не значит, что значки для этих команд нельзя использовать для своих целей! Icon Generator извлечет из «недр» Word'а эти значки, разместив их на специально созданных панелях инструментов (рис. 6.4), так что вам останется лишь скопировать их на свои панели с помощью стандартной функции "Копировать значок" режима настройки панелей. Пусть ваш Word расцветится красивыми иконками!


Рис. 6.4. И все это хранит в себе Word

Если Вы разрабатываете макросы для Word, то эта программа облегчит Вам жизнь — Вы сможете назначить своим макросам оригинальные иконки, не тратя время на их рисование. В шаблоне с макросом также имеется готовая подборка специально отобранных красивых значков.

Программу "Генератор иконок" можно загрузить с адресов

http://antorlov.chat.ru/develop.htm или http://www.newtech.ru/~orlov/develop.htm.

Для студентов и программистов

Пакет макросов, который называется очень просто — "Дополнения для Word", создан Петром Каньковски и доступен с адреса http://kankowski.narod.ru. Основное его предназначение — расширение возможностей пользователя Word, в особенности в плане составления документов, удовлетворяющих требованиям современных научных издательств и ВУЗов. Так, в комплекте пакета есть шаблоны «Реферат», «Заявление», позволяющие быстро оформить соответствующий документ, а параметры основного шаблона программы во многом соответствуют российским требованиям к оформлению научных публикаций. При установке программы большому расширению подвергается список автозамены — после установки пакета в него добавляются многие сокращения, позволяющие серьезно сэкономить время при наборе текста (например, «док-т» заменяется на «документ», «эл-т» — на "элемент").

"Дополнения для Word", а также другие разработки Петра Каньковски особенно заинтересуют тех, кто создает программы на VBA, так как все они поставляются с открытым исходным кодом и подробными комментариями в нем. Особенно примечательны специальные компоненты для разработчиков, доступные так же с сайта Петра — "Пакет для разработчиков" и "Ice In Eyes" (доступный со страницы http://kankowski.narod.ru/dev.htm). Помимо действительно полезных макросов, например, набора математических функций, и коллекции красивых значков, программисты на VBA найдут в этих разработках и коды функций работы из VBA с API — программным интерфейсом Windows, позволяющие отображать диалоговые окна Windows, вызывать команды операционной системы. Одна из разработок представляет собой HTML-конвертор, позволяющий эффективно и качественно преобразовать файл Excel в web-страницу. Этот конвертор в отличие от встроенных в Office средств сохранения данных в формате HTML генерирует компактный и корректный код.

Весьма примечательным является «Справка» к пакету, содержащая, помимо его описания, еще и обширную подборку советов по работе с Word. С "Дополнениями…" поставляется методичка "Как написать реферат", которая может помочь студентам в учебной работе с излишне строгими преподавателями. К сожалению, у пакета есть и мелкие дефекты (например, отключение без запроса отображения горизонтальной линии прокрутки вместе с кнопками выбора вида документа, развертывание по умолчанию окна Справки на весь экран), однако они не умаляют его достоинств и не мешают с ним работать.

На сайте Петра есть подборка ссылок на Интернет-ресурсы, посвященные VBA, а также сборник полезных советов по работе с Word и использованию API.

WOPR — Woody's Office Portal

WORP, или Woody's Office Portal — это большой и мощный пакет макросов, выполняющих самые разнообразные задачи, — от предоставления пользователю усовершенствованных диалоговых окон сохранения и открытия файлов до создания и печати конвертов или буклетов. С помощью компонентов WORP можно вставить в документ зеркальное отображение любого его фрагмента, свободно изменять даты создания и изменения файлов, удобно настраивать параметры вставляемых рисунков. WORP поможет пользователю в восстановлении поврежденных документов Word или в управлении стилями.

Сайт программы расположен по адресу http://www.wopr.com. Основная версия программы работает под Word 97, однако на сайте есть модули, использующие возможности новых версий Word. К сожалению, по умолчанию код WORP закрыт от просмотра, однако вам может помочь решить эту проблему упоминаемая в прошлой главе бесплатная версия программы AVPR с сайта www.passwords.ru. Программа распространяется по принципу Shareware, а объем установочного файла превышает три мегабайта.

Библиотека макросов

В Интернете есть целый сайт, посвященный программам на VBA. Это — неоднократно уже упомянутая Библиотека Microsoft Office Extensions — http://www.microsoft.ru/offext. Там представлены макросы на любой вкус: и для набора текстов, и для бухгалтерской работы, и даже игры. На сайте программы Microsoft Office Extensions есть также специальный раздел «VBA-форум», в котором публикуются статьи специалистов по VBA как для начинающих, так и для опытных разработчиков.


Рис. 6.5. Знак качества PC Magazine

Всем программам, помещаемым в Библиотеку Microsoft Office Extensions, выдается специальный Знак Качества "Yes, Its Works" (рис. 6.5). Его можно размещать на сайте программы, на коробках с дистрибутивом, в общем, где угодно! Так что если вы хотите, чтобы ваша программа имела престижную оценку от Тестовой лаборатории PC Magazine — обязательно отправьте ее в Библиотеку.

Но самое главное — если вы отправите в Библиотеку свою программу, то у вас появится шанс получить приз за нее, если ваше творение будет признано наилучшим. На сайте Microsoft Office Extensions проводится конкурс на лучшую разработку для Microsoft Office, и победителям этого конкурса выдаются вполне реальные призы, например, персональный компьютер или клавиатура с оптической мышью. Условия получения призов представлены на сайте конкурса. Фактически конкурс Microsoft Office Extensions является единственным местом в Сети, где разработчики бесплатных программ могут получить достойное вознаграждение за свой труд.

Когда вы наконец-то решите представить свою разработку на конкурс, то для начала посетите страницу http://www.microsoft.ru/offext/rules и загрузите с нее Лицензионное соглашение и Анкету разработчика, которые вам необходимо заполнить. Вы можете свободно изменять Лицензионное соглашение так, как вам заблагорассудится, но в Анкете должны указать точные данные. Помните, что оба этих документа будут распространяться вместе с вашей разработкой, так что не указывайте там слишком конфиденциальных данных.

Затем поместите вашу разработку, а также Анкету и Лицензионное соглашение в архив формата Zip и отошлите его в виде аттачмента по адресу [email protected]. В течение 24 часов вам должно придти потверждение получения вашей разработки, отправляемое автоматически. Если оно не пришло, то повторите отправку — видно, почтовые серверы сработали с ошибками.

Требования к представляемым программам немногочисленные и вполне разумные. Во-первых, программа должна работать в русской версии Microsoft Office XP. Во-вторых, она не должна повреждать какие-либо файлы системы или пользователя, не должна вызывать зависание системы.

Однако есть также и Пожелания Тестовой лаборатории PC Magazine разработчикам. Если представляемая программа им соответствует, то это повышает ее шансы на выигрыш в конкурсе. И вот какие это пожелания:

· Во-первых, программа должна хорошо выполнять свою функцию и работать программа должна надежно — не допускать непредсказуемости своего функционирования даже в случае не совсем адекватной работы самого Office.

· Во-вторых, программа должна работать корректно — то есть не допускать потери данных пользователя. Так, если программа не предназначена для изменения параметров текста, то она и не должна их менять.

· В-третьих, желательно, чтобы разработка имела удобный интерфейс и подробную документацию на русском языке.

· В-четвертых, желательно наличие программы установки и удаления разработки, если это, конечно, необходимо. Крайне желательно, чтобы разработка предоставляла возможность как автоматической установки, так и ручной.

· И, в-пятых, весьма желательно, чтобы разработка поставлялась с кодом, не закрытым от просмотра паролем. Во всяком случае, доверия тогда к разработчику будет больше, а значит, и вероятность получить приз выше.

Сайт "Высокие статистические технологии"

Есть в Интернете такой сайт — "Высокие статистические технологии". Казалось бы — посвящен он лишь сложным математическим методам и теориям, которые нужны лишь специалистам в этой области. Да, это в определенной степени так — значительная часть сайта содержит материалы по новому направлению математики — статистике обьектов нечисловой природы. Но есть на этом сайте и учебник по менеджменту, и полезные программы, и интересные статьи, и даже лекция об устройстве атомных реакторов. Впрочем, расскажем об этом ресурсе по порядку. Вот что вы там найдете:

· Статьи доктора технических наук, профессора А.И.Орлова, посвященные современным статистическим технологиям. Если вы являетесь специалистом в области статистических наук, то вас наверняка заинтересует рассказ о новом направлении математики — статистике обьектов нечисловой природы, позволяющей использовать статистические методы для обработки данных, не поддающихся переводу в числовые значения.

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

· Информацию об Институте высоких статистических технологий, основанном профессором А.И.Орловым. Институт на хоздоговорных и госбюджетных началах занимается развитием, изучением и внедрением высоких статистических технологий, т. е. наиболее современных технологий анализа технических, экономических, социологических, медицинских данных, ориентированных на использование в условиях современного производства и экономики. Основной интерес представляют применения высоких статистических технологий для анализа конкретных экономических данных — в эконометрике.

· Возможность подписаться на бесплатную электронную газету «Эконометрика», в которой рассказывается об этой науке, на наглядных примерах демонстрируются технологии прогнозирования экономической ситуации, оценки рисков, повествуется о применении эконометрики в экологии, менеджменте, управлении предприятием. Если вы учитесь в экономическом ВУЗе, желаете стать специалистом в своей области, то эта газета предназначена специально для вас.

· Учебник по менеджменту профессора А.И.Орлова. Он рассказывает о премудростях этой науки живым и легкодоступным языком и может служить как учебным пособием, так и просто интересной книгой. Учебник завоевал заслуженную популярность у студентов и преподавателей и был издан как часть учебного пособия по менеджменту. В настоящее время готовится его отдельное издание.

· Программы «ВерсткаТекстаКнижкой», «Untaco» и "Генератор иконок", о которых подробно рассказано в этой главе.

· Программу-дополнение для Microsoft Word 97/2000 «Каталогизатор», которая даст вам возможность создавать каталоги из гиперссылок на файлы в той или иной папке, а также web-страницы, содержащие картинки из какого-либо каталога. Ее удобно использовать, если вы желаете упорядочить свои файлы на жестком диске или создаете web-сайт.

· Набор дополнений для Microsoft Word 97/2000 «SaveIn». В этом наборе вы можете найти интересные технические решения и посмотреть, как они в нем реализованы. Кроме того, «SaveIn» поможет вам, если вы постоянно сохраняете копии рабочих файлов в нескольких разных папках.

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

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

Ну, а какой же адрес у сайта "Высокие статистические технологии"? Вот такой: http://antorlov.euro.ru. Есть и зеркало — http://www.newtech.ru/~orlov. Так что добро пожаловать в любое время дня и ночи. А если вы живете в Москве, то на заглавной странце сайта http://antorlov.euro.ru прочитайте, как получить к его зеркалу доступ бесплатно, не платя деньги провайдерам за пользование Сетью.

Оглавление книги


Генерация: 1.618. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз