Конференція vbstreets - перегляд теми - видалити надбудову зі списку надбудов

Як при виході з файлу 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. Інша суть і інше призначення.

Як тільки ви перебереться всі варіанти рішення і не знайдете потрібного, тут же виявиться рішення, просте і очевидне для всіх, крім вас

Схожі статті