2016-11-09 3 views
0

Actuellement, j'ouvre Visio à partir du fichier VBS et de travailler. Cependant, chaque fois que la macro se termine, le Visio.exe persiste dans les «processus actifs» sous Gestionnaire des tâches.Fermeture Visio à partir du fichier VBS

Le problème est que lorsque j'exécute la macro plusieurs fois, plusieurs Visio.exe se trouvent juste là. Comment puis-je fermer efficacement le fichier Visio (d'où la fin du processus)?

Voici mon code:

Sub MacroExample() 

    Dim AppVisio 
    Set AppVisio = CreateObject("visio.InvisibleApp") 
    Dim vsoDoc 

    Set vsoDoc = AppVisio.Documents.Open("filepath\file.vsd") 

    vsoDoc.ExecuteLine ("MacroName") 
    Set vsoDoc = Nothing 
    set AppVisio = nothing 
    vsoDoc.close 
    appvisio.quit 
End Sub 

Ces 2 lignes ne fonctionnent pas comme prévu? (Basé sur ma recherche sur Internet, les documents que j'ai rencontrais tous les discours sur un code similaire. Je pensais que ces 2 fermerait le processus)

vsoDoc.close 
    appvisio.quit 

Toute aide/pointeurs dans la bonne direction est apprécié! (Notez tout le code ici et à l'intérieur Visio fonctionne comme prévu)

+1

Je garde le '' .Close' et .Quit' appelle, mais essayez d'ajouter 'Set appVisio = Nothing' à la fin, au cas où. –

+0

Réorganisation du code travaillé! Merci beaucoup!! – Dingo

Répondre

0

La réponse à cette question réorganise code

vsoDoc.close 
appvisio.quit 

'put this at the end instead of beginning 
Set vsoDoc = Nothing 
set AppVisio = nothing