
Aprenda a usar VBA para clicar em botões HTML sem atributo nome
Neste post tutorial você vai aprender como simular um clique em botões HTML via VBA mesmo quando eles não têm um atributo name
— algo comum ao lidar com automações em WebBrowser usando o Internet Explorer.

Problema: botão HTML sem atributo name
Ao automatizar uma ação de clique via VBA no Internet Explorer, o método mais comum é usar getElementsByName
. No entanto, quando o botão HTML não possui esse atributo, é necessário utilizar alternativas como querySelector
com seletores CSS.
Exemplo de botão em HTML:
<input type="submit" value="Login" onclick="submitForm();" />
Erro comum em VBA:
objIE.document.getElementsByName("Login")(0).Click
Alternativa funcional usando seletores:
objIE.document.querySelector("[onclick='submitForm();']").click
Outras possibilidades incluem:
objIE.document.querySelector("[value=Login]").click
objIE.document.querySelector("[type=submit]").click
Para enviar o formulário diretamente, utilize:
objIE.document.getElementsByTagName("form")(0).submit
Quando há múltiplos elementos iguais
Você pode utilizar:
objIE.document.querySelectorAll("[type=submit]").item(1).click
A indexação começa do zero, ou seja, item(1)
acessa o segundo botão do tipo submit.
Exemplo de botão com ID e CSS embutido
Exemplo real de botão HTML encontrado em sistemas mais complexos:
<button type="button" id="botaoFlatConfirmar" onclick="if (critica(...)) { consultar(); }" style="background: url(...); height: 22px;" title="Confirmar"> Confirmar </button>
O atributo id="botaoFlatConfirmar"
pode ser utilizado diretamente com JavaScript/VBA.
Função VBA com XPath e ID
Você pode utilizar a função abaixo em um módulo:
Public Function getXPathElement(sXPath As String, objElement As Object) As HTMLBaseElement ' Função recursiva que navega pela árvore de nós HTML para localizar elementos por XPath ' [conteúdo da função mantido como no original] End Function
Exemplo de uso:
Set ele = getXPathElement("/table/tbody[3]/tr[1]/td[2]/input[1]", HTMLDoc.getElementById("botaoFlatConfirmar")) If Not ele Is Nothing Then ele.Click End If
Dicas práticas para automação com segurança
- Evite usar sua carteira principal para testes ou automações em sites desconhecidos.
- Use navegadores em modo sandbox para testar scripts VBA com WebBrowser.
- Utilize ferramentas como Guia de seletores CSS para identificar elementos HTML corretamente.
Sempre crie uma frase de segurança única para jogos, @CanalQb e qualquer outra coisa de origem desconhecida. Nunca reutilize sua carteira principal.