Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
80
Добавлен:
31.05.2015
Размер:
127.49 Кб
Скачать

07_14.Bmp

Рис. 7.14. Окно копирования панелей инструментов в книги.

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

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

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

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

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

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

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

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

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

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

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

Соседние файлы в папке VBA для тех кто любит думать (Орлов, 2002)