litbaza книги онлайнРазная литератураИнтернет-журнал "Домашняя лаборатория", 2007 №7 - Глуховский

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 283 284 285 286 287 288 289 290 291 ... 511
Перейти на страницу:
в книги.

При работе с панелями инструментов в Excel имеет быть следующее.

1. Скопированная в книгу панель инструментов изменяться не может. Все изменения, вносимые в отображаемую на экране панель инструментов, делаются в той панели, которая хранится в файле настроек Excel. Чтобы эти изменения были перенесены в панель инструментов, находящуюся в книге, необходимо ее заново туда скопировать с помощью диалогового окна "Сервис — Настройка — Панели инструментов — Вложить", предварительно удалив старые.

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

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

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

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

Если вы переместили в другую папку файл с макросами, вызываемыми кнопками на скопированной в файл настроек Excel панели инструментов, то просто удалите эту панель из файла настроек Excel с помощью диалогового окна "Сервис — Настройка — Панели инструментов", а затем откройте и закройте книгу с макросами, находящуюся уже на новом месте. Excel заново скопирует панель инструментов в свой файл настроек и укажет в параметрах кнопок уже новый путь к файлу с макросами[237].

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

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

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

В Excel можно также создавать особые формы файлов, содержащих программный код — надстройки. Но рассказ о них выходит за рамки нашей книги.

ЦИФРОВАЯ ПОДПИСЬ

С появлением в составе Microsoft Office языка макрокоманд, позволяющего, помимо операций с данными пользователя, еще и работать с файловой системой и самими макрокомандами, по миру стали распространятся макровирусы. В связи с этим во всех версиях Office, начиная с Microsoft Office 97, при открытии документа, содержащего макросы, пользователю выдается предупреждение о наличии их в документе. Выбор, предоставляемый окном предупреждения, невелик, — либо "отключить макросы", полностью запретив их использование, либо их включить и подвергнуться риску вирусного заражения. Впрочем, в последнем случае можно избежать автозапускающихся макросов, если удерживать клавишу Shift при нажатии на кнопку "Не отключать макросы" предупреждающего диалога, но вирусные компоненты могут и подменять команды Office, так что использование Shift'а полной защиты не дает.

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

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

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

Возможность добавлять цифровую подпись (и, соответственно, использовать ее для запрета появления диалога о запуске макросов при работе с каким-либо файлом с программами на Visual Basic for Applications) появилась в Microsoft Office начиная с 2000-й его версии.

После того, как вы завершили работу над своей программой на Visual Basic for

1 ... 283 284 285 286 287 288 289 290 291 ... 511
Перейти на страницу:

Комментарии
Минимальная длина комментария - 20 знаков. Уважайте себя и других!
Комментариев еще нет. Хотите быть первым?