Administre los códigos VBA del libro de Excel habilitado para macros.
Agregue un módulo VBA en C#
El siguiente código de muestra crea un nuevo libro de trabajo y agrega un nuevo módulo VBA y código de macro y guarda la salida en el formato XLSM. Una vez, abrirá el archivo de salida XLSM en Microsoft Excel y haga clic en elDesarrollador > Visual Basic comandos de menú, verá un módulo llamado “TestModule” y dentro de él, verá el siguiente código de macro.
Sub ShowMessage()
MsgBox "Welcome to Aspose!"
End Sub
Aquí está el código de muestra para generar el archivo de salida XLSM con el módulo VBA y el código de macro.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create new workbook | |
Workbook workbook = new Workbook(); | |
// Access first worksheet | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Add VBA Module | |
int idx = workbook.VbaProject.Modules.Add(worksheet); | |
// Access the VBA Module, set its name and codes | |
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"; | |
// Save the workbook | |
workbook.Save(dataDir + "output_out.xlsm", SaveFormat.Xlsm); |
Modificar VBA o Macro en C#
Puede modificar VBA o código de macro usando Aspose.Cells. Aspose.Cells ha agregado el siguiente espacio de nombres y clases para leer y modificar el proyecto de VBA en el archivo de Excel.
- Aspose.Cells.Vba
- Proyecto Vba
- VbaModuleCollection
- Módulo Vba
Este artículo le mostrará cómo cambiar el código VBA o macro dentro del archivo fuente de Excel usando Aspose.Cells.
El siguiente código de muestra carga el archivo fuente de Excel que tiene un código VBA o macro siguiente dentro de él.
Sub Button1_Click()
MsgBox "This is test message."
End Sub
Después de la ejecución del código de muestra Aspose.Cells, el código VBA o Macro se modificará de esta manera
Sub Button1_Click()
MsgBox "This is Aspose.Cells message."
End Sub
Puedes descargar elarchivo fuente de Excel y elarchivo de salida de Excel de los enlaces dados.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create workbook object from source Excel file | |
Workbook workbook = new Workbook(dataDir + "sample.xlsm"); | |
// Change the VBA Module Code | |
foreach (VbaModule module in workbook.VbaProject.Modules) | |
{ | |
string code = module.Codes; | |
// Replace the original message with the modified message | |
if (code.Contains("This is test message.")) | |
{ | |
code = code.Replace("This is test message.", "This is Aspose.Cells message."); | |
module.Codes = code; | |
} | |
} | |
// Save the output Excel file | |
workbook.Save(dataDir + "output_out.xlsm"); |
Temas avanzados
- Agregue una referencia de biblioteca al proyecto VBA en el libro de trabajo
- Asignar macro al control de formulario
- Compruebe si la firma digital del código VBA es válida
- Compruebe si el código VBA está firmado
- Compruebe si el proyecto de VBA en un libro de trabajo está firmado
- Compruebe si el proyecto VBA está protegido y bloqueado para su visualización
- Copie VBA Macro UserForm DesignerStorage de la plantilla al libro de trabajo de destino
- Firme digitalmente un proyecto de código VBA con certificado
- Exportar certificado VBA a archivo o transmisión
- Filtre el proyecto VBA mientras carga un libro de trabajo
- Averigüe si el proyecto VBA está protegido
- Proteger con contraseña el proyecto VBA del libro de Excel