
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#.
- Trabaje con macros de VBA utilizando la API de C#
- Extraiga macros de VBA de un libro de Excel
- Agregar macros de VBA a un libro de Excel
- Modificar macro VBA en un libro de Excel
- Obtenga una licencia gratis
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.
- Cree un objeto de la clase Workbook para cargar el archivo de Excel.
- Acceda a cada módulo de VBA desde la colección Workbook.VbaProject.Modules en el objeto VbaModule.
- Recupere el código de cada módulo usando la propiedad VbaModule.Codes.
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.
- Cree un nuevo archivo de Excel o cargue uno existente usando la clase Workbook.
- Agregue una nueva hoja de trabajo u obtenga la existente usando la clase Worksheet.
- Agregue un nuevo módulo VBA usando el método Workbook.VbaProject.Modules.Add(Worksheet) y obtenga la ID del módulo.
- Acceda al módulo VBA desde la colección Workbook.VbaProject.Modules[idx] en el objeto VbaModule.
- Agregue el nombre del módulo usando la propiedad VbaModule.Name.
- Agregue código al módulo usando la propiedad VbaModule.Codes.
- Guarde el Workbook usando el método Workbook.Save(String, SaveFormat.Xlsm).
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.
- Use la clase Workbook para cargar el archivo de Excel.
- Acceda a los módulos de VBA desde la colección Workbook.VbaProject.Modules en el objeto VbaModule.
- Recupere el código del módulo deseado usando la propiedad VbaModule.Codes.
- Reemplace el código y guarde el archivo de Excel usando el método Workbook.Save(String).
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.