J'ai une ancienne macro Excel 4 que j'utilise pour exécuter des factures mensuelles. Il s'agit d'environ 3000 lignes et de nombreuses feuilles de boîte de dialogue Excel 5 (pour les boîtes de dialogue). Je voudrais savoir comment le plus simple serait de le changer en Visual Basic et si cela en vaut la peine. Je voudrais aussi savoir comment, si je l'ai converti en VBA, comment en créer une application autonome.Conversion de macros Excel 4 en VBA
Répondre
est ici un bon artikel sur ce sujet: http://msdn.microsoft.com/en-us/library/aa192490.aspx
Vous pouvez télécharger VB2008-Express gratuitement à: http://www.microsoft.com/express/default.aspx
AFAIK il n'y a pas possibilité de convertir en quelque sorte il. Vous devez essentiellement réécrire dans VBA.
Si vous êtes converti en VBA, vous ne pouvez pas exécuter en tant qu'application autonome. Comme VBA indique Visual Basic pour Application, il vit dans une application (Word, Excel, Scala, peu importe).
Vous devez apprendre une langue standard (pas une macro-langue) pour créer des applications autonomes. Mais vous devez apprendre beaucoup plus que la langue elle-même. Vous devez apprendre différentes techniques, par exemple la gestion de base de données au lieu de la gestion de feuille Excel, l'impression au lieu de l'impression Excel, et ainsi de suite. Donc, fondamentalement, vous allez perdre beaucoup de fonctions, ce qui est évident si vous utilisez Excel.
J'ai essayé cela avant et à la fin vous avez besoin de le réécrire comme l'a dit Biri.
J'ai fait pas mal de travail lorsque notre société effectuait une mise à niveau de Windows NT vers Windows XP. J'ai souvent trouvé qu'il est plus facile de ne pas regarder l'ancien code et de recommencer à zéro. Vous pouvez passer autant de temps à essayer de comprendre ce qu'Excel 4 a fait spécialement autour de la notation "étrange" de la boîte de dialogue. En fin de compte si vous savez ce que sont les entrées et les sorties, il est souvent plus efficace et plus propre à réécrire. Que ce soit pour utiliser VBA ou non est une question à part, mais VBA est plutôt puissant et extensible, même si je préfère utiliser d'autres outils comme .NET dans de nombreux cas, cela fonctionne bien et est facile à déployer.
En termes de vaut-il la peine? Si vous pouviez dire que vous n'auriez jamais besoin de changer à nouveau votre macro Excel 4, alors peut-être pas. Mais en affaires, il y a toujours quelque chose qui change, par exemple, les taux d'imposition, en particulier les choses de fin d'année. Étant donné qu'il est difficile de trouver quelqu'un pour soutenir Excel 4 et même trouver de la documentation à ce sujet, je dirais qu'il est risqué de ne pas passer à VBA, mais c'est quelque chose à équilibrer.
(Attention: je développe la bibliothèque ADN-Excel)
Au lieu de déplacer la macro VBA, qui utilise un modèle d'objet d'automatisation COM qui diffère de la langue macro Excel, déplacer plutôt à VB. NET (ou C#) en cours d'exécution avec la bibliothèque Excel-DNA. Excel-DNA vous permet d'utiliser l'API C, qui reflète de très près le langage macro. Pour chaque commande de macro, comme vos boîtes de dialogue, il existe une fonction API C qui prend les mêmes paramètres. Par exemple, l'équivalent de DIALOG.BOX serait xlfDialogBox - il y a une discussion et un exemple dans ce fil: http://groups.google.com/group/exceldna/browse_thread/thread/53a8253269fdf0a5. Un gros avantage de ce déplacement est que vous pouvez ensuite changer progressivement des parties de votre code pour utiliser l'interface d'automatisation COM - Excel-DNA vous permet de mélanger et de faire correspondre les interfaces COM et l'API C.