2010-11-04 7 views
2

J'ai développé un complément PowerPoint pour les versions 2003 et antérieures qui génère une barre de commandes/barre d'outils personnalisée lors de l'installation. Je n'ai aucune difficulté à supprimer cette barre de commandes lors de la désinstallation, mais parce qu'elle utilise l'événement Auto_Close pour ce faire, elle supprime également la barre d'outils chaque fois que PowerPoint se ferme, empêchant l'utilisateur de personnaliser en permanence la position de la barre.PowerPoint VBA - Conservation des paramètres CommandBar personnalisés à la fermeture

J'ai essayé une suppression conditionnelle en vérifiant si le complément est enregistré ou chargé, mais Auto_Close semble fonctionner avant tout déchargement ou désenregistrement.

Des idées sur la façon de supprimer la barre de commande SEULEMENT lorsque le complément est désinstallé?

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 

Répondre

3

C'est une bonne idée de faire ce que vous faites - la suppression de votre CommandBar lorsque PowerPoint se ferme. De cette façon, s'il y a une erreur, votre complément ne laisse pas d'artefacts dans l'interface utilisateur qui ne fonctionnent pas. Cependant, pour la gestion de l'état, de nombreuses personnes utilisent GetSetting et SaveSetting pour lire/écrire dans une zone en mode bac à sable dans les programmes Registry for VB/VBA. Recherchez les fonctions suivantes sur ce page: GetSetting, SaveSetting, GetAllSettings, DeleteSetting. Vous pouvez les utiliser pour gérer le CommandBar de votre complément entre des instances PowerPoint. Il est relativement simple à utiliser - here's a tutorial pour Excel qui s'appliquerait également à PowerPoint.

+0

Merci d'avoir lu jusqu'à ma demande et, bien sûr, pour l'aide. Beaucoup, très apprécié. – variant

Questions connexes