
VBA (Visual Basic for Applications) é uma linguagem de programação que é usada em arquivos MS Excel para automatizar operações relacionadas a planilhas. As macros VBA são usadas para escrever funções definidas pelo usuário que permitem acelerar as tarefas que você precisa executar manualmente. Neste artigo, você aprenderá a trabalhar com macros VBA em arquivos do MS Excel programaticamente. No final deste artigo, você poderá extrair, adicionar e modificar macros VBA em pastas de trabalho do Excel usando C#.
- Trabalhar com macros VBA usando a API C#
- Extrair macros VBA de uma pasta de trabalho do Excel
- Adicionar macros VBA a uma pasta de trabalho do Excel
- Modificar macro VBA em uma pasta de trabalho do Excel
- Obtenha uma licença gratuita
Trabalhar com macros VBA em arquivos do Excel - API C#
Aspose.Cells for .NET é uma biblioteca de classes C# projetada para automatizar a manipulação de planilhas de dentro dos aplicativos .NET. A API fornece uma ampla gama de recursos que permitem que você crie, modifique e converta pastas de trabalho do MS Excel. Além disso, a API possibilita trabalhar com macros VBA sem problemas. Aspose.Cells para .NET está disponível para download como um arquivo DLL, bem como hospedado em NuGet.
PM> Install-Package Aspose.Cells
Extraia macros VBA de um arquivo do Excel usando C#
Vamos começar extraindo as macros VBA de uma pasta de trabalho existente do Excel. A seguir estão as etapas para realizar esta operação.
- Crie um objeto da classe Workbook para carregar o arquivo Excel.
- Acesse cada módulo VBA da coleção Workbook.VbaProject.Modules no objeto VbaModule.
- Recupere o código de cada módulo usando a propriedade VbaModule.Codes.
O exemplo de código a seguir mostra como extrair a macro VBA de uma pasta de trabalho do Excel usando C#.
// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Criar objeto de pasta de trabalho do arquivo Excel de origem
Workbook workbook = new Workbook("sample.xlsm");
// Extraia o código de cada módulo VBA
foreach (VbaModule module in workbook.VbaProject.Modules)
{
string code = module.Codes;
Console.Write(code);
}
Adicionar macros VBA a um arquivo do Excel usando C#
Aspose.Cells para .NET também permite adicionar macros VBA a arquivos Excel novos ou existentes. Isso pode ser feito seguindo as etapas abaixo.
- Crie um novo arquivo Excel ou carregue um existente usando a classe Workbook.
- Adicione uma nova planilha ou obtenha a existente usando a classe Worksheet.
- Adicione um novo módulo VBA usando o método Workbook.VbaProject.Modules.Add(Worksheet) e obtenha o ID do módulo.
- Acesse o módulo VBA da coleção Workbook.VbaProject.Modules[idx] no objeto VbaModule.
- Adicione o nome do módulo usando a propriedade VbaModule.Name.
- Adicione código ao módulo usando a propriedade VbaModule.Codes.
- Salve a pasta de trabalho usando o método Workbook.Save(String, SaveFormat.Xlsm).
O exemplo de código a seguir mostra como adicionar uma macro VBA à pasta de trabalho do Excel usando C#.
// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Criar nova pasta de trabalho
Workbook workbook = new Workbook();
// Acesse a primeira planilha
Worksheet worksheet = workbook.Worksheets[0];
// Adicionar módulo VBA
int idx = workbook.VbaProject.Modules.Add(worksheet);
// Acesse o Módulo VBA, defina seu nome e 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";
// Salve a pasta de trabalho
workbook.Save("output_out.xlsm", SaveFormat.Xlsm);
Modificar a macro VBA em um arquivo do Excel usando C#
Você também pode modificar as macros VBA existentes em um arquivo do Excel usando as etapas a seguir.
- Use a classe Workbook para carregar o arquivo Excel.
- Acesse os módulos VBA da coleção Workbook.VbaProject.Modules no objeto VbaModule.
- Recupere o código do módulo desejado usando a propriedade VbaModule.Codes.
- Substitua o código e salve o arquivo do Excel usando o método Workbook.Save(String).
O exemplo de código a seguir mostra como modificar uma macro VBA em um arquivo do Excel usando C#.
// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Criar objeto de pasta de trabalho do arquivo Excel de origem
Workbook workbook = new Workbook("sample.xlsm");
// Alterar o código do módulo VBA
foreach (VbaModule module in workbook.VbaProject.Modules)
{
string code = module.Codes;
// Substituir a mensagem original pela mensagem modificada
if (code.Contains("This is test message."))
{
code = code.Replace("This is test message.", "This is Aspose.Cells message.");
module.Codes = code;
}
}
// Salve o arquivo Excel de saída
workbook.Save("output_out.xlsm");
Obtenha uma licença gratuita
Você pode usar ou avaliar o Aspose.Cells for .NET gratuitamente usando uma licença temporária válida por 30 dias. Adquira o seu agora.
Conclusão
As macros VBA em arquivos do MS Excel são usadas para automatizar vários tipos de tarefas relacionadas a planilhas. Para lidar com macros VBA programaticamente, este artigo abordou como extrair, adicionar e modificar código em módulos VBA usando C#. Você pode explorar mais sobre a API de manipulação de planilha C# usando documentação.
Veja também
Dica: você pode conferir o Aspose aplicativo da web de remoção de macro GRATUITO.