2010-09-10 7 views
0

Okey voici la situation: J'ai une macro Microsoft Excel dans vb que je veux appeler en utilisant C#. J'ai déjà essayé de créer un classeur en utilisant Microsoft.Office.Interop.Excel, mais je ne veux pas avoir à exécuter un processus Excel pour exécuter la macro. Alors j'ai pensé pourquoi ne pas créer une bibliothèque de classe vb avec mon code pour pouvoir l'exécuter et avoir un fichier dll propre. Il n'est pas nécessaire de conserver des fonctions liées à la feuille car la macro lit un fichier texte .lua (UTF-8) avec des fonctions regex avancées que je ne peux pas recréer en C#.Appelez la méthode VB en C# en utilisant Interop

Est-ce que je peux aussi utiliser la librairie interop, donc je peux simplement appeler la fonction dans mon C#? Tous les exemples seraient grandement appréciés.

+0

Quel compilateur avez-vous? – Marco

+0

le compilateur Visual Studio 2010 standard est ce que je vais utiliser. – OhBugger

Répondre

0

D'abord, je suppose que vous travaillez avec VB6 et non VB Script?

Je n'ai jamais travaillé avec VB 6 ou plus tôt, mais je pense que votre mieux sera de créer un objet COM, puis vous pouvez appeler l'objet COM à partir de .NET en utilisant C#. Voici un lien rapide que j'ai trouvé grâce à BING qui, je crois, vous aidera à démarrer si cela est une option pour vous.

Walkthrough: Implementing Inheritance with COM Objects (Visual Basic)

+0

Oui c'est VBA qui est une version légèrement différente de VB 6 Je vais jeter un oeil et vous dire comment ça se passe. – OhBugger

+0

@OhBugger, je pensais que vous pourriez faire référence à VBA, mais quand vous avez mentionné la création d'une bibliothèque de classe, je pensais que vous pourriez faire référence à VB6. Eh bien, bonne chance. –

0

Je remarqué ces deux déclarations:

Je ne veux pas avoir à exécuter un processus Excel pour exécuter la macro

et

la macro lit un texte .lua (UTF-8) f ile avec certaines fonctions regex avancées que je ne peux pas recréer en C#

Ces deux objectifs sont incompatibles. La macro repose sur des fonctions Excel pour s'exécuter. Le seul moyen fourni par Microsoft pour accomplir ceci est de charger complètement l'application Excel. Il n'y a aucun moyen de lancer uniquement la macro.

Questions connexes