Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.07.2010, 15:49   #1
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию Надстройки Excel

Excel 2007. Подключил файл надстроек .xlam, который вносит свои пункты в контекстное меню.

При обычном открывании файла (по двойному клику, например) меню содержит пункты, внесённые надстройкой.

На работе приходится пользоваться программой АРОС, которая запускает Excel и формирует файл .xls (да! да! именно в этой последовательности), содержащий некоторый объём макросов. После формирования файла, он доступен для любых действий, НО моя надстройка не отрабатывает, её даже нет в Project Explorer редактора VBA, хотя галочка в "Управлении Надстройками" стоит.

Что можно сделать, чтобы надстройка отрабатывала не зависимо от метода запуска Excel'я?
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 14.07.2010, 17:40   #2
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

при обычном запуске Excel надстройка загружается?
проверь св-во AddIn у надстройки, оно д.б. True

если на первый вопрос - да, и св-во норм, то дело в той неведомой проге (а у нее потроха можно посмотреть или черный ящик)
еще попробуй через Personal на все это воздействовать, напр.
Код:
Private Sub Workbook_Open()
   AddIns("имя_твоей_надстройки").Installed = True
End Sub
аналитика вне форума Ответить с цитированием
Старый 15.07.2010, 15:25   #3
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

To аналитика
Чтобы использовать твой код, надо, как минимум, чтобы он откуда-нибудь запускался при старте Excel'я.
Поскольку моя надстройка предназначена для преобразования файлов, полученных из АРОСа, то сейчас я делал следующим образом: сначала запускал Excel, а потом давал команду АРОСу на формирование файла. Т.о. сначала запускается Excel, отрабатывает моя надстройка, внедряя свои пункты в меню, и дальше можно работать нормально, преобразуя файлы, полученные из АРОСа.

Вопрос решил следующим образом:
Макрос надстройки был взят целиком из файла, который я раньше использовал для преобразования смет из АРОСа. Этот файл при своём запуске внедрял в контекстное меню ячейки свои пункты, а при закрытии пункты из меню удалялись.
Установив этот макрос в виде надстройки, я не изменил работу с меню. Теперь, столкнувшись с работой АРОСа, я убрал удаление пунктов из меню, и эти пункты торчат в меню постоянно, независимо от способа запуска Excel'я.
Т.о. загвоздка возникла из-за того, что при запуске АРОСа не отрабатывала процедура Workbook_Open() моих надстроек. Теперь, избавившись от необходимости её работы, я получил полноценную надстройку.

Всем спасибо за внимание
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 15.07.2010, 15:45   #4
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

Цитата:
Сообщение от Skif-F Посмотреть сообщение
To аналитика
Чтобы использовать твой код, надо, как минимум, чтобы он откуда-нибудь запускался при старте Excel'я.
я же и пишу про Personal (он-то лежит в папке автозагрузки Excel)
хотя прога твоя может открывать сеанс Excel и без загрузки надстроек и без автозагрузки
аналитика вне форума Ответить с цитированием
Старый 15.07.2010, 16:21   #5
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

Цитата:
Сообщение от аналитика Посмотреть сообщение
я же и пишу про Personal (он-то лежит в папке автозагрузки Excel)
хотя прога твоя может открывать сеанс Excel и без загрузки надстроек и без автозагрузки
Не понял сразу о чём ты. Попробовал - не помогает. При работе АРОСа Workbook_Open из любой надстройки не отрабатывает.

Однако! если на мою надстройку ссылается какой либо объект (пункт меню, кнопка на панели), то при нажатии на этот объект обращение к моим макросам происходит, и макросы отрабатывают.

Моя загвоздка возникла всвязи с тем, что я при каждом запуске Excel заново устанавливал эти объекты, а при закрытии удалял.

АРОС - это программа для создания смет, это по сути база данных, и работает так же. Как я понимаю, что при создании файла она обращается в Excel посредством макросов и формирует файл.
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 15.07.2010, 16:30   #6
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

Цитата:
Не понял сразу о чём ты. Попробовал - не помогает. При работе АРОСа Workbook_Open из любой надстройки не отрабатывает.
т.е личная книга макросов тоже не открывается.
Цитата:
Однако! если на мою надстройку ссылается какой либо объект (пункт меню, кнопка на панели), то при нажатии на этот объект обращение к моим макросам происходит, и макросы отрабатывают.
здесь все законно - если к объекту прикреплен макрос из другой книги, нажатие на объект приводит к открытию объекта и запуска соответствующего макроса.

Я до сих пор не пойму - Excel уже открыт, когда прога начинает работать или нет; прога запускает новый сеанс Excel или отрабатывает в текущем?

я понял, что ты решил проблему, заменив контекстнозависимое изменение панели (в твоем случае это контекстные меню) на постоянное
аналитика вне форума Ответить с цитированием
Старый 15.07.2010, 16:47   #7
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

Цитата:
Сообщение от аналитика Посмотреть сообщение
Я до сих пор не пойму - Excel уже открыт, когда прога начинает работать или нет; прога запускает новый сеанс Excel или отрабатывает в текущем?
Запускаю АРОС при НЕзагруженном Excel'е
даю команду "Напечатать в формате Excel"
Excel запускается и исчезает с рабочего стола (Hidden=True или что-то наподобие) - возможно, что АРОС при этом открывает какую-то свою заготовку
АРОС передаёт данные в Excel
Excel становится видимым
Workbook_Open'ы не отработали!

Если Excel был запущен до команды "Напечатать в формате Excel", то проблем не возникает
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 15.07.2010, 17:00   #8
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

Цитата:
Workbook_Open'ы не отработали!
это можно вообще просто сделать - отключить обработку событий
Application.EnableEvents =False

да, прикольно посмотреть на это...
прога тяжелая?
можешь ее показать? конечно если это возможно (можа она млрд.$ стоит)
аналитика вне форума Ответить с цитированием
Старый 15.07.2010, 17:10   #9
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

млрд не стоит, но ключ в LPT: требует
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 15.07.2010, 17:17   #10
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

ну и хорошо, время целее будет.
бывай здоров
аналитика вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Гавённость надстройки поиск решения eugrita Microsoft Office Excel 3 01.04.2010 14:12
Загрузка надстройки exel командой vba alvazor Microsoft Office Excel 1 18.12.2009 12:08
автоматизировать установку надстройки alvazor Microsoft Office Excel 4 01.10.2009 12:56
Проблема с программным запуском надстройки Solver kovalevskivf Microsoft Office Excel 5 22.05.2009 19:53
Как запретить запуск программы на VBA Excel 2003 в Excel 2007 kovalevskivf Microsoft Office Excel 2 15.05.2009 16:47