Як при виході з файлу xls видалити надбудову зі списку надбудов?
Проблема пов'язана з наступним.
При відкритті файлу xls надбудова додається і активується (галочка ставиться), а при виході дезактивируется.
При відкритті будь-якого файлу на цьому комп'ютері надбудова існує в списку надбудов. І якщо я намагаюся додати надбудову з таким же ім'ям, але з іншого місця, нічого не виходить (надбудова залишається стара з попереднім шляхом).
Видалити можу тільки ручками: якщо видалити надбудову з місця на диску, з якого вона бралася і намагатися її активувати, постає питання видаляти чи ні. Але в макрос при цьому нічого не записується
Невже тільки видаленням з реєстру?
Якщо можна приєднаюся до питання.
Як можна зняти приєднані AddIns, референс, комплектуючих виробів, не тільки в vba так само і vb.
Щоб вони зникли зі списку.
Єдиний раз, не пам'ятаю, чи то vba, толі vb запитав мене "Missing references ... delete from list?" І прибрав зі списку неіснуючий reference.
Подібне ніяк не зміг потім повторити.
Доводиться перейменувати тощо і т.п.
Не зовсім в тему приєднався.
Референс і компоненти взагалі з іншої області, і знімаються через VBE. В пошук.
Як addin зняти засобами excel, я не знаю. А що буде якщо видалити файл, після чого зробити .installed = true?
Як тільки ви перебереться всі варіанти рішення і не знайдете потрібного, тут же виявиться рішення, просте і очевидне для всіх, крім вас
Для Excel XP не існує явного способу видалення елемента з колекції Addlns. Колекція Addlns не має методу D e l e t e або Remove. Одним із способів видалення надбудови з діалогового вікна Надбудови є безпосереднє редагування пара-
метра системного реєстру (HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 10.0 \ Excel \ Add-in Manager).
Ще одним способом видалення надбудови з колекції Addlns
є видалення, переміщення або перейменування файлу XLA,
який містить надбудову. При наступній спробі уста-
новки цієї надбудови буде відображено попередження. У цьому попереджень користувачеві надається можливість видалити надбудову з колекції Addlns.
Може бути, якщо Ви часто використовуєте надбудову з однаковим ім'ям (що взагалі-то нонсенс), не підключати її, а просто відкривати в робочій книзі:
Workbooks.Open ActiveWorkbook.Path "\ Form.xla"
Димитрій писав (а): якщо Ви часто використовуєте надбудову з однаковим ім'ям (що взагалі-то нонсенс)
Надбудова це звичайно який-небудь універсальний інструмент або доповнення, необхідний Вам в роботі з програмою постійно. І для чого її кожен раз підключати та відключати (а тим більше видаляти з Спіка надбудов або змінювати шлях до неї) я не уявляю.
Поясніть Вашу глобальне завдання, я думаю у неї є альтернативне (можливо більш правильне) рішення.
Як тільки ви перебереться всі варіанти рішення і не знайдете потрібного, тут же виявиться рішення, просте і очевидне для всіх, крім вас
Є деяка кількість користувачів (зараз близько 20). У кожного є свій файл Excel, в якому з макросів існує тільки підключення надбудови при вході і відключення при виході.
У надбудові підключається користувача меню. Ось це меню і програми постійно змінюються і допрацьовуються. При змінах я просто міняю xla-файлик.
Буду дуже вдячна, якщо підкажете "альтернативне (можливо більш правильне Wink) рішення"
А чому недостатньо просто змінювати xla-файлик?
Як тільки ви перебереться всі варіанти рішення і не знайдете потрібного, тут же виявиться рішення, просте і очевидне для всіх, крім вас
To Gserg
Даремно ви мене прогнали в пошук. Там на жаль нічого не знайшов. (Погано не шукав)
Є деяка кількість користувачів (зараз близько 20). У кожного є свій файл Excel, в якому з макросів існує тільки підключення надбудови при вході і відключення при виході.
У надбудові підключається користувача меню. Ось це меню і програми постійно змінюються і допрацьовуються. При змінах я просто міняю xla-файлик.
Буду дуже вдячна, якщо підкажете "альтернативне (можливо більш правильне Wink) рішення"
Я роблю ось так: Код: Виділити все For Each ref In Application.ThisWorkbook.VBProject.References
If ref.Name = "Ім'я ВБА проекту в вашому xla # 40; врахуйте, що не файлу xla # 41; "Then Application.ThisWorkbook.VBProject.References.Remove ref
Next ref
Str = ThisWorkbook.Path "або потрібне вам
Application.ThisWorkbook.VBProject.References _
.AddFromFile Str "\ Файл xla .xla"
Головне не отримати конфлікт імен VBA проектів в проектах в головній книзі і в завантажується.
І в кінці:
Код: Виділити все Private Sub Workbook_BeforeClose # 40; Cancel As Boolean # 41;
'Здес якісь перевірки у мене, вже не пам'ятаю, для чого.
For Each ref In Application.ThisWorkbook.VBProject.References
If ref.Name = "Ім'я ВБА проекту" Then Application.ThisWorkbook.VBProject.References.Remove ref
Next ref
End Sub Так, по шматочках під'єднують код з різних файлів
які в сумі іноді важать близько 30 мб зі своїми формами класами і.т.д.
А в основний книзі у мене тільки одна кнопка в панелі інструментів і маленьке меню того, що хочу приєднати.
І взагалі не дивлюся в сторону надбудов.
Avtopic
Існує велика різниця між надбудовами, що підключаються в референс до проекту, і надбудовами, що підключаються до списку самого excel. Інша суть і інше призначення.
Як тільки ви перебереться всі варіанти рішення і не знайдете потрібного, тут же виявиться рішення, просте і очевидне для всіх, крім вас