Trabajar con VBA Macro en C#

VBA (Visual Basic for Applications) es un lenguaje de programación que se utiliza en archivos de MS Excel para automatizar operaciones relacionadas con hojas de cálculo. Las macros de VBA se utilizan para escribir funciones definidas por el usuario que le permiten acelerar las tareas que debe realizar manualmente. En este artículo, aprenderá a trabajar con macros de VBA en archivos de MS Excel mediante programación. Al final de este artículo, podrá extraer, agregar y modificar macros de VBA en libros de Excel usando C#.

Trabajar con macros de VBA en archivos de Excel: API de C#

Aspose.Cells for .NET es una biblioteca de clases de C# diseñada para automatizar la manipulación de hojas de cálculo desde las aplicaciones .NET. La API proporciona una amplia gama de funciones que le permiten crear, modificar y convertir libros de trabajo de MS Excel. Además, la API permite trabajar sin problemas con macros de VBA. Aspose.Cells for .NET está disponible para descargar como un archivo DLL y alojado en NuGet.

PM> Install-Package Aspose.Cells

Extraiga macros de VBA de un archivo de Excel usando C#

Comencemos por extraer las macros de VBA de un libro de Excel existente. Los siguientes son los pasos para realizar esta operación.

El siguiente ejemplo de código muestra cómo extraer una macro de VBA de un libro de Excel usando C#.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Crear un objeto de Workbook a partir del archivo fuente de Excel
Workbook workbook = new Workbook("sample.xlsm");

// Extraer código de cada módulo de VBA
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;
    Console.Write(code);
}

Agregar macros de VBA a un archivo de Excel usando C#

Aspose.Cells for .NET también le permite agregar macros VBA a archivos de Excel existentes o nuevos. Esto se puede hacer siguiendo los pasos a continuación.

El siguiente ejemplo de código muestra cómo agregar una macro de VBA a un libro de Excel usando C#.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Crear nuevo Workbook
Workbook workbook = new Workbook();

// Acceder a la primera hoja de trabajo
Worksheet worksheet = workbook.Worksheets[0];

// Agregar módulo VBA
int idx = workbook.VbaProject.Modules.Add(worksheet);

// Accede al Módulo VBA, establece su nombre y códigos
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";

// Guardar el Workbook
workbook.Save("output_out.xlsm", SaveFormat.Xlsm);

Modificar macro VBA en un archivo de Excel usando C#

También puede modificar las macros de VBA existentes en un archivo de Excel siguiendo los siguientes pasos.

El siguiente ejemplo de código muestra cómo modificar una macro de VBA en un archivo de Excel usando C#.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Crear un objeto de Workbook a partir del archivo fuente de Excel
Workbook workbook = new Workbook("sample.xlsm");

// Cambiar el código del módulo VBA
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;

    // Reemplace el mensaje original con el mensaje modificado
    if (code.Contains("This is test message."))
    {
        code = code.Replace("This is test message.", "This is Aspose.Cells message.");
        module.Codes = code;
    }
}

// Guarde el archivo de salida de Excel
workbook.Save("output_out.xlsm");

Obtenga una licencia gratis

Puede usar o evaluar Aspose.Cells for .NET de forma gratuita con una licencia temporal válida por 30 días. Consigue el tuyo ahora.

Conclusión

Las macros de VBA en los archivos de MS Excel se utilizan para automatizar varios tipos de tareas relacionadas con las hojas de cálculo. Para manejar macros de VBA mediante programación, este artículo trata sobre cómo extraer, agregar y modificar código en módulos de VBA usando C#. Puede explorar más sobre la API de manipulación de hojas de cálculo de C# usando documentación.

Ver también

Sugerencia: es posible que desee consultar Aspose aplicación web de eliminación de macros GRATUITA.