
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 usando l’API C#
- Estrai le macro VBA da una cartella di lavoro di Excel
- Aggiungi macro VBA a una cartella di lavoro di Excel
- Modifica la macro VBA in una cartella di lavoro di Excel
- Ottieni una licenza gratuita
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.
- Crea un oggetto della classe Workbook per caricare il file Excel.
- Accedi a ciascun modulo VBA dalla raccolta Workbook.VbaProject.Modules nell’oggetto VbaModule.
- Recupera il codice da ciascun modulo utilizzando la proprietà VbaModule.Codes.
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.
- Crea un nuovo file Excel o caricane uno esistente usando la classe Cartella di lavoro.
- Aggiungi un nuovo foglio di lavoro o ottieni quello esistente usando la classe Foglio di lavoro.
- Aggiungi un nuovo modulo VBA utilizzando il metodo Workbook.VbaProject.Modules.Add(Worksheet) e ottieni l’ID del modulo.
- Accedi al modulo VBA dalla raccolta Workbook.VbaProject.Modules[idx] nell’oggetto VbaModule.
- Aggiungere il nome del modulo utilizzando la proprietà VbaModule.Name.
- Aggiungi codice al modulo usando la proprietà VbaModule.Codes.
- Salvare la cartella di lavoro utilizzando il metodo Workbook.Save(String, SaveFormat.Xlsm).
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.
- Utilizzare la classe Cartella di lavoro per caricare il file Excel.
- Accedi ai moduli VBA dalla raccolta Workbook.VbaProject.Modules nell’oggetto VbaModule.
- Recupera il codice dal modulo desiderato usando la proprietà VbaModule.Codes.
- Sostituisci il codice e salva il file Excel usando il metodo Workbook.Save(String).
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.