Modules: Exécuter une macro d'Excel par automation |
Author(s) Dev Ashish |
|
Exécuter une macro d'Excel par automation.
Tout d'abord, le code.
Sub sRunCARMa()
Dim objXL As Object, x
On Error Resume Next
Set objXL = CreateObject("Excel.Application")
With objXL.Application
.Visible = True
.Workbooks.Open "D:\CARM\SYS\CARMaV5\CARMaV5a.XLS"
.ActiveWorkbook.RunAutoMacros xlAutoOpen
x = .Run("AccountsViewEngine", 0)
End With
Set objXL = Nothing
End Sub
Comme vous le constatez, j'utilise
CreateObject pour démarrer une instance d'Excel. Vous pouvez cependant
utiliser fIsAppRunning pour alors choisir d'utiliser GetObject, si
c'est plus opportun.
CreateObject démarre par défaut
une nouvelle instance de l'application en mode caché. Dans notre cas, nous
désirons la rendre visible.
Après avoir ouvert le livret qui
nous intéresse, on utilisa RunAutoMacros pour démarrer la macro AutoOpen.
Noter que si vous désirez que
Access reconnaisse les constantes d'Excel, tel que xlAutoOpen, il faut
préalablement demander une référence à Excel Object Library (Menu,
Tools , References...).
On utilise la méthode Application.Run
pour exécuter n'importe quelle macro. La syntaxe est simplement:
Run(Macro, Arg1, Arg2, ...)
et AccountsViewEngine
s'attend à recevoir un argument booléen, ici, 0 pour Faux.
|