
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 Sie mit VBA Makros mithilfe der C# API
- Extrahieren Sie VBA Makros aus einer Excel Arbeitsmappe
- Hinzufügen von VBA Makros zu einer Excel Arbeitsmappe
- Ändern Sie das VBA Makro in einer Excel Arbeitsmappe
- Holen Sie sich eine kostenlose Lizenz
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.
- Erstellen Sie ein Objekt der Klasse Workbook, um die Excel Datei zu laden.
- Greifen Sie auf jedes VBA-Modul aus der Sammlung Workbook.VbaProject.Modules in das Objekt VbaModule zu.
- Rufen Sie Code von jedem Modul mit der Eigenschaft VbaModule.Codes ab.
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.
- Erstellen Sie eine neue Excel Datei oder laden Sie eine vorhandene mit der Klasse Workbook.
- Fügen Sie ein neues Arbeitsblatt hinzu oder rufen Sie das vorhandene mit der Klasse Worksheet ab.
- Fügen Sie ein neues VBA-Modul mit der methode Workbook.VbaProject.Modules.Add(Worksheet) hinzu und rufen Sie die ID des Moduls ab.
- Greifen Sie auf das VBA-Modul aus der Sammlung Workbook.VbaProject.Modules[idx] in das Objekt VbaModule zu.
- Fügen Sie den Namen des Moduls mit der Eigenschaft VbaModule.Name hinzu.
- Fügen Sie dem Modul mithilfe der Eigenschaft VbaModule.Codes Code hinzu.
- Speichern Sie die Arbeitsmappe mit der methode Workbook.Save(String, SaveFormat.Xlsm).
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.
- Verwenden Sie die Klasse Workbook, um die Excel Datei zu laden.
- Greifen Sie auf die VBA-Module aus der Sammlung Workbook.VbaProject.Modules in das Objekt VbaModule zu.
- Rufen Sie mithilfe der Eigenschaft VbaModule.Codes Code aus dem gewünschten Modul ab.
- Ersetzen Sie den Code und speichern Sie die Excel Datei mit der methode Workbook.Save(String).
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.