PROCX Sem o Microsoft 365 – Como Usar em Qualquer Versão do Excel?

Descubra como usar a função PROCX sem o Microsoft 365 no Excel, criando sua própria função no VBA.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

O que você aprende neste vídeo

Resposta rápida: Nesta aula de VBA, o Diego mostra como usar o PROCX em qualquer versão do Excel (sem o Microsoft 365): criando a sua própria função com VBA. Ele constrói do zero uma função MEUPROCX, declara os argumentos e tipos, percorre as células com um laço For, compara com o valor procurado, retorna o resultado, trata o “não encontrado” e ainda a ordem de pesquisa (de cima para baixo ou de baixo para cima).

Neste vídeo (27 min):

  • 0:00 - O problema: o PROCX não existe nas versões antigas do Excel, a solução é criar sua própria função.
  • 5:00 - Abrir o editor VBA (Alt+F11) e criar a função MEUPROCX com seus argumentos.
  • 7:00 - Declarar o tipo de cada variável (Variant, Range, Integer, Optional).
  • 9:00 - A lógica: percorrer as células do intervalo com um laço For.
  • 11:00 - Validar que os intervalos de pesquisa e de resultado têm o mesmo tamanho.
  • 14:00 - Comparar cada célula com o valor procurado e retornar o resultado correspondente.
  • 17:00 - Tratar o “não encontrado” com o argumento opcional (IsMissing).
  • 20:00 - Ordem de pesquisa (1 ou -1): inverter o laço com Step -1 para buscar de baixo para cima.

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

Função PROCX Sem o Microsoft 365 no Excel

Você sabia que é possível criar qualquer função no VBA? Isso mesmo, com o VBA você consegue replicar funções do Excel, como a PROCX, mesmo sem ter o Microsoft 365.

Neste artigo, você vai aprender a criar a função PROCX no VBA, mesmo que esteja usando uma versão antiga do Excel.

Assim, você poderá usar o PROCX sem o Microsoft 365, criando suas próprias funções personalizadas e aproveitando todos os benefícios dessa função moderna.

Como o VBA é uma linguagem de programação, é possível criar funções que automatizam tarefas, aumentam a produtividade e replicam funções mais avançadas do Excel.

Claro que você pode ir além do PROCX — o que vamos aprender aqui vale também para outras funções personalizadas que você quiser criar no VBA.

Lembre-se: a função PROCX é uma evolução do PROCV, permitindo buscas mais flexíveis e completas no Excel.

Então, pronto para criar sua própria função PROCX no VBA, usando if, for e tudo o que for preciso? Vamos lá!

Para usar o PROCX sem o Microsoft 365, você cria uma função personalizada (UDF) no VBA que reproduz o comportamento do PROCX. Abra o editor VBA (Alt+F11), insira um módulo e cole o código de uma Function que percorre o intervalo de busca e retorna o valor correspondente. Assim você tem o PROCX em qualquer versão do Excel, mesmo as que não têm a função nativa.

Como Inserir um Módulo no VBA para Criar a Função PROCX

Para criar a função PROCX no VBA, o primeiro passo é abrir o editor do VBA. Para isso, pressione o atalho de teclado Alt + F11 ou Fn + Alt + F11.

Como ainda não temos um módulo específico para esta função, vamos criar um novo módulo para manter tudo organizado.

No ambiente do VBA, vá até Inserir > Módulo. Isso abrirá uma nova caixa em branco onde escreveremos o código.

PROCX Sem o Microsoft 365

Esse novo módulo, por padrão, será nomeado como “Módulo1”.

Ícone VBAVBA Impressionador

Como automatizar praticamente qualquer tarefa repetitiva que você faça dentro do Excel. Aprenda a criar integrações do Excel com o PowerPoint, Word, Outlook e muito mais. Aprenda a criar automações para resolver tudo com apenas um clique em um botão. Tudo isso com uma única linguagem que junta todos esses programas.

Começar agoraSeta para a direita
Fundo VBATelas VBA

Função PROCX em VBA: Código Completo

Abaixo está a função que será usada para simular o comportamento da PROCX:

VBA
Function meuPROCXAula(valorProcurado As Variant, intervaloPesquisa As Range, intervaloResultado As Range, Optional seNaoEncontrado As Variant, Optional ordemPesquisa As Integer)

If intervaloPesquisa.Count <> intervaloResultado.Count Then
    meuPROCXAula = "Os intervalos possuem tamanhos diferentes"
    Exit Function
End If

If ordemPesquisa = 1 Or ordemPesquisa = 0 Then
    ini = 1
    fim = intervaloPesquisa.Count
    passo = 1
Else
    ini = intervaloPesquisa.Count
    fim = 1
    passo = -1
End If

For i = ini To fim Step passo
    If intervaloPesquisa(i) = valorProcurado Then
        meuPROCXAula = intervaloResultado(i)
        Exit Function
    End If
Next

If IsMissing(seNaoEncontrado) Then
    meuPROCXAula = "Não encontrou o valor procurado"
Else
    meuPROCXAula = seNaoEncontrado
End If

End Function

Explicação do Código

A função meuPROCXAula é criada com os seguintes argumentos:

  • valorProcurado: uma variável do tipo Variant, que pode receber qualquer valor;
  • intervaloPesquisa: tipo Range, representa o intervalo onde será feita a busca;
  • intervaloResultado: tipo Range, de onde será extraído o valor correspondente;
  • seNaoEncontrado: argumento opcional do tipo Variant, que define o valor padrão quando o item não é encontrado;
  • ordemPesquisa: argumento opcional do tipo Integer, que define a direção da busca (direta ou reversa).

1. Verificação dos Intervalos

Antes de iniciar a busca, utilizamos uma estrutura de comparação If para comparar o tamanho de intervaloPesquisa e intervaloResultado. Se forem diferentes, a função retorna a mensagem “Os intervalos possuem tamanhos diferentes” e é encerrada com Exit Function.

2. Controle da Ordem de Pesquisa

A variável ordemPesquisa define a direção da busca que será feita dentro dos intervalos. O código verifica se esse valor é 0 ou 1, o que indica uma busca direta, do início ao fim do intervalo. Qualquer outro valor indica uma busca reversa, do fim para o início.

Se ordemPesquisa for 0 ou 1:

  • A variável ini recebe o valor 1 (início do intervalo);
  • fim recebe o total de elementos no intervaloPesquisa;
  • passo é definido como 1 (busca crescente).

Caso contrário (busca reversa):

  • ini recebe o total de elementos do intervaloPesquisa;
  • fim passa a ser 1 (início do intervalo);
  • passo é definido como -1 (busca decrescente).

Essa lógica permite que a função percorra o intervalo na ordem desejada, seja para frente ou para trás, tornando o comportamento mais flexível que o da função PROCV, por exemplo

3. Estrutura de Repetição e Tratamento de Resultado

Após definir a direção da busca com base nas variáveis ini, fim e passo, a função entra em uma estrutura de repetição do tipo For. Esse loop percorre o intervaloPesquisa conforme os valores definidos, permitindo buscas crescentes ou decrescentes.

A cada iteração, o código compara o valor da célula atual (intervaloPesquisa(i)) com o valorProcurado. Se encontrar uma correspondência, retorna imediatamente o valor equivalente no intervaloResultado(i) e encerra a execução da função com Exit Function.

Caso percorra todo o intervalo sem encontrar o valor, a função verifica se o argumento opcional seNaoEncontrado foi informado:

  • Se não foi preenchido, o retorno padrão será: "Não encontrou o valor procurado";
  • Se foi preenchido, a função retorna exatamente o valor informado nesse argumento.

Essa lógica garante que a função entregue uma resposta clara e personalizável mesmo quando o valor procurado não for localizado.

Exemplo de Uso da Função PROCX em VBA no Excel

Agora que já criamos a função PROCX no VBA, podemos utilizá-la diretamente nas células do Excel, como qualquer outra função nativa do programa.

Para isso, basta digitar na célula:

Codigo
=meuPROCXAula(...)

Preenchendo os argumentos conforme a sua necessidade. Veja abaixo um exemplo prático da utilização da função personalizada:

Codigo
=meuPROCXAula(E1;B1:B6;A1:A6;"";-1)
PROCX Sem o Microsoft 365

Com isso, conseguimos simular o comportamento da função PROCX mesmo sem ter acesso ao Microsoft 365.

Perguntas frequentes sobre PROCX sem o Microsoft 365

1. Dá para usar o PROCX em versões antigas do Excel?

Nativamente não — o PROCX só existe no Microsoft 365 e no Excel 2021. Mas você pode recriá-lo com uma função personalizada em VBA, que funciona em qualquer versão, inclusive Excel 2016 e 2019.

2. O que é uma função personalizada (UDF) no VBA?

É uma função criada por você no VBA, que passa a aparecer no Excel como se fosse nativa. Com ela é possível reproduzir recursos que sua versão não tem, como o PROCX, ou criar cálculos sob medida.

3. Como criar a função PROCX no VBA?

Abra o VBA com Alt+F11, insira um Módulo (Inserir > Módulo) e escreva uma Function que recebe o valor procurado e os intervalos, percorre a busca e retorna o resultado. Depois é só usá-la na planilha como uma função comum.

4. A função PROCX em VBA é igual à original?

Ela reproduz o essencial do PROCX — buscar um valor e retornar o correspondente, com controle da ordem de pesquisa. Pode não ter todos os parâmetros avançados da versão nativa, mas resolve a grande maioria dos casos do dia a dia.

Conclusão – Função PROCX Sem o Microsoft 365 no Excel

Nesta aula, mostramos que é totalmente possível utilizar a função PROCX sem o Microsoft 365, criando uma versão personalizada com VBA.

Você viu como abrir o editor do VBA, inserir um novo módulo, construir passo a passo a função meuPROCXAula e aplicá-la diretamente em suas planilhas, como se fosse uma função nativa.

Com esse conhecimento, você não depende mais das versões mais recentes do Excel para usar funcionalidades modernas. É possível adaptar suas necessidades usando o poder do VBA e criando soluções sob medida para o seu trabalho.

Agora que você sabe como usar o PROCX sem o Microsoft 365, continue explorando outras funções que podem ser personalizadas no Excel. Essa é uma ótima forma de evoluir sua automação e resolver problemas de forma criativa.

Hashtag Treinamentos

Para acessar outras publicações de VBA, clique aqui!


Quer aprender mais sobre VBA com um minicurso básico gratuito?

Posts mais recentes de VBA

Posts mais recentes da Hashtag Treinamentos