Создать панель инструментов можно только в файле настроек Excel — с помощью диалогового окна "Сервис — Настройка — Панели инструментов". Однако если необходимо, чтобы панель инструментов хранилась в книге Excel, ее следует туда скопировать с помощью диалогового окна "Вложить" (открывается при нажатии кнопки "Вложить" в диалоговом окне "Сервис — Настройка — Панели инструментов"), см. рис. 7.14.
Рис. 7.14.
При работе с панелями инструментов в 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 можно также создавать особые формы файлов, содержащих программный код — надстройки. Но рассказ о них выходит за рамки нашей книги.
ЦИФРОВАЯ ПОДПИСЬ