Copiar Módulo VBA - Dicas do Excel

Índice

Michelle escreve:

Desenvolvemos um aplicativo Excel que gera uma pasta de trabalho Excel exclusiva para distribuição a cada um dos 54 corretores. Preciso incluir várias macros VBA em cada uma das 54 pastas de trabalho do Excel que são distribuídas aos corretores. Como posso copiar um módulo VBA da pasta de trabalho original do Excel para cada nova pasta de trabalho do Excel?

Esta é uma ótima pergunta, Michelle. É fácil usar o comando Planilhas () .Copiar para copiar uma planilha para uma nova pasta de trabalho, mas não é tão fácil copiar um módulo para a nova pasta de trabalho. A solução envolve exportar o módulo uma vez e, em seguida, importá-lo em cada uma das 54 pastas de trabalho do corretor à medida que são concluídas. Aqui está uma parte do seu código com a solução.

' Delete any old stray copies of the module1 On Error Resume Next Kill ("C:MrXL1.bas") On Error GoTo 0 ' Export Module 1 ActiveWorkbook.VBProject.VBComponents("module1").Export ("c:MrXL1.bas") For x = 1 to 54 ThisBroker = Sheets("BrokerList").range("A" & x).value '… customization of plan omited for brevity Sheets(Array("Menu", "Plan")).Copy NBName = ActiveWorkbook.Name ' new book name ' Import Module 1 to this new book Application.VBE.ActiveVBProject.VBComponents.Import ("c:MrXL1.bas") ActiveWorkbook.SaveAs Filename:=ThisBroker ActiveWorkbook.Close Next x Kill ("C:MrXl1.bas")

Os comandos VBE.ActiveProject.VBComponents.Export e VBE.ActiveProject.VBComponents… Import cuidam de copiar as macros para os novos livros.

No Excel 2002 e mais recente, você precisa permitir explicitamente que uma macro adicione código a uma pasta de trabalho. Vá para Ferramentas, Macro, Segurança. Clique na segunda guia: Editores confiáveis. No canto inferior esquerdo, escolha Trust Access to Visual Basic Project. No Excel 2007, vá para Ícone do Office, Opções do Excel, Central de confiabilidade, Configurações da Central de confiabilidade, Configurações de macro e escolha Acesso confiável ao modelo de objeto de projeto VBA.

Cuidado

Os comandos para exportar e importar módulos, bem como os comandos para digitar novas macros em uma pasta de trabalho existente, são conhecidos coletivamente como Extensibilidade do Visual Basic ou VBE. Se sua pasta de trabalho usar qualquer comando do VBE, há uma grande chance de que a pasta de trabalho seja sinalizada por antivírus. Este é um falso positivo. O nome do suposto vírus quase sempre tem "heurística" no nome. Isso significa que o mecanismo de varredura está vendo chamadas DLL que parecem suspeitas, mas que não correspondem necessariamente a nenhum vírus conhecido. Normalmente, você pode escrever para o fabricante do software antivírus e solicitar que sua pasta de trabalho do Excel seja incluída na lista de permissões, depois de explicar o que está fazendo e por que é uma boa coisa a fazer.

Artigos interessantes...