Lavora con la macro VBA in C#

VBA (Visual Basic for Applications) è un linguaggio di programmazione utilizzato nei file MS Excel per automatizzare le operazioni relative ai fogli di calcolo. Le macro VBA vengono utilizzate per scrivere funzioni definite dall’utente che consentono di velocizzare le attività da eseguire manualmente. In questo articolo imparerai come lavorare con le macro VBA nei file MS Excel a livello di codice. Entro la fine di questo articolo, sarai in grado di estrarre, aggiungere e modificare le macro VBA nelle cartelle di lavoro di Excel usando C#.

Lavora con le macro VBA nei file di Excel - API C#

Aspose.Cells for .NET è una libreria di classi C# progettata per automatizzare la manipolazione del foglio di calcolo dall’interno delle applicazioni .NET. L’API offre un’ampia gamma di funzionalità che consentono di creare, modificare e convertire cartelle di lavoro di MS Excel. Inoltre, l’API consente di lavorare senza problemi con le macro VBA. Aspose.Cells per .NET è disponibile per download come file DLL e ospitato su NuGet.

PM> Install-Package Aspose.Cells

Estrai le macro VBA da un file Excel usando C#

Iniziamo estraendo le macro VBA da una cartella di lavoro di Excel esistente. Di seguito sono riportati i passaggi per eseguire questa operazione.

L’esempio di codice seguente mostra come estrarre la macro VBA da una cartella di lavoro di Excel usando C#.

// Per esempi completi e file di dati, visitare https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Crea un oggetto cartella di lavoro dal file Excel di origine
Workbook workbook = new Workbook("sample.xlsm");

// Estrai il codice da ogni modulo VBA
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;
    Console.Write(code);
}

Aggiungi macro VBA a un file Excel usando C#

Aspose.Cells per .NET consente inoltre di aggiungere macro VBA a file Excel esistenti o nuovi. Questo può essere fatto seguendo i passaggi seguenti.

L’esempio di codice seguente mostra come aggiungere una macro VBA alla cartella di lavoro di Excel usando C#.

// Per esempi completi e file di dati, visitare https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Crea una nuova cartella di lavoro
Workbook workbook = new Workbook();

// Accedi al primo foglio di lavoro
Worksheet worksheet = workbook.Worksheets[0];

// Aggiungi modulo VBA
int idx = workbook.VbaProject.Modules.Add(worksheet);

// Accedi al Modulo VBA, impostane nome e codici
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";

// Salva la cartella di lavoro
workbook.Save("output_out.xlsm", SaveFormat.Xlsm);

Modifica la macro VBA in un file Excel usando C#

Puoi anche modificare le macro VBA esistenti in un file Excel utilizzando i seguenti passaggi.

L’esempio di codice seguente mostra come modificare una macro VBA in un file di Excel usando C#.

// Per esempi completi e file di dati, visitare https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Crea un oggetto cartella di lavoro dal file Excel di origine
Workbook workbook = new Workbook("sample.xlsm");

// Modifica il codice del modulo VBA
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;

    // Sostituisci il messaggio originale con il messaggio modificato
    if (code.Contains("This is test message."))
    {
        code = code.Replace("This is test message.", "This is Aspose.Cells message.");
        module.Codes = code;
    }
}

// Salva il file Excel di output
workbook.Save("output_out.xlsm");

Ottieni una licenza gratuita

Puoi utilizzare o valutare Aspose.Cells per .NET gratuitamente utilizzando una licenza temporanea valida per 30 giorni. Prendi il tuo ora.

Conclusione

Le macro VBA nei file MS Excel vengono utilizzate per automatizzare vari tipi di attività relative ai fogli di calcolo. Per gestire le macro VBA a livello di codice, questo articolo ha illustrato come estrarre, aggiungere e modificare il codice nei moduli VBA usando C#. Puoi esplorare di più sull’API di manipolazione del foglio di calcolo C# utilizzando documentazione.

Guarda anche

Suggerimento: potresti voler dare un’occhiata ad Aspose app Web per la rimozione di macro GRATUITA.