Se você criou um suplemento para conter suas funções personalizadas do Excel, pode ter descoberto que, embora as funções funcionem bem em uma planilha do Excel, você não pode usá-las em seus procedimentos VBA em outras pastas de trabalho. É como se o Editor do Visual Basic não pudesse Vejo eles. Bem, é porque não pode! Este artigo explica como você pode consertar isso.
Em primeiro lugar, considere se isso é realmente o que você deseja fazer. Os suplementos destinam-se principalmente a adicionar funcionalidade extra às pastas de trabalho. Quando você carrega um Suplemento do Excel, sua funcionalidade torna-se imediatamente disponível para todas as suas pastas de trabalho. Se você criar um procedimento VBA que dependa de uma função personalizada contida em outra pasta de trabalho, essa outra pasta de trabalho deverá ser aberta sempre que você quiser usar sua função. O mesmo vale para uma função personalizada em um Add-In. Se o suplemento estiver carregado, tudo bem, mas suponha que você envie sua pasta de trabalho para outra pessoa ou distribua para seu grupo de trabalho. Você deve se lembrar de distribuir o Add-In também. Pode ser mais simples incluir uma cópia da função no código da pasta de trabalho para que seus procedimentos tenham acesso direto a ela (pode ser necessário torná-la uma Função privada ou mude seu nome para evitar conflitos de nomenclatura).
Não estou dizendo para não fazer isso. Você só precisa pensar sobre isso primeiro e, se tiver certeza de que o Add-In estará disponível, vá em frente. Veja como …
Quando o problema surge?
Estou escrevendo um procedimento para uma de minhas pastas de trabalho. No meu procedimento, quero usar o RemoveSpaces função que criei há um tempo atrás e salvei no meu Funções de Martin Suplemento que está instalado atualmente na minha cópia do Excel. Mas quando tento executar meu procedimento, recebo um erro.
O Editor do Visual Basic está se comportando como se a função não existisse, mas eu sei que sim e posso ver isso se olhar o código dentro do meu suplemento. Na verdade, o código funciona bem se eu executá-lo de dentro do meu suplemento.
Eu preciso que o Editor do Visual Basic seja capaz de Vejo as funções em meu suplemento de dentro do módulo de código de um diferente pasta de trabalho.
Dê ao seu add-in um nome de projeto VBA
Cada pasta de trabalho tem um Nome do Projeto VBA. É chamado VBAProject. Você pode mudar esse nome se quiser, mas normalmente não me incomodo, porque normalmente não importa.
Você já se perguntou por que todas as pastas de trabalho exibidas no Explorador de Projetos painel do editor visual básico são chamados de "VBAProject"? Se você tiver algum suplemento da Microsoft instalado, verá que ele tem um nome diferente. Os desenvolvedores da Microsoft forneceram seu Analysis ToolPak Add-In no nome do projeto VBA "funcros".
A primeira coisa a fazer é dar ao seu Add-In um nome de projeto VBA exclusivo. Isso ocorre porque você irá se referir a ele por este nome na próxima etapa e, se houver mais de um com o mesmo nome, o Editor do Visual Basic não saberá qual usar.
No Explorador de Projetos painel selecione o nome do seu suplemento. Se ainda não estiver aberto, exiba o Editor do Visual Basic Janela de Propriedades. Você verá que há apenas uma propriedade, a Nome. Digite outro nome e pressione Digitar. Você terá que obedecer às regras de nomenclatura usuais para VBA (ou seja, sem caracteres ilegais e sem espaços). Você verá que o nome é imediatamente aplicado no Explorador de Projetos.
Agora salve as alterações em seu Add-In. Certifique-se de que seu Add-In esteja selecionado no Explorador de Projetos e escolher Arquivo> Salvar.
Defina uma referência para o add-in
Nesta etapa, você informa à pasta de trabalho na qual deseja usar as funções do Add-In que o Add-In existe. Você faz isso por Definindo uma referência para o Add-In. Você pode ter se deparado com essa técnica antes, se quiser escrever um código do Excel para se comunicar com outro programa, como Panorama ou Acesso.
Se for conveniente, reinicie o Excel neste momento. Isso ocorre porque seu Add-In renomeado será recarregado e a lista que você está prestes a ver será atualizada. Se não for conveniente, não se preocupe … leia o próximo parágrafo e decida o que deseja fazer.
Abra um módulo de código na pasta de trabalho no qual deseja usar as funções do Add-In e vá para Ferramentas> Referências para abrir o Referências onde você verá uma lista de todas as bibliotecas e outros objetos (como Add-Ins) para os quais você pode definir uma referência. Se você reiniciou o Excel, esta lista terá sido atualizada e você poderá encontrar o Nome do Projeto que você deu ao seu Add-In na última etapa. Marque a caixa ao lado do nome e clique no OK botão.
Se você não reiniciou o Excel, terá que encontrar o arquivo do Add-In clicando no Navegar botão no Referências diálogo. Isso abre o Adicionar Referência janela. Mudar o Arquivos do tipo: seção para Arquivos do Microsoft Excel (*. Xls; *. Xla) em seguida, navegue até a pasta onde o Add-In está armazenado.
Selecione o seu suplemento e clique em Abrir. Isso adiciona seu Add-In à lista, onde você pode selecioná-lo e clicar OK.
NOTA: Você não precisa fazer os dois procedimentos! Escolha um ou outro dependendo se você reiniciou ou não o Excel depois de alterar o nome do projeto VBA do Add-In.
Agora você poderá usar as funções do Add-In em qualquer módulo da pasta de trabalho em que você definiu a referência e elas serão reconhecidas pelo Editor do Visual Basic …
Se você olhar para o Explorador de Projetos você verá que uma referência foi aplicada à pasta de trabalho …
É importante lembrar que adicionar uma referência se aplica apenas à pasta de trabalho para a qual você executou este procedimento. Você terá que fazer isso para cada pasta de trabalho diferente na qual deseja usar as funções do Add-In.
Sobre como distribuir seus arquivos
Quando você adiciona uma referência a um Add-In, este link para o Add-In é "conectado" ao arquivo. Se você mover o arquivo para outro computador ou distribuí-lo para seus colegas de trabalho, a pasta de trabalho encontrará o mesmo suplemento, no mesmo lugar, em seus computadores. Além disso, se o suplemento for movido ou excluído do computador, a pasta de trabalho não será capaz de localizá-lo e seu código não funcionará.
Algumas pessoas defendem que o arquivo e seu suplemento associado devem estar sempre localizados na mesma pasta para evitar os problemas que isso pode causar. Você pode, é claro, definir a referência novamente para corrigir o problema.
Leve esses fatores em consideração e você não terá problemas.