2014-07-10 4 views
1

J'ai un fichier docm Word 2007 que j'envoie aux utilisateurs sous forme de pièce jointe pour leur permettre de mettre à jour les fichiers. Les macros téléchargent les fichiers à partir d'un serveur et les installent correctement - au lieu d'envoyer les fichiers sous forme de pièces jointes à des e-mails et de faire confiance aux utilisateurs pour les corriger. J'utiliserais un fichier VBScript à la place, mais je ne suis pas autorisé à l'envoyer dans un e-mail.Supprimer le document lorsque la macro est terminée

Je voudrais supprimer ce document de l'ordinateur de l'utilisateur lorsque la macro se termine. Mais le doc est toujours ouvert et la macro est toujours en cours d'exécution quand elle touche une commande Kill ou FSO.FileDelete. Edit: trouvé un moyen d'avoir la macro Word créer et lancer un VBScript, qui se déclenche après que le doc ferme et supprime le doc et le script.

Répondre

1

Réponse tardive, je sais.

Une autre façon d'y parvenir pour les personnes qui ne connaissent pas VBScripts pourrait être de mettre quelque chose comme ça à la fin de la macro:

Sub DeleteCurrentDoc() 

Dim Doc1 As Document 
Dim Doc2 As Document 
Dim deletepath As String 

'While the document you want to delete is open and is the current 'Active Document' 
Set Doc1 = ActiveDocument 

'get path of this document to delete it later 
deletepath = Doc1.FullName 

'Add a new temporary blank document 
Set Doc2 = Documents.Add 

'Close the document we are going to delete 
Doc1.Close False 

'Delete it 
Kill (deletepath) 

'Clear away the temp doc we created 
Doc2.Close False 

'Tidy up and close Word (Optional Line, delete if necessary) 
Application.Quit 

End Sub 

EDIT: Une façon encore plus léger (testé sur la Parole 2013):

Sub DeleteCurrentDoc() 

Dim Doc1 As Document 
Dim deletepath As String 


'get path of this document to delete it later 
deletepath = ActiveDocument.FullName 

'Close the document we are going to delete (Word should remain Open 
ActiveDocument.Close False 

'Delete it 
Kill (deletepath) 

'Tidy up and close Word (Optional Line, delete if necessary) 
Application.Quit 

End Sub 
Questions connexes