So konvertieren Sie Excel-Makros in .Net


Mehr Kleinunternehmer als Sie vielleicht denken, erstellen und schreiben ihre eigenen Softwareprogramme, und oftmals umfassen ihre ersten Programmierschritte die Verwendung von Visual Basic für Applikationen oder VBA. VBA ist die mit Microsoft Excel und anderen Office-Anwendungen verwendete Programmiersprache, mit der Sie nahezu jede Aufgabe in einer Office-Anwendung automatisieren können. Sobald Benutzer die relativ benutzerfreundliche VBA-Syntax verstanden haben, wechseln viele zur Microsoft-Plattform für die Entwicklung von Webanwendungen .NET. Wenn Sie Excel-Makros haben, die Sie mit VBA codiert haben, werden Sie feststellen, dass die in VBA und .NET verwendete Syntax ähnlich ist. Daher müssen Sie das Rad und den Hardcode von Grund auf nicht neu erfinden. .NET-Modulcode für Excel-Funktionen, die Sie bereits geschrieben haben. Wenn Sie einige einfache Codierungsregeln befolgen, ist das Konvertieren Ihres Excel VBA-Codes zur Verwendung in .NET relativ einfach.

Exportieren Sie VBA-Code aus Excel

1


Starten Sie Excel und öffnen Sie die Arbeitsmappe mit Makrocode, den Sie in .NET konvertieren möchten.

2

Drücken Sie die Tasten „Alt-F11“, um den VBA-Editor zu starten. Warten Sie einige Sekunden, bis der VBA-Editor alle Makromodule für die aktive Excel-Arbeitsmappe geöffnet und geladen hat.

3


Suchen Sie den Ordner „Module“ unter dem VBAProject-Header auf der linken Seite des VBA-Editorfensters. Doppelklicken Sie auf den Ordner „Module“, um alle Makros in der aktiven Arbeitsmappe zu erweitern und anzuzeigen. Klicken Sie auf und wählen Sie den Namen des ersten Moduls in der Liste aus.

4

Klicken Sie in der Menüleiste auf „Datei“ und dann auf „Datei exportieren“. Geben Sie im Feld „Dateiname“ einen aussagekräftigen Namen für den Modulcode ein. Navigieren Sie zu einem geeigneten Ordner auf Ihrem PC, in dem Sie die Makrocode-Moduldatei speichern können, und klicken Sie auf „Speichern“. Der VBA-Editor speichert den Makrocode als .BAS-Datei.

5

Verwenden Sie die Option „Datei exportieren“ in der Menüleiste „Datei“, um alle anderen Makromodule aus der Excel-Arbeitsmappe zu exportieren, die Sie in .NET konvertieren möchten. Schließen Sie zuerst das VBA-Editorfenster und beenden Sie dann Excel.

Importieren und Konvertieren von Excel-Makros in .NET

1

Starten Sie Visual Basic oder Visual Basic Express auf Ihrem Computer. Öffnen Sie die .NET-Projektdatei, in die Sie den vorhandenen Excel-Makrocode importieren möchten.

2

Klicken Sie in der Menüleiste auf den Link „Projekt“ und dann auf „Modul hinzufügen“. Klicken Sie im Ausziehmenü auf „Vorhanden“. Navigieren Sie zu dem Ordner, in dem Sie die aus Excel exportierten .BAS-Dateien gespeichert haben. Markieren Sie die erste .BAS-Datei im Ordner und klicken Sie auf Öffnen. Visual Basic fügt das Modul Ihrem .NET-Projektfenster hinzu.

3

Doppelklicken Sie auf den Namen des Excel-Makromoduls, das Sie importiert haben. Wenn Sie den Modulcode im VB-Editorfenster öffnen, enthält der Code wahrscheinlich einige Zeilen, die roten Text enthalten. Dies zeigt an, dass die verwendete Codesyntax nicht mit VB oder .NET kompatibel ist. Dies sind die Zeilen im Code, die Sie ändern müssen, damit das Modul mit Ihrer .NET-Anwendung funktioniert.

4

Fügen Sie eine ByRef-Annotation am Anfang des importierten Makrocodes direkt nach der Sub-Syntax hinzu. Wenn Sie beispielsweise ein Makromodul mit dem Namen OpenPowerPoint importiert haben, enthält die erste Codezeile die Syntax „Sub OpenPowerPoint ()“. Um den Code als .NET-Modul kompatibel zu machen, schreiben Sie die Syntax als „OpenPowerPoint (ByRef x As Integer)“ neu.

5

Entfernen Sie alle Standardeigenschaften für Ihre Referenzen. In VBA können Sie beispielsweise Code wie „a =“ Hello World „“ schreiben, und Excel weiß, dass sich die Variable „a“ auf Text bezieht. In VB- oder .NET-Anwendungen müssen Ihre Standardeigenschaften jedoch den Eigenschaftstyp explizit angeben. Im Beispiel „a =“ Hello World „“ müssen Sie die Syntax in „a.text =“ Hello World „ändern.“

6

Verwenden Sie den Befehl Aufruf mit Ihren Funktions- oder Methodenaufrufen für ein externes Objekt. Mit Excel VBA können Sie eine externe Funktion oder ein externes Modul mit einem einfachen Eintrag „= NameOfFunctionToCall“ in der Codesyntax aufrufen. In .NET-Anwendungen sollten Sie jedoch immer den Befehl „Call NameOfFunctionToCall ()“ verwenden.