перенос макросов

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
andrewp
Сообщения: 3
Зарегистрирован: 21 апр 2009, 14:06

всем привет! помогите решить такую проблему:
есть файл xls с дополнительным тулбаром, к ним приписан вызов макросов. Но в настройках кнопки тулбара видно, что помимо имени макроса Excel автоматически дописывает имя книги(файла) где этот макрос находится, например MyFile.xls!MyMacros. В результате когда файл переименовывается например в MyFileNew.xls, настройки пунктов меню не изменяются и макрос ищется все равно в файле MyFile.xls. Если этот файл удалить, будет ошибка. А дальше получается еще хуже - почему то потом при открытии файла MyFile.xls макрос ищется уже в MyFileNew.xls Нельзя ли как нибудь заставить Excel искать макрос в текущей книге, без указания имени файла?
aks_sv
Сообщения: 53
Зарегистрирован: 30 окт 2007, 06:38

А если сохранять в личной книге макросов?
andrewp
Сообщения: 3
Зарегистрирован: 21 апр 2009, 14:06

а при переносе файла xls на другой комп макросы ведь останутся в личной книге на первом компе?
Аватара пользователя
mc-black
Сообщения: 250
Зарегистрирован: 08 май 2008, 16:09
Откуда: Россия, Нижний Новгород
Контактная информация:

файл переименовывается например в MyFileNew.xls
Если есть возможность, не переименовывайте файл в файл-менеджере, а пересохраните его открыв в Excel, т.е. из программы сохраните его под другим именем. Должно помочь, если не ошибаюсь...
На заказ: VBA, Excel mc-black@yandex.ru
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Imho, наиболее правильный путь - динамическая линковка макросов с элементами управления из обработчика события открытия рабочей книги. Причём с тулбарами сейчас надо быть очень осторожным если предполагается отчуждение файла.
В Excel 2007 вместо баров - ленты со всеми вытекающими последствиями ...
Поэтому или обрабатывать верию Excel , или внедрять эленменты управления непосредственно в рабочий лист или форму, отображаемую скажем при клике
в определённой области.
Андрей Энтелис,
aentelis.livejournal.com
andrewp
Сообщения: 3
Зарегистрирован: 21 апр 2009, 14:06

Aent писал(а):Imho, наиболее правильный путь - динамическая линковка макросов с элементами управления из обработчика события открытия рабочей книги. Причём с тулбарами сейчас надо быть очень осторожным если предполагается отчуждение файла.
В Excel 2007 вместо баров - ленты со всеми вытекающими последствиями ...
Поэтому или обрабатывать верию Excel , или внедрять эленменты управления непосредственно в рабочий лист или форму, отображаемую скажем при клике
в определённой области.
Да, такой подход кажется мне самым подходящим. А можно ли динамически связать макрос с кнопкой тулбара(или иным элементом управления)? Я делал только через меню настроек
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

можно ли динамически связать макрос с кнопкой тулбара(или иным элементом управления)?
Странный вопрос. Было бы нельзя не писал бы..
Cм. HELP по property .OnAction для объектов
СommandBarButton, CommandBarComboBoх, CommandBarControl и CommandBarPopUp для
MS OFFICE VBA.
Cм. так же:
http://www.cpearson.com/excel/menus.htm
http://www.cpearson.com/excel/CreatingCOMAddIn.aspxhttp://forum.developing.ru/ms-help://MS ... 075310.htmhttp://forum.developing.ru/ms-help://MS ... 075366.htm
Андрей Энтелис,
aentelis.livejournal.com
Ответить