2013-06-05 6 views
0

J'essaie d'obtenir Word pour ouvrir un document Excel chaque fois qu'un document basé sur un modèle spécifique est créé.Macro AutoNew ne fonctionne pas

Voici ma macro

Sub AutoNew() 
Dim oExcel As Excel.Application 
Dim oWB As Workbook 
Set oExcel = New Excel.Application 
Set oWB = oExcel.Workbooks.Open("E:\Letters.xlsx") 
End Sub 

Lorsque je double-cliquez sur le modèle, il apporte un document basé sur le modèle très bien, mais la macro ne fonctionne pas.

Il apparaît dans la liste des macros dans le modèle, mais tenter de l'exécuter ne fait rien.

+0

votre fichier Excel est ouvert en arrière-plan, avez-vous vérifié si une nouvelle instance Excel n'est pas en cours d'exécution que vous ne pouvez pas voir? pour le voir, vous pouvez ajouter cette ligne: 'oExcel.Visible = true' –

+0

Toujours les petites choses. – user2113849

Répondre

2

Comme on l'a mentionné KazJaw, rendre l'application visible

Sub AutoNew() 
    Dim oExcel As Excel.Application 
    Dim oWB As Workbook 
    Set oExcel = New Excel.Application 
    Set oWB = oExcel.Workbooks.Open("E:\Letters.xlsx") 
    oExcel.Visible = true 
End Sub 

Un inconvénient est que l'application Excel lance une nouvelle tâche (voir gestionnaire tak) en cas d'un autre appel de la macro - chaque document est ouvert en sa propre tâche.

La manière correcte est une API d'utilisation pour le lancement d'un document application enregistrée, par exemple ici: http://access.mvps.org/access/api/api0018.htm

Ou contourner le problème d'une seule ligne, laid, mais fonctionne très bien:

Shell "cmd.exe /c start D:\a\test.xlsx" 

Notez que modèle avec la macro doit avoir l'extension .xltm, pas .xltx.

+0

+1 pour l'extension de mon commentaire simple. –

Questions connexes