VBA для тех кто любит думать

Отличия новых версий Office


Отличия VBA в новых версиях Office в основном заключаются в добавлении новых функций, событий, процедур и объектов. Например, в Office 2000 появились события обьекта Application, позволяющие перехватить почти любое происходящее в документе событие. Так, событие "DocumentBeforeClose" выполняется перед закрытием документа, "DocumentBeforePrint" - перед его печатью, "WindowBeforeRightClick" - сразу после клика правой кнопкой мыши в окне программы, "WindowSelectionChange" - при изменении выделения, смещении точки ввода (за исключением простого ввода текста).

В Office2000 изменилась система защиты от вирусов в макросах. Так, в Word2000 для того, чтобы иметь возможность запускать макросы, необходимо, чтобы в диалоговом окне "Сервис - Макросы - Безопасность" был установлен "Средний" или "Низкий" уровень защиты от макросов (лучше "Средний" - тогда при открытии документов с макросами пользователю будет выдан запрос о необходимости разрешения исполнения макросов).

Также в Word2000 для того, чтобы пользователь имел возможность запускать макросы из шаблонов, установленных в папку автозагружаемых файлов Word, необходимо на вкладке "Надежные источники" диалогового окна "Сервис - Макросы - Безопасность" установить отметку в пункте "Доверять всем установленным надстройкам и шаблонам". Обо всем этом следует упомянуть в документации к разрабатываемой вами программе.

Рис.5.5. Если в OfficeXP вы хотите копировать и удалять файлы с помощью VBA – выключите здесь “Службу индексирования”.

">То же самое верно и для Office XP, однако отличия есть и здесь.

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


Во-вторых, для того, чтобы иметь возможность программно копировать модули и формы макросы между документами и шаблонами, необходимо, чтобы  в диалоговом окне "Сервис - Макросы - Безопасность", на вкладке "Надежные источники" имелась отметка в пункте “Доверять доступ к Visual Basic Project”. Об этом тоже следует упомянуть в справке к программе.

Из появившихся новых событий в Office XP можно отметить возможность отслеживать изменение размеров окна приложения (обработчиком события WindowSize).

В OfficeXP скопировать файл из одной папки в другую или удалить его посредством программного кода можно только при отключенной Службе индексирования (cсылка “Параметры поиска” на панели “Обычный поиск", рис.8.10). К сожалению, по умолчанию эта Служба включена, а программно ее отключить невозможно. Поэтому, несмотря на декларируемую "совместимость сверху вниз" версий Office, автору программ на VBA настоятельно рекомендуется тестировать свои программы во всех версиях Office и отлаживать их при необходимости.

08_10.bmp

Рис. 8.10. Если в OfficeXP вы хотите копировать и удалять файлы с помощью VBA



– выключите здесь "Службу индексирования".

Более подробно о новшествах в Visual Basic for Applications в новых версиях Microsoft Office читайте в разделах их Справочных систем, которые так и называются - "Whats New for Office Developers" и, для Word, "Whats New for Word Developers".

Опыт товарищей

*       *       *

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

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


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

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

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

"Untaco" - расшифровка чисел и их обновление

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

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


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

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

09_01.bmp

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

09_02.bmp

Рис.9.2. Untaco. Отличается богатством настроек - от языка до скобок.

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

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

TreeView - кнопка "Пуск" для Microsoft Word

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


Ориентироваться в них становится все затруднительнее, и зачастую на поиск и открытие нужного файла уходит масса времени. Давно уже возникла необходимость в улучшении диалогового окна Word "Открыть…", так, чтобы можно было бы более свободно работать со своими документами. И вот, наконец, желания пользователей сбылись - появилась программа "TreeView".

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

09_03.bmp

Рис.9.3. Меню программы TreeView.

После установки программы среди панелей Word появляются новые (рис.9.4).

09_04.bmp

Рис.9.4. Новые панели в Word.

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

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

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


Вы также можете указать программе, файлы какого типа стоит отображать в выпадающих меню: ясно, что если в папке с документами хранятся еще и картинки, и звуковые файлы, то открыть их Word'ом не удастся, - а зачем тогда загромождать список файлов? Файлы разных типов могут отображаться в выпадающих меню разными значками, причем пользователь может сам выбрать, какими (рис.9.5).

09_05.bmp

Рис.9.5. Настройка панелей.

Обратите внимание, что выбор значков у пользователя TreeView гораздо больше, чем в окне настройки панелей Word: в выпадающем меню назначения значка представлены несколько десятков лучших значков, имеющихся в библиотеках Microsoft Office. Кроме того, можно настроить программу так, что, например, при выборе для открытия текстового файла она откроет его в программе "Блокнот" или задаст пользователю вопрос, в какой программе он желал бы этот файл открыть.

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

Программа имеет двуязычный интерфейс и работает как в русских, так и в английских версиях Microsoft Word 2000 и Microsoft Word 97. Имеется удобный инсталлятор, причем для установки программы даже не нужно выходить из Word или перезагружать его. Эта разработка поставляется с открытым исходным кодом, так что любой пользователь, интересующийся программированием на VBA, может его просмотреть и насладиться программистским мастерством автора этой программы.

Данная разработка заняла призовое место на конкурсе Microsoft Office Extensions за ноябрь 1999 года. Кроме того, она имеет Знак Качества "Yes, It's Works" от Тестовой лаборатории журнала PC Magazine, а также знак "User's Choice" от сервера программ Listsoft (www.listsoft.ru). Программа распространяется бесплатно.



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

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

Автор "TreeView" - Антонюк Дмитрий Александрович, г.Комсомольск-на Амуре.

Программу можно загрузить с адреса http://treeview.chat.ru.

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

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



09_06.bmp

Рис.9.6.Все умеют макросы... Даже текст за вас набирать. Вот только сочинять его еще не научились.

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

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

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

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

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

Но книжку можно спокойно сделать в Word любой версии, начиная с 97-го, с помощью программы, написанной специально для этого и называющейся просто - "ВерсткаТекстаКнижкой". Она использует довольно оригинальный способ создания макета книжки, в качестве основы для него взяв надписи - обьекты Microsoft Word, способные содержать в себе текст.


Надписи могут быть между собою связаны, и текст, вводимый в одну из них, при исчерпании свободного места в ней перетечет в другую, следующую по порядку связывания надпись. Эта возможность и используется в программе, которая заполняет макет книжки связанными надписями, соответствующими ее отдельным страничкам, а затем копирует в них текст из исходного документа. В результате получается макет книжки, готовый к печати (рис.9.7), который в случае необходимости можно спокойно редактировать, а при сбое в процессе печати нетрудно перепечатать любой лист макета. Макет составлен так, что каждый второй лист в нем является обратной стороной первого, поэтому на принтере с двусторонней печатью получить готовую книжку можно, просто послав на печать документ со сверстанным макетом. На обычных принтерах необходимо посылать на печать вначале нечетные, а затем четные страницы макета (для автоматизации данного процесса служит специальный макрос, входящий в комплект поставки программы). При необходимости макет книжки можно перенести для печати на другой компьютер, где данная программа не установлена.

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

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

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


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

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

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

 

09_07.bmp

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

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

"ВерсткуТекстаКнижкой" можно загрузить с адресов: http://antorlov.chat.ru или http://www.newtech.ru/~orlov.

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

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


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

 09_08.bmp

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

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

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

Программу "Генератор иконок" можно загрузить с адресов http://antorlov.chat.ru/develop.htm или http://www.newtech.ru/~orlov/develop.htm.

Создай свой каталог

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



Пакет программ "Каталогизатор", доступный с адреса http://antorlov.nm.ru/catalog.htm или http://www.newtech.ru/~orlov/catalog.htm, состоит из двух компонентов: собственно программы Каталогизатор и программы КаталогКартинок.

Программа Каталогизатор вставляет в документ, открытый в Word, список из гиперссылок на все или какие-либо определенные файлы в заданной пользователем папке (рис.9.9). Имеется возможность сортировать файлы при такой каталогизации, а также вставлять после каждой ссылки на картинку в формате Gif или Jpeg эту самую картинку.

09_09.bmp

Рис.9.9. Эффективная работа - это мощный компьютер плюс порядок на жестком диске. А "Каталогизатор" поможет вам его обеспечить.

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

Программа КаталогКартинок создает web-страничку, содержащую ссылки на все или какие-либо определенные файлы в какой-либо директории, при этом рядом с каждой ссылкой на картинку в формате Gif или Jpeg вставляется ее изображение. Получается нечто вроде картинной галереи на странице (рис.9.10). Пользователь может во многом определить внешний вид будущей web-странички с картинками: указать, какие имена указывать в ссылках - с включением полного пути к файлу или без него, выбрать, где располагать ссылки на файлы - снизу, сверху или сбоку от картинок.

09_10.bmp

Рис.9.10. Картинная галерея. Сиди, жми Space, любуйся....

Макрокоманда не использует встроенный в Word конвертор HTML, а пишет html-код сама, так что недостатки стандартного Word'овского HTML-конвертора, такие, как большой размер кода, лишние тэги, проявляться не будут.

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



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

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

09_11.bmp

Рис.9.11. Дополнения для Word.

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



09_12.bmp

Рис.9.12. Ice In Eyes. Все для программиста.

Весьма примечательным является "Справка" к пакету, содержащая, помимо его описания, еще и обширную подборку советов по работе с 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 (рис.9.13). Там представлены макросы на любой вкус: и для набора текстов, и для бухгалтерской работы, и даже игры.


На сайте программы Microsoft Office Extensions есть также специальный раздел "VBA-форум", в ко-тором публикуются статьи специалистов по VBA как для начинающих, так и для опытных разработчиков.

09_13.bmp

Рис.9.13. Библиотека макросов. Единственная в своем роде...

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

09_14.bmp

Рис.9.14. Пусть этот Знак Качества будет и вашим! Отправьте свою программу в Библиотеку Microsoft Office Extensions и получите его.

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

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

Затем поместите вашу разработку, а также Анкету и Лицензионное соглашение в архив формата Zip и отошлите его в виде аттачмента по адресу offext@microsoft.com.


В течение 24 часов вам должно придти потверждение получения вашей разработки, отправляемое автоматически. Если оно не пришло, то повторите отправку - видно, почтовые серверы сработали с ошибками.

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

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

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

•   Во-вторых, программа должна работать корректно - то есть не допускать потери данных пользователя. Так, если программа не предназначена для изменения параметров текста, то она и не должна их менять.  Кроме того, она должна уметь обрабатывать все возможные начальные условия, а не только те, которые счел нужным задать программист - то есть быть гибкой. Скажем, если в программе необходимо ввести номер телефона, то она должна позволять вводить столько цифр, сколько надо, а не 7 или 5.

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

•   В-четвертых, программа должна работать наиболее простым способом. Так, для вычисления значения числового выражения в Word не стоит вызывать Microsoft Excel, - для этого есть как встроенные функции самого Word, так и команды VBA.

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

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


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

На сайте Microsoft есть Форум для разработчиков программ на VBA - (http://www.microsoft.ru/offext/officedev/newsgroup. Посетите его, если желаете получить ответ на какой-нибудь вопрос или, наоборот, поделиться своими наработками с сетевым сообществом.

*       *       *

Конечно, в этом кратком обзоре нельзя рассказать обо всех созданных к настоящему времени макросах. Однако и описанные здесь программы серьезно помогут вам в работе. А если вы все же решите начать самостоятельно писать программы на Visual Basic for Applications, то, поисследовав макросы из этого обзора, вы узнаете очень много полезного... А, научившись программировать на этом языке, вы можете даже выиграть приз!

Удачи вам в работе - и в программировании!

Напутствие

*       *       *

Создавая программы для Microsoft Office, вы сможете на опыте получить представление практически обо всех современных принципах программирования: как структурных - основанных на последовательном выполнении всех команд программы, так и "событийных", согласно которым программа должна реагировать соответствующим образом на различные действия пользователя. В современном программировании используются оба этих принципа: интерфейс программ построен по принципу реакции на события, а функции, выполняемые программой - по принципу независимой работы. Например, графический редактор Paint, да и тот же текстовый процессор Word в большей своей части являются приложениями, управляемыми событиями - действиями пользователя; а, скажем, программы дефрагментации или проверки диска работают почти независимо от пользователя, он только должен задать им начальные параметры. В Visual Basic for Applications можно писать как программы, управляемые событиями (посредством разработки форм), так и работающие последовательно и независимо (используя только модули), а также, разумеется, и приложения, сочетающие в себе оба этих принципа.

Visual Basic for Applications может служить не только полноценной средой разработки приложений, работающих в Microsoft Office, но и как бы "учебным центром" по освоению принципов и различных приемов современного программирования.


Работа с системным реестром, с файловой системой и даже со встроенными в Windows функциями программирования API, - все это вы сможете изучить на опыте, используя Visual Basic for Applications, причем сделать это Вам будет значительно легче, чем если бы вы сразу начали учиться программировать на Delphi или Visual Basic for Windows. Средство записи макросов, возможность легкого анализа уже написанных программ (так как фактически любая программа на Visual Basic for Applications распространяется вместе со своим исходным текстом), русский интерфейс редактора, большая и четко написанная справка, обилие примеров, - все это очень помогает в освоении этого языка и делает возможным его самостоятельное изучение - даже без использования дополнительной литературы. Другие языки программирования так освоить практически невозможно. Кроме того, редактор Visual Basic for Applications обладает большими возможностями по коррекции ошибок, и поэтому программа на этом языке вряд ли вызовет ошибку системы и необходимость перезагрузки, если только не увлекаться вызовом функций API.

Если Вы научитесь программировать на Visual Basic for Applications, поймете принципы разработки алгоритмов и основные приемы программирования, освоите среду написания программ - редактор Visual Basic for Applications, то для Вас практически не составит труда начать создавать программы на Visual Basic for Windows. У этого языка абсолютно такой же синтаксис, такая же среда разработки с контекстной справкой и пошаговыми подсказками, на первый взгляд он отличается от Visual Basic for Applications разве что набором доступных встроенных процедур и функций и отсутствием возможности записи макросов. Безусловно, есть и более глубокие различия, но при создании не очень сложных программ они не будут иметь большого значения. Вы сможете легко освоить средство разработки программ Delphi, однако логика языка Pascal, лежащего в основе Delphi, несколько отличается от логики Visual Basic. Однако и среда разработки, и общие принципы программирования в Delphi те же.


Несколько труднее будет освоить C++ и его производные из-за серьезно отличающегося синтаксиса и высокой сложности этого языка, но это не всегда необходимо, - подавляющее большинство проектов программ можно реализовать на Visual Basic или Delphi.

*       *       *

Среди тех, кто занимается программированием уже много лет и достиг в этом деле определенных высот, весьма распространено мнение, что Visual Basic for Applications, да и просто Visual Basic - языки, на которых нельзя создать быстро и хорошо работающие программы. В определенной степени это соответствует действительности: программы на Visual Basic обычно работают несколько медленнее и занимают больше места, чем аналогичные им программы на С++, на Visual Basic весьма проблематично решение некоторых программистских задач и приемов. Поэтому профессиональные программисты часто считают, что Visual Basic - язык для дилетантов в программировании, а любой уважающий себя специалист в области информационных технологий обязан знать и использовать такие языки, как С++ или ассемблер. Но не следует забывать, что изначальное предназначение компьютерных технологий - помощь человеку в обработке и создании информации, а отнюдь не "служение самим себе", своему дальнейшему развитию. Поэтому основная функция большинства компьютерных программ - получение нужного результата, обработка вводимой информации, например, анализ электрокардиограммы или расчет траектории космической ракеты, а быстродействие, малый размер, да и удобство интерфейса - всего лишь их хорошие свойства, которые могут серьезно облегчить работу с программой.

Бесспорно, в настоящее время крупные программные комплексы делаются не в одиночку. Специалисты в какой-либо области пишут подробное техническое задание, а программисты его реализовывают. Однако в любой области человеческой деятельности есть множество задач, для решения которых привлекать сторонние коллективы слишком затратно. И вот тут-то и приходят на помощь легкие в освоении, но богатые возможностями языки программирования - Visual Basic, VBA, Delphi.


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

На вопрос: "Какой язык программирования лучше всего?" стоит отвечать так: "Тот, на котором ты можешь лучше всего писать программы и реализовывать свои проекты." Проще всего освоить Visual Basic и Delphi. И поэтому не стоит так уж стремиться обязательно знать ассемблер, выучить все функции API и жалеть, что не можешь вводить программы сразу в машинных кодах, - лучше повнимательнее изучить более простой язык даже вроде того же Visual Basic for Applications для того, чтобы уметь использовать все его возможности для воплощения своих пожеланий в жизнь. Ну, а если кто желает посвятить свою жизнь информационным технологиям, создавать новые языки общения с компьютером, то тому знание Visual Basic никогда не помешает, а остальные знания, как говорится, дело наживное, - надо лишь начать учиться и освоить общие принципы.

Не стоит думать, что "программирование мне никогда не понадобится" - современные компьютерные технологии развиваются с огромной быстротой, и скоро практически любая область человеческой деятельности будет компьютеризирована. А чтобы получить в своей работе наилучший результат, нужно уметь приспособить орудие труда - компьютер - под свои нужды, то есть - программировать.

*       *       *

И, наконец, стоит сказать об использовании программирования на Visual Basic for Applications в процессе обучения в школе, институте, да и в самостоятельном образовании. Даже если человек не желает посвятить свою жизнь информационным технологиям, умение программировать ему всегда пригодится, так как использование возможностей компьютеров сейчас возможно практически в любой области человеческой деятельности. Но главное - это то, что обучение искусству составления программ на собственном опыте, путем самостоятельного исследования возможностей языка и среды разработки является одним из наилучших способов научиться так называемому "научному мышлению", тому подходу к различным явлениям окружающего мира, на котором стоит вся современная наука.


Самостоятельно обучаясь использованию Visual Basic for Applications, можно как бы на маленькой модели испробовать почти все исследовательские приемы, которые используются современной наукой, - и наблюдение, и анализ результатов, и эксперимент… Например, вынесение из записанного макроса неизвестной команды в отдельную процедуру для выяснения ее функции, - чем не эксперимент в контролируемых условиях? Или изменение параметров команды с целью узнать, к чему это приведет, - разве не так действуют исследователи, изменяя начальные условия эксперимента?

Так что изучение Visual Basic for Applications может стать целым "научным исследованием", в течение которого можно будет отработать основные приемы современного научного подхода.

*       *       *

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

Удачи!

Орлов Антон Александрович,

2002 г.

Адрес сайта: http://antorlov.chat.ru или http://www.newtech.ru/~orlov

Приложение 1

Игры с Office

Эта небольшая глава непосредственно не относится к теме книги. Она скорее представляет собой дополнение к ней и посвящена ни чему иному, как играм, скрытым в недрах Office. Разумеется, они встроены туда неофициально – это, скорее, развлечение разрабатывавших Office программистов. Имеются эти игры во всех версиях Office, начиная с 95-го. Наиболее богата на игры программа Excel, хотя и Word иной раз не отстает.

Поскольку игры "неофициальные", то, естественно, и кнопок или команд, их вызывающих, в Microsoft Office не найти. Для запуска игр служат определенные последовательности действий, выполнить которые случайно практически невозможно. Как же они стали известными? Да очень просто - со слов тех, кто эти игры и писал.


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

 

Doom в Excel 95

 

В Excel 95 встроена игра наподобие Doom'а. Для ее вызова надо сделать следующее:

1. Открыть Excel c чистой книгой.

2. Прокрутить лист (мышью или клавишами) до строки с номером 95.

3. Выделить всю 95-ю строку, кликнув мышью на номере строки в служебной колонке слева.

4. Нажать клавишу Tab.

5. Открыть меню "Help - About Microsoft Excel" (в англоязычных версиях) или "? - О программе" (в русской версии).

6. Удерживая одновременно клавиши Ctrl, Alt и Shift, кликнуть мышью на кнопке "Technical Support" ("Техническая поддержка").

После этого откроется небольшое окно (рис.11.1), в котором и запустится игра. Передвигаться по залу (он называется "Hall of Tortured Souls" - "Зал Измученных Душ", наверное, назван так из-за творческих мук программистов, создавших Excel) можно с помощью курсорных клавиш. Поднявшись по лестнице, проход на которую виден в конце зала, можно прочитать имена разработчиков Excel'а, бегущие на вделанном в стену экране.

11_01.bmp

Рис. 11.1. Вход в "Зал Измученных Душ".

Если же перед обратным спуском с лестницы в "Зал Измученных Душ" (рис..11.2) ввести (без кавычек) с клавиатуры слово "excelkfa" (любители "Doom'а" наверняка сразу вспомнят другую знакомую комбинацию), то стена, противоположная той, в которой находится вход на лестницу, упадет, и взгляду предстанет дорога над пропастью (рис.11.3).



11_02.bmp

Рис. 11.2. "Зал Измученных Душ". Лестница звезд.

11_03.bmp

Рис. 11.3. "Зал Измученных Душ". Дорога над пропастью.

Пройдя по ней (это нелегко), можно дойти до стены, оклеенной фотографиями разработчиков Excel'а (рис.11.4).

11_04.bmp

Рис. 11.4. "Зал Измученных Душ". Фотографии разработчиков Excel 95.

 

Descent из Excel 97

 

Descent - это игра-симулятор космического корабля, перемещающегося в инопланетных шахтах. В Excel 97 встроена "леталка": игра, смысл которой заключается в полете над местностью и просмотре открывающихся красот. Вот как ее можно запустить.

1. Запустите Excel 97 и проследите, чтобы в пункте "Сервис - Параметры - Общие" не стояла отметка в пункте "Стиль ссылок R1C1".

2. Создайте чистую таблицу. Нажмите F5 и введите в строке ссылки для перемещения фразу "x97:l97" (т.е. переход к ячейкам от X97 до L97 с их выделением). Нажмите Ввод.

3. Вы перейдете к строке номер 97. Нажмите Tab, а затем, удерживая Shift и Ctrl, щелкните левой кнопкой мыши по иконке "Мастера диаграмм" (рис.11.5). Подождите немного, пока открывающееся окно не распахнется на весь экран.

11_05.bmp

Рис. 11.5. Именно эта кнопка запускает Descent из недр Excel'а.

Вот вы и в Excel Descent! Все управление - мышью. Левая кнопка - ускорение вперед, правая - назад, движения мыши задают направление. Выход из игры - Esc. Местность замкнута: если лететь в каком-либо направлении, то в конце концов прилетишь туда же, откуда начал полет. К сожалению, "посадка" в игре не отработана: через возвышенности можно спокойно пролетать насквозь. Встречаются весьма привлекательные ландшафты, например, некое подобие моря с колышущимися волнами (рис.11.6).

11_06.bmp

Рис.11.6. "Descent из недр Excel'а". Море.

Подлетев к центру местности, можно увидеть камень на высоком постаменте. На поверхности камня последовательно проплывают имена разработчиков Excel 97 (рис.11.7).



11_07.bmp

Рис. 11.7. "Descent из недр Excel'а". Список разработчиков программы.

Pinball в Word 97

 

Игра, встроенная в Word97, довольно проста и в правилах, и в оформлении (рис.11.8). Это всего лишь Пинболл - игра, задачей которой является удержание на наклонном поле катающегося по этому самому полю шарика с помощью ударов двух приделанных в нижней точке поля лопаточек. Для ее вызова запустите Word 97, создайте в нем новый пустой документ и напечатайте в нем слово "Blue" (без кавычек). Выделите это слово (мышью или курсором с удержанием клавиши Shift), вызовите диалог установки свойств шрифта ("Формат - Шрифт") и задайте выделенному фрагменту полужирное начертание шрифта и синий цвет (в англоязычной версии Word соответственно "Bold" и "Blue"). После этого поставьте курсор в конец слова "Blue" и напечатайте после него один пробел. Теперь вызовите пункт меню "О программе" ("? - О программе", в англоязычной версии - "Help - About") и, удерживая клавиши Ctrl и Shift, кликните левой кнопкой мыши на иконке Word'а в иллюстрации в левой части появившегося окна.

11_08.bmp

Рис. 11.8. Word Pinball. Всегда к вашим услугам.

В появившейся на экране игре управление осуществляется всего двумя клавишами: "Z" - удар левой лопаточкой, "М" - удар правой лопаточкой. Ну, и еще есть клавиша "Esc" для выхода.

В правой части окна игры медленно проплывает список разработчиков Word'а.

 

Автогонки в Excel 2000

 

Если в Microsoft Excel 97 имеется встроенная игра-"леталка", то в следующей версии этой программы работы с электронными таблицами присутствуют даже настоящие автогонки.

Для выхода на трассу запустите Excel 2000 и создайте новую книгу с помощью команды "Создать" из меню "Файл". Затем сохраните эту книгу как web-страницу с помощью соответствующей команды (т.е. "Сохранить как Web-страницу") того же меню, при этом в диалоговом окне сохранения установите в разделе "Сохранить" отметку в пункте "выделенное: Лист" и поставьте галочку в пункте "Добавить интерактивность".


Откройте полученную страницу в браузере Microsoft Internet Explorer (версии не ниже 5.0, впрочем, последняя автоматически устанавливается при установке Microsoft Office 2000), во внедренном в нее листе Excel перейдите с помощью клавиши PageDown к строке 2000, а с помощью линейки горизонтальной прокрутки - к столбцу WC. Выделите строку 2000 (просто нажав мышью на ее номер в указателе номеров строк слева листа) и с помощью клавиши Tab переведите выделение на ячейку WC2000. После этого, нажав одновременно левые клавиши Ctrl, Alt и Shift, кликните левой кнопкой мыши на эмблеме Office в левом верхнем углу внедренного в web-страницу листа Excel.

Вот вы и на трассе (рис.11.9).

11_09.bmp

Рис. 11.9. Автогонки в Excel'е 2000.

Ехать вперед - клавиша "стрелка вверх", тормозить - "стрелка вниз", поворачивать - соответственно стрелки вправо и влево. Включить фары - клавиша "о" (латинская), пробел - стрелять и уничтожать машины соперников. Соприкосновение с обочиной означает проигрыш: аварию автомобиля (рис.11.10).

11_10.bmp

Рис. 11.10. Автогонки в Excel'е 2000. Авария - опять начинай сначала…

На трассе чередуются ночь и день, - ночью освещение дороги дают только фары. На асфальте написаны имена разработчиков Excel'а (рис.11.11).

11_11.bmp

Рис. 11.11. Автогонки в Excel'е 2000. Езжай и читай, кто вам такое удовольствие доставил

Поскольку игра базируется не только на Excel'е, но и на средствах сопряжения этой программы с web-страницей, в том случае, если игра у вас не запускается, проследите, чтобы на компьютере были установлены Microsoft Web Components (компонент Office 2000) и в том случае, если они отсутствуют, установите их из дистрибутива Office.

К сожалению, в Excel XP ни автогонки, ни "леталка" не присутствуют. Однако наверняка в скором времени можно будет услышать, как в этой программе запустить какую-нибудь Free Space или еще что почище...

Думается, теперь вам ясно, почему программы от Microsoft имеют такой большой обьем.


Ведь в них помимо собственно тех функций, ради которых они и приобретаются, есть еще и множество скрытых возможностей. Впрочем, иной раз эти открывающиеся с помощью волшебной последовательности действий возможности могут скрасить нудную работу или помочь отдохнуть. Ведь для того, чтобы поиграть в автогонки, Pinball или "леталку", вам не потребуется ничего, кроме соответствующей версии Excel’а или Word'а.

[1] Это означает, что пользователи должны платить за информацию столько, сколько они могут заплатить, а не столько, сколько назначает производитель, - при условии, что информация не предназначена исключительно для этих пользователей.

[2] Строго говоря, название "макросы" для них не является точным: в классическом программировании под макросом понимают имеющую имя группу команд, которая подставляется на место этого имени в текст программы перед ее переработкой в машинные коды и служит для облегчения труда программиста.

[3]

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

[4]Например, если вы в своей программе используете переменную "а", то в том случае, если ваша программа вызовет другую программу, в этой другой программе переменная "а" будет иметь именно то значение, которое ей было задано в первой программе только тогда, когда она в этой первой программе обьявлена (возможно, и как Variant - главное, чтобы обьявление было). Скажем, если в первой программе переменной "а" присваивается значение "3", а во второй к этой переменной прибавляется 2, то в том случае, если в первой программе обьявление переменной "а" отсутствует, результатом сложения будет 2, а не 5, - так как вторая программа сочтет "а" новой переменной, равной нулю.



[5]

Кроме того, при вызове процедуры или функции иногда требуется указывать команду Call (подробнее смотрите в справочной системе).

[6]

Это означает, что расстояние до бегунка можно получить командой типа "a= ScrollBar.Value", где ScrollBar - имя полосы прокрутки (задается в Окне Свойств, в параметре Name).

[7]

За некоторым исключением - отдельные команды из новых версий Visual Basic for Applications убраны. Впрочем, их не так много и они используются в весьма специфических целях.

[8]

При сохранении нового документа ему дается по умолчанию либо имя по его первой строчке (как бы "по заголовку текста"), либо, если первая строчка пустая - имя Doc1.doc (наш случай). Однако в том случае, если в папке сохранения документов по умолчанию, в которой сохраняется этот новый документ, уже есть файл с именем Doc1.doc, то новому документу по умолчанию предлагается уже имя Doc2.doc - чтобы не произошло перезаписи предыдущего файла с подобным именем. Так же происходит и при сохранении последующих документов, - некий "интеллектуальный механизм" раздавания файлам уникальных имен.

[9]

Место сохранения можно задать, включив в имя документа в пункте “FileName” полный путь к его новому местоположению.

[10]

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

[11] Существует программа "Генератор иконок", специально предназначенная для извлечения иконок из недр Word'а. О ней рассказано в главе 9.

[12] Вы можете в этом убедиться, использовав фрагмент кода

For Each J In CommandBars

Debug.Print J.Name

Next J

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

[13] Стоит признать, что в Excel концепция панелей инструментов значительно хуже продумана, чем в Word.Этим и обьясняются такие сложности при работе с ними.

[14]

Благодарю Тестовую лабораторию PC Magazine RE за эту рекомендацию.

[15]

В MS-DOS, впрочем, присутствовала возможность включать в программу так называемые "Esc-последовательности", определяющие внешний вид окна программы, вместо того, чтобы самостоятельно прорисовывать все его элементы. Однако аналогом API данное средство считать нельзя, - все же слишком мало функций было доступно программисту.

[16]

Двоеточие - разделитель команд, расположенных в одной строке.

[17]

Например, http://NikolayAM.narod.ru. Также про API и использование его в VBA есть немало информации на сайте программы Microsoft Office Extensions (http://www.microsoft.ru/offext).

[18]

Функция Или возвращает 1, если на хотя бы один из входов подано значение 1.


Содержание раздела