Arbeiten mit VBA Makros in C#

VBA (Visual Basic for Applications) ist eine Programmiersprache, die in MS Excel Dateien verwendet wird, um mit Tabellenkalkulationen zusammenhängende Vorgänge zu automatisieren. VBA Makros werden verwendet, um benutzerdefinierte Funktionen zu schreiben, mit denen Sie die Aufgaben beschleunigen können, die Sie manuell ausführen müssen. In diesem Artikel erfahren Sie, wie Sie programmatisch mit VBA Makros in MS Excel Dateien arbeiten. Am Ende dieses Artikels können Sie VBA Makros in Excel Arbeitsmappen mit C# extrahieren, hinzufügen und ändern.

Arbeiten mit VBA Makros in Excel Dateien – C# API

Aspose.Cells for .NET ist eine C# Klassenbibliothek, die darauf ausgelegt ist, die Bearbeitung von Tabellenkalkulationen aus .NET Anwendungen heraus zu automatisieren. Die API bietet eine breite Palette von Funktionen, mit denen Sie MS Excel Arbeitsmappen erstellen, ändern und konvertieren können. Darüber hinaus ermöglicht die API ein nahtloses Arbeiten mit VBA Makros. Aspose.Cells for .NET ist zum Download als DLL Datei verfügbar und wird auf NuGet gehostet.

PM> Install-Package Aspose.Cells

Extrahieren Sie VBA Makros aus einer Excel Datei mit C#

Beginnen wir mit dem Extrahieren der VBA Makros aus einer vorhandenen Excel Arbeitsmappe. Im Folgenden sind die Schritte zum Ausführen dieses Vorgangs aufgeführt.

Das folgende Codebeispiel zeigt, wie Sie mit C# ein VBA Makro aus einer Excel Arbeitsmappe extrahieren.

// Vollständige Beispiele und Datendateien finden Sie unter https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Erstellen Sie ein Arbeitsmappenobjekt aus einer Excel quelldatei
Workbook workbook = new Workbook("sample.xlsm");

// Extrahieren Sie Code aus jedem VBA-Modul
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;
    Console.Write(code);
}

Hinzufügen von VBA Makros zu einer Excel Datei mit C#

Mit Aspose.Cells for .NET können Sie auch VBA Makros zu bestehenden oder neuen Excel Dateien hinzufügen. Dies kann durch Befolgen der folgenden Schritte erfolgen.

Das folgende Codebeispiel zeigt, wie Sie mithilfe von C# ein VBA Makro zu einer Excel Arbeitsmappe hinzufügen.

// Vollständige Beispiele und Datendateien finden Sie unter https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Neue Arbeitsmappe erstellen
Workbook workbook = new Workbook();

// Greifen Sie auf das erste Arbeitsblatt zu
Worksheet worksheet = workbook.Worksheets[0];

// VBA-Modul hinzufügen
int idx = workbook.VbaProject.Modules.Add(worksheet);

// Greifen Sie auf das VBA-Modul zu, legen Sie seinen Namen und seine Codes fest
Aspose.Cells.Vba.VbaModule module = workbook.VbaProject.Modules[idx];
module.Name = "TestModule";

module.Codes = "Sub ShowMessage()" + "\r\n" +
"    MsgBox \"Welcome to Aspose!\"" + "\r\n" +
"End Sub";

// Speichern Sie die Arbeitsmappe
workbook.Save("output_out.xlsm", SaveFormat.Xlsm);

Ändern Sie das VBA Makro in einer Excel Datei mit C#

Sie können auch die vorhandenen VBA Makros in einer Excel Datei mithilfe der folgenden Schritte ändern.

Das folgende Codebeispiel zeigt, wie Sie ein VBA Makro in einer Excel Datei mit C# ändern.

// Vollständige Beispiele und Datendateien finden Sie unter https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Erstellen Sie ein Arbeitsmappenobjekt aus einer Excel quelldatei
Workbook workbook = new Workbook("sample.xlsm");

// Ändern Sie den VBA-Modulcode
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;

    // Ersetzen Sie die ursprüngliche Nachricht durch die geänderte Nachricht
    if (code.Contains("This is test message."))
    {
        code = code.Replace("This is test message.", "This is Aspose.Cells message.");
        module.Codes = code;
    }
}

// Speichern Sie die ausgegebene Excel Datei
workbook.Save("output_out.xlsm");

Holen Sie sich eine kostenlose Lizenz

Sie können Aspose.Cells for .NET kostenlos mit einer temporären Lizenz verwenden oder testen, die 30 Tage gültig ist. Holen Sie sich jetzt.

Fazit

VBA Makros in MS Excel Dateien werden verwendet, um verschiedene Arten von Aufgaben im Zusammenhang mit Tabellenkalkulationen zu automatisieren. Um VBA Makros programmgesteuert zu handhaben, behandelte dieser Artikel das Extrahieren, Hinzufügen und Ändern von Code in VBA-Modulen mit C#. Weitere Informationen zur C# Spreadsheet-Manipulation-API finden Sie in der Dokumentation.

Siehe auch

Tipp: Vielleicht möchten Sie Aspose KOSTENLOSE Web-App zum Entfernen von Makros ausprobieren.