Como guardar e utilizar as suas macros VBA em todos os livros do Excel?
Existem inúmeras situações em que poderá precisar de utilizar repetidamente a mesma macro VBA em diferentes pastas de trabalho do Excel — seja para automatizar cálculos repetitivos, formatar dados ou criar funções personalizadas, como converter números em palavras. Um desafio comum é que, por predefinição, as macros são armazenadas apenas no livro onde foram criadas, o que impede o acesso e a reutilização fácil em novos documentos. Felizmente, o Excel oferece várias abordagens flexíveis para tornar uma macro VBA globalmente disponível, eliminando a necessidade de copiar o código sempre que abre uma nova pasta de trabalho. Este tutorial apresenta instruções abrangentes para cada um desses métodos, garantindo que as suas macros VBA estejam sempre à mão em qualquer livro, potenciando a sua produtividade e agilizando o seu fluxo de trabalho.

Guarde e Utilize o Código VBA em Todos os Livros
Método do Livro de Macros Pessoal
Por exemplo, imagine que pretende converter números nas respetivas palavras em inglês utilizando um código VBA personalizado e garantir que esta funcionalidade está sempre disponível, independentemente do livro com que estiver a trabalhar. Com a abordagem certa, pode guardar os seus módulos VBA de forma a torná-los reutilizáveis sempre que necessário no Excel — uma solução especialmente útil para funções personalizadas ou automatizações que deseja manter sempre à mão, sem precisar de duplicar código em múltiplos ficheiros.
Para tal, pode empacotar o seu código VBA como um Suplemento Personalizado do Excel. Uma vez ativado no Excel, este suplemento disponibiliza a sua funcionalidade personalizada como uma função acessível globalmente.
Siga estes passos:
1. Prima Alt + F11 no Excel para abrir a janela «Microsoft Visual Basic para Aplicações».
2. No editor do VBA, clique em Inserir > Módulo e cole a seguinte macro na janela do módulo recém-criado.
Código VBA: Converter Converter 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 «Guardar», localizado no canto superior esquerdo da janela, ou prima simplesmente Ctrl + S para abrir a caixa de diálogo «Guardar Como».
4. Na janela «Guardar Como», introduza o nome pretendido no campo «Nome do ficheiro». No menu pendente «Especificar Formato de Salvamento», certifique-se de que seleciona Suplemento do Excel (*.xlam).
5. Clique no botão «Guardar» para guardar o seu livro como um ficheiro de Suplemento do Excel, criando um suplemento reutilizável que pode ativar a qualquer momento em qualquer livro.
6. Após guardar, regresse ao Excel e feche o livro que acabou de converter num suplemento.
7. Abra um livro novo ou existente onde pretenda utilizar a sua macro. Insira a fórmula personalizada na célula adequada (por exemplo, em B2):
=NumberstoWords(A2) 
Dirija-se ao separador Programador 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 ficheiro de suplemento que guardou anteriormente e clique em OK.
11. O seu suplemento personalizado, como por exemplo «Suplemento Converter Número em Palavras», deverá agora aparecer na lista de suplementos. Certifique-se de que está marcado e clique em OK para o ativar.
12. Agora, introduza novamente a função personalizada na célula de destino (por exemplo, B2) e prima Enter. A fórmula deverá devolver as palavras em inglês correspondentes ao número.
=NumberstoWords(A2) 13. Para aplicar rapidamente a fórmula de conversão a vários números, arraste a alça de autorreenchimento da célula para baixo e copie a função facilmente para outras células.

Dicas e Notas:
- Guardar a sua macro como um Suplemento permite-lhe usar as mesmas funções personalizadas, código ou automatizações em todos os seus livros, poupando tempo e garantindo consistência.
- Se o Excel estiver fechado ou o Suplemento for desativado posteriormente, as funções do Suplemento poderão temporariamente apresentar «#NOME?» até que o Suplemento seja novamente carregado. Para evitar confusões, certifique-se de que o Suplemento está sempre ativado no Gestor de Suplementos sempre que necessário.
- Alguns utilizadores poderão não ver o separador Programador por predefinição. Para o ativar, clique com o botão direito do rato na Faixa de Opções, selecione «Personalizar a Faixa de Opções» e ative a opção «Programador».
- É uma boa prática armazenar suplementos numa pasta permanente, evitando assim referências em falta caso os ficheiros sejam movidos ou renomeados.
Se preferir executar o código manualmente, isso também é possível e por vezes útil durante a depuração ou para utilização pontual:
- Pode atribuir uma macro à Barra de Ferramentas de Acesso Rápido para executá-la com um único clique em qualquer livro aberto. Para isso, clique com o botão direito do rato na Barra de Ferramentas de Acesso Rápido, selecione «Personalizar Barra de Ferramentas de Acesso Rápido» e adicione a sua macro.

- Também pode premir Alt + F11 para abrir o editor VBA, selecionar manualmente a sua macro e premir F5 para executar o código sempre que necessário.
Vantagens: Esta solução permite-lhe criar e partilhar funcionalidades avançadas e reutilizáveis de macro que funcionam sempre que o Suplemento estiver ativado.
Desvantagens: Os utilizadores têm de se lembrar de carregar o Suplemento e, caso partilhem livros, devem também enviar o ficheiro do Suplemento e os detalhes das funções. Além disso, os Suplementos não são compatíveis com o Excel Online.
Outra forma altamente prática de garantir que as suas macros favoritas ou mais utilizadas estejam sempre prontas em todas as sessões do Excel, independentemente do livro aberto, é utilizar o Livro de Macros Pessoal (PERSONAL.XLSB). Trata-se de um ficheiro Excel especial e oculto, carregado automaticamente sempre que o Excel é iniciado, tornando qualquer macro nele armazenada acessível em todos os livros abertos.
Cenários aplicáveis: Ideal para automatizações pessoais, scripts rotineiros de formatação ou funções utilitárias que não precise de partilhar como suplementos formais do Excel. As macros em PERSONAL.XLSB estão disponíveis no seu computador, independentemente do ficheiro aberto.
Vantagens: As macros estão disponíveis globalmente no seu perfil local do Excel e não exigem a instalação de suplementos nem de ficheiros adicionais.
Desvantagens: As macros armazenadas desta forma só podem ser utilizadas no computador e na conta onde se encontra o ficheiro PERSONAL.XLSB. Para partilhar com outras pessoas, é necessário exportar e importar manualmente os módulos.
- Para utilizar este método, comece por gravar ou criar uma macro e certifique-se de que a guarda no Livro de Macros Pessoal.
Siga estes passos:
- Abra o Excel. No separador Ver, clique em Macros e, de seguida, em Gravar Macro.
- Na caixa de diálogo, em «Guardar macro em», selecione Livro de Macros Pessoal. Conclua a gravação (pode interrompê-la imediatamente, se não for necessário).
- Prima Alt + F11 para aceder ao editor do VBA, onde encontrará um projeto com o nome PERSONAL.XLSB. Aqui, insira um novo módulo ou cole o código da macro pretendida.
- Guarde as suas alterações. O Excel cria e mantém automaticamente o livro PERSONAL.XLSB na sua pasta de arranque.
- As macros em PERSONAL.XLSB podem então ser executadas através da caixa de diálogo Macros (Alt + F8), atribuídas ao Friso ou a botões da barra de ferramentas, ou chamadas a partir do VBA.
Resolução de problemas e manutenção: Se as macros no PERSONAL.XLSB não estiverem disponíveis, verifique se o Excel está a abrir em Modo Seguro ou se as definições de segurança das macros estão definidas como «Desativar todas as macros». Além disso, o ficheiro PERSONAL.XLSB está oculto por predefinição; caso o feche acidentalmente sem guardar ou o elimine, poderá ter de gravar novamente uma macro para o recriar.
C:\Users\[YourUserName]\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSBUm Código VBA para Listar Todos os Suplementos no Excel
No Excel, pode adicionar vários suplementos para facilitar o tratamento de dados. Embora seja possível aceder à janela Opções para visualizar todos os suplementos, será que existe uma forma de os listar diretamente numa folha? Neste tutorial, apresentamos um código VBA que lista todos os suplementos no Excel.
Como Executar uma Macro VBA ao Abrir ou Fechar um Livro?
Neste artigo, explicamos como executar código VBA sempre que abrir ou fechar um livro.
Como Proteger / Bloquear Código VBA no Excel?
Tal como pode usar uma palavra-passe para proteger livros e folhas de cálculo, também pode definir uma senha para proteger as macros no Excel.
Como Utilizar um Atraso Temporal Após a Execução de uma Macro VBA no Excel?
Em certos cenários, pode ser necessário introduzir um atraso temporizado antes que uma macro VBA no Excel produza efeito. Por exemplo, ao clicar para executar uma macro específica, esta só entra em ação após 10 segundos. Este artigo mostra-lhe como conseguir exatamente isso.
As Melhores Ferramentas de Produtividade para o Office
Potencie as suas competências no Excel com Kutools para Excel e experimente uma eficiência como nunca antes.Kutools para Excel Oferece mais de 300 funcionalidades avançadas para impulsionar a produtividade e Economizar Tempo.Clique aqui para obter a funcionalidade de que mais precisa...
Office Tab Traz uma interface com separadores para o Office e torna o seu trabalho muito mais fácil
- Ative a edição e leitura com separadores no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novos separadores da mesma janela, em vez de em janelas separadas.
- Aumente a sua produtividade em 50 % e elimine centenas de cliques do rato todos os dias!
Todos os suplementos Kutools — num único instalador.
Kutools for Office reúne suplementos para Excel, Word, Outlook e PowerPoint, além do Office Tab Pro, sendo a solução ideal para equipas que trabalham em várias aplicações do Office.
- Pacote tudo-em-um— suplementos para Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Um instalador, uma licença— configuração em minutos (pronto para MSI)
- Funciona melhor em conjunto— produtividade simplificada em todas as aplicações do Office
- Teste gratuito de 30 dias com todas as funcionalidades— sem registo, sem cartão de crédito
- Melhor relação qualidade-preço— poupe face à compra individual dos suplementos
