PowerPoint VBA - сохранение пользовательских настроек панели команд при закрытии - PullRequest
2 голосов
/ 04 ноября 2010

Я разработал надстройку PowerPoint для версий 2003 и более ранних версий, которая генерирует пользовательскую панель команд / панель инструментов при установке.

У меня нет проблем с удалением этой панели команд при удалении, но поскольку она использует Auto_CloseЧтобы сделать это, он также удаляет панель инструментов каждый раз, когда PowerPoint закрывается, не позволяя пользователю постоянно настраивать положение панели команд.

Я попытался условно удалить, проверив, зарегистрирована или загружена надстройка,но Auto_Close, кажется, запускается перед любой выгрузкой или отменой регистрации.

Есть ли какие-либо идеи о том, как удалить панель команд ТОЛЬКО при удалении надстройки?

Sub Auto_Close()
Dim pptAddin As AddIn

    For Each pptAddin In AddIns
        If pptAddin.Name = "AddInName" And _
            pptAddin.Registered <> msoTrue Then
            Application.CommandBars("CommandBarName").Delete
        End If
    Next

End Sub

1 Ответ

3 голосов
/ 04 ноября 2010

Хорошая идея - делать то, что вы делаете - удалять CommandBar, когда PowerPoint закрывается.Таким образом, при возникновении ошибки ваша надстройка не оставляет артефактов в пользовательском интерфейсе, которые не работают.

Для управления состоянием многие люди используют GetSetting и SaveSetting для чтения/ запись в изолированную область в реестре для программ VB / VBA.Просмотрите следующие функции на этой странице : GetSetting, SaveSetting, GetAllSettings, DeleteSetting.Вы можете использовать их для управления CommandBar надстройки между экземплярами PowerPoint.Его относительно просто использовать - вот учебник для Excel, который в равной степени применим к PowerPoint.

...