Como Salvar e Usar Suas Macros VBA em Todas as Pastas de Trabalho no Excel?
Há muitas situações em que você pode precisar usar a mesma macro VBA repetidamente em diferentes pastas de trabalho do Excel para tarefas como automatizar cálculos repetitivos, formatação de dados ou funções personalizadas, como converter números em palavras. Um desafio comum é que, por padrão, as macros são armazenadas apenas na pasta de trabalho onde foram criadas, o que significa que você não pode acessá-las ou reutilizá-las facilmente em novos documentos. No entanto, o Excel oferece vários métodos flexíveis para tornar uma macro VBA disponível globalmente, eliminando a necessidade de recopiar o código toda vez que iniciar uma nova pasta de trabalho. Este tutorial fornece instruções abrangentes para várias abordagens, garantindo que suas macros VBA estejam facilmente acessíveis em todas as pastas de trabalho, melhorando sua produtividade e fluxo de trabalho.
Salvar e Usar o Código VBA em Todas as Pastas de Trabalho
Método da Pasta de Trabalho de Macro Pessoal
Por exemplo, suponha que você queira ser capaz de converter números em suas palavras equivalentes em inglês usando um código VBA personalizado e garantir que esse recurso esteja sempre disponível, independentemente da pasta de trabalho em que está trabalhando. Com a abordagem correta, você pode salvar seus módulos VBA para que eles possam ser reutilizados sempre que necessário no Excel. Isso é especialmente útil para funções personalizadas ou automações que você deseja acessar sempre, sem duplicar o código em vários arquivos.
Para fazer isso, você pode empacotar seu código VBA como um Suplemento Personalizado do Excel. Esse suplemento pode ser habilitado no Excel e exporá sua funcionalidade personalizada como uma função disponível globalmente.
Siga estes passos:
1. Pressione Alt + F11 no Excel para abrir a janela "Microsoft Visual Basic for Applications".
2. No editor VBA, clique em Inserir > Módulo e cole a seguinte macro na janela Módulo recém-criada.
Código VBA: Converter números em palavras
Function NumberstoWords(ByVal MyNumber)
'Update by ExtendofficeDim xStr As StringDim xFNum As IntegerDim xStrPointDim xStrNumberDim xPoint As StringDim xNumber As StringDim xP() As VariantDim xDPDim xCnt As IntegerDim xResult, xT As StringDim xLen As IntegerOn Error Resume NextxP = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")
xNumber = Trim(Str(MyNumber))
xDP = InStr(xNumber, ".")
xPoint = ""
xStrNumber = ""
If xDP >0 ThenxPoint = " point "
xStr = Mid(xNumber, xDP +1)
xStrPoint = Left(xStr, Len(xNumber) - xDP)
For xFNum =1 To Len(xStrPoint)
xStr = Mid(xStrPoint, xFNum,1)
xPoint = xPoint & GetDigits(xStr) & " "
Next xFNumxNumber = Trim(Left(xNumber, xDP -1))
End IfxCnt =0xResult = ""
xT = ""
xLen =0xLen = Int(Len(Str(xNumber)) /3)
If (Len(Str(xNumber)) Mod3) =0 Then xLen = xLen -1Do While xNumber <> ""
If xLen = xCnt ThenxT = GetHundredsDigits(Right(xNumber,3), False)
ElseIf xCnt =0 ThenxT = GetHundredsDigits(Right(xNumber,3), True)
ElsexT = GetHundredsDigits(Right(xNumber,3), False)
End IfEnd IfIf xT <> "" ThenxResult = xT & xP(xCnt) & xResultEnd IfIf Len(xNumber) >3 ThenxNumber = Left(xNumber, Len(xNumber) -3)
ElsexNumber = ""
End IfxCnt = xCnt +1LoopxResult = xResult & xPointNumberstoWords = xResultEnd FunctionFunction GetHundredsDigits(xHDgt, xB As Boolean)
Dim xRStr As StringDim xStrNum As StringDim xStr As StringDim xI As IntegerDim xBB As BooleanxStrNum = xHDgtxRStr = ""
On Error Resume NextxBB = TrueIf Val(xStrNum) =0 Then Exit FunctionxStrNum = Right("000" & xStrNum,3)
xStr = Mid(xStrNum,1,1)
If xStr <> "0" ThenxRStr = GetDigits(Mid(xStrNum,1,1)) & "Hundred "
ElseIf xB ThenxRStr = "and "
xBB = FalseElsexRStr = " "
xBB = FalseEnd IfEnd IfIf Mid(xStrNum,2,2) <> "00" ThenxRStr = xRStr & GetTenDigits(Mid(xStrNum,2,2), xBB)
End IfGetHundredsDigits = xRStrEnd FunctionFunction GetTenDigits(xTDgt, xB As Boolean)
Dim xStr As StringDim xI As IntegerDim xArr_1() As VariantDim xArr_2() As VariantDim xT As BooleanxArr_1 = Array("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ")
xArr_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")
xStr = ""
xT = TrueOn Error Resume NextIf Val(Left(xTDgt,1)) =1 ThenxI = Val(Right(xTDgt,1))
If xB Then xStr = "and "
xStr = xStr & xArr_1(xI)
ElsexI = Val(Left(xTDgt,1))
If Val(Left(xTDgt,1)) >1 ThenIf xB Then xStr = "and "
xStr = xStr & xArr_2(Val(Left(xTDgt,1)))
xT = FalseEnd IfIf xStr = "" ThenIf xB ThenxStr = "and "
End IfEnd IfIf Right(xTDgt,1) <> "0" ThenxStr = xStr & GetDigits(Right(xTDgt,1))
End IfEnd IfGetTenDigits = xStrEnd FunctionFunction GetDigits(xDgt)
Dim xStr As StringDim xArr_1() As VariantxArr_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")
xStr = ""
On Error Resume NextxStr = xArr_1(Val(xDgt))
GetDigits = xStrEnd Function
3. Agora, clique no ícone "Salvar" localizado no canto superior esquerdo da janela ou simplesmente pressione Ctrl + S para abrir a caixa de diálogo "Salvar Como".
4. Na janela "Salvar Como", insira o nome desejado no campo "Nome do arquivo". Para a lista suspensa "Salvar como tipo", certifique-se de selecionar Suplemento do Excel (*.xlam).
5. Clique no botão "Salvar" para armazenar sua pasta de trabalho como um arquivo de Suplemento do Excel. Isso cria um suplemento reutilizável que pode ser habilitado a qualquer momento para qualquer pasta de trabalho.
6. Uma vez salvo, retorne ao Excel e feche a pasta de trabalho que você acabou de converter em um Suplemento.
7. Abra uma nova ou existente pasta de trabalho onde você deseja usar sua macro. Insira a fórmula personalizada na célula apropriada (por exemplo, em B2):
=NumberstoWords(A2)

8. Vá até a Guia Desenvolvedor e clique no botão Suplementos do Excel no grupo Suplementos.
9. Na caixa de diálogo Suplementos que aparece, selecione Procurar.
10. Localize e selecione o arquivo de Suplemento que você salvou anteriormente, depois clique OK.
11. Seu Suplemento personalizado, como "Suplemento Converter Número em Palavras", agora deve aparecer na lista de Suplementos. Certifique-se de que ele esteja marcado e clique OK para habilitá-lo.
12. Agora, insira a função personalizada novamente na célula de destino (como B2) e pressione Enter. Você deverá ver a fórmula retornar as palavras corretas em inglês para o número.
=NumberstoWords(A2)
13. Para aplicar rapidamente a fórmula de conversão a vários números, arraste a alça de preenchimento automático da célula para baixo para copiar a função para outras células.

Dicas & Notas:
- Salvar sua macro como um Suplemento permite que você use as mesmas funções personalizadas, código ou automações em todas as suas pastas de trabalho, economizando tempo e melhorando a consistência.
- Se o Excel for fechado ou o Suplemento for desabilitado posteriormente, as funções do Suplemento podem mostrar temporariamente "#NOME?" até que o Suplemento seja carregado novamente. Para evitar confusão, certifique-se de que o Suplemento esteja sempre habilitado no gerenciador de Suplementos quando necessário.
- Alguns usuários podem não ver a guia Desenvolvedor por padrão. Para habilitá-la, clique com o botão direito na faixa de opções, escolha "Personalizar a Faixa de Opções" e marque a opção "Desenvolvedor".
- É uma boa prática armazenar Suplementos em uma pasta permanente para evitar referências perdidas se os arquivos forem movidos ou renomeados.
Se você preferir executar o código manualmente, isso também é possível e às vezes útil ao depurar ou para uso ad hoc:
- Você pode atribuir uma macro à Barra de Acesso Rápido para execução com um clique em qualquer pasta de trabalho visível. Para fazer isso, clique com o botão direito na Barra de Acesso Rápido, selecione "Personalizar Barra de Acesso Rápido" e, em seguida, adicione sua macro.
- Você também pode pressionar Alt + F11 para abrir o editor VBA, selecionar manualmente sua macro e pressionar F5 para executar o código conforme necessário.
Vantagens: Essa solução permite criar e compartilhar funcionalidades ricas e reutilizáveis de macros que funcionam sempre, desde que o Suplemento esteja habilitado.
Desvantagens: Os usuários devem lembrar de carregar o Suplemento e, ao compartilhar pastas de trabalho, também devem compartilhar o arquivo de Suplemento e os detalhes da função. Além disso, Suplementos não podem ser usados no Excel Online.
Outro método altamente prático para garantir que suas macros favoritas ou mais usadas estejam prontas em cada sessão do Excel, independentemente da pasta de trabalho aberta, é usar a Pasta de Trabalho de Macro Pessoal (PERSONAL.XLSB). Este é um arquivo Excel especial oculto que é carregado automaticamente toda vez que o Excel é iniciado, permitindo que qualquer macro armazenada dentro dele seja acessível em todas as pastas de trabalho abertas.
Cenários Aplicáveis: Ideal para automação pessoal, scripts de formatação rotineiros ou funções utilitárias que você não precisa compartilhar como Suplementos formais do Excel. As macros em PERSONAL.XLSB estão disponíveis no seu computador, independentemente do arquivo aberto.
Vantagens: As macros estão disponíveis globalmente para o seu perfil local do Excel e não requerem instalação de suplementos ou arquivos extras.
Desvantagens: Macros armazenadas dessa maneira só podem ser usadas no computador e conta onde o PERSONAL.XLSB existe. Compartilhar com outros requer exportar e importar módulos manualmente.
- Para usar esse método, primeiro você precisa gravar ou criar uma macro e garantir que ela seja salva na Pasta de Trabalho de Macro Pessoal.
Siga estes passos:
- Abra o Excel. Na guia Exibir, clique em Macros e depois em Gravar Macro.
- No diálogo, em "Armazenar macro em", selecione Pasta de Trabalho de Macro Pessoal. Complete a gravação (você pode parar imediatamente se não for necessário).
- Pressione Alt + F11 para entrar no editor VBA, onde você verá um projeto para PERSONAL.XLSB. Aqui, insira um novo módulo ou cole seu código de macro desejado.
- Salve suas alterações. O Excel cria e mantém automaticamente a pasta de trabalho PERSONAL.XLSB em sua pasta de inicialização.
- As macros em PERSONAL.XLSB podem então ser executadas via diálogo Macros (Alt + F8), atribuídas a botões da faixa de opções ou barra de ferramentas, ou chamadas do VBA.
Solução de Problemas & Manutenção: Se as macros em PERSONAL.XLSB não estiverem disponíveis, verifique se o Excel está abrindo no Modo Seguro ou se as configurações de segurança de macros estão definidas como “Desativar todas as macros”. Além disso, PERSONAL.XLSB é oculto por padrão; se você fechá-lo acidentalmente sem salvar ou excluí-lo, pode ser necessário gravar uma macro novamente para regenerá-lo.
C:\Users\[YourUserName]\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB
Um Código VBA Para Listar Todos os Suplementos no Excel
No Excel, você pode adicionar ou inserir alguns suplementos para lidar melhor com os dados. Como sabemos, podemos ir à janela Opções para visualizar todos os suplementos, mas há alguma maneira de listar todos os suplementos em uma planilha? Agora, neste tutorial, ele fornece um código VBA para listar todos os suplementos no Excel.
Como Executar Macro VBA Ao Abrir ou Fechar a Pasta de Trabalho?
Neste artigo, eu vou te mostrar como executar o código VBA enquanto abre ou fecha a pasta de trabalho a cada vez.
Como Proteger / Bloquear Código VBA No Excel?
Assim como você pode usar uma senha para proteger pastas de trabalho e planilhas, você também pode definir uma senha para proteger as macros no Excel.
Como Usar Atraso de Tempo Após Executar Uma Macro VBA No Excel?
Em alguns casos, você pode precisar configurar um temporizador para disparar uma Macro VBA no Excel. Por exemplo, ao clicar para executar uma macro específica, ela entrará em vigor após 10 segundos. Este artigo mostrará um método para alcançar isso.
Melhores Ferramentas de Produtividade para Office
Potencialize suas habilidades no Excel com o Kutools para Excel e experimente uma eficiência sem igual. O Kutools para Excel oferece mais de300 recursos avançados para aumentar sua produtividade e economizar tempo. Clique aqui para obter o recurso que você mais precisa...
O Office Tab traz interface com abas para o Office e facilita muito o seu trabalho
- Habilite a edição e leitura com abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novas abas na mesma janela, em vez de abrir novas janelas.
- Aumente sua produtividade em50% e reduza centenas de cliques do mouse todos os dias!