Я преобразовал проект, управляемый VBA, из обычного листа Excel 2010 в надстройку и хотел бы получить имя проекта VBA с помощью программного обеспечения.Excel VBA - получить имя проекта надстройки
(у меня есть «О ...» кнопка, что у меня есть раздражающая тенденция забывать обновлять, когда проект будет обновлен, и хочет посмотреть название проекта VBA для использования в MsgBox.)
когда код находится в форме листа, этот вызов в моей About...
кнопка обратного вызова рутинных работ просто отлично:
Application.VBE.ActiveVBProject.Name
Однако, когда код в надстройке в формате, этот вызов возвращает имя VBA проект для текущего листа (то есть VBAProject
), а не надстройка.
Есть ли не запутанный метод получения имени исполняемого проекта надстройки? Я вижу, что есть некоторые методы, которые перечисляют надстройки, и я мог бы искать их один за другим для имени, которое соответствует шаблону, но это кажется громоздким.
Это похоже на трюк. Кажется странным (для меня), что надстройка понимает, что это другая книга, но активный проект VB, вызванный моей первой попыткой, не выполняется там, где выполняется выполнение. –
Извините, я не понимаю, что кажется странным, но я попробую уточнить. 'ThisWorkbook' всегда ссылается на книгу, в которой находится код. Если он закодирован внутри addin, он будет ссылаться на свойства этого addin/workbook. –
Извините - 'ThisWorkbook' ясен. Я не уверен, почему VBE.ActiveProject указывал, откуда происходит выполнение. –