Usando o VBA para automatizar sessões do Internet Explorer em uma planilha do Excel

Sua integração com o Windows permite o controle do Internet Explorer de diversas maneiras surpreendentes usando o script Visual Basic for Applications (VBA) de qualquer aplicativo que ofereça suporte a ele, como o Word, Outlook ou Excel.

Sua integração com o Windows permite o controle do Internet Explorer de diversas maneiras surpreendentes usando o script Visual Basic for Applications (VBA) de qualquer aplicativo que ofereça suporte a ele, como o Word, Outlook ou Excel.
Propaganda

Sua integração com o Windows permite o controle do Internet Explorer de diversas maneiras surpreendentes usando o script Visual Basic for Applications (VBA) de qualquer aplicativo que ofereça suporte a ele, como o Word, Outlook ou Excel.

A automação de VBA - especialmente a automação direta de um navegador como o IE, como você verá neste artigo - é exatamente o tipo de coisa que eleva o VBA de um script de programação conveniente para uma poderosa linguagem de automação. O que o torna tão impressionante é o fato de que muitos aplicativos com controles ou objetos são criados simplesmente com o propósito de permitir que você se integre a ele usando a linguagem de programação VBA.

Ao longo dos anos, mostramos a você como fazer algumas coisas muito legais com o VBA. Por exemplo, você pode usá-lo para enviar e-mails diretamente de dentro do Excel Como enviar e-mails de uma planilha do Excel usando Scripts VBA Como enviar e-mails de uma planilha do Excel usando Scripts VBA Mostraremos como configurar e-mails automáticos a partir do Excel usando os objetos Collaboration Data Objects, (CDO) e VBA. Nossos modelos de código tornam isso muito mais fácil do que parece! Leia mais, você pode exportar automaticamente as tarefas do Outlook para uma planilha do Excel Como exportar suas tarefas do Outlook para o Excel Com o VBA Se você é um fã da Microsoft, uma coisa boa que pode ser dito sobre MS Office produtos, pelo menos, é como é fácil integrar cada um deles com o outro .... Leia mais, e você pode até mesmo projetar seu próprio navegador da Internet Como fazer seu próprio navegador de Internet básica Usando o VBA Como fazer Seu Próprio Navegador Básico de Internet Usando o VBA Quando você realmente pára para pensar sobre isso, um navegador da Internet em sua forma mais simples não é realmente tão impressionante quanto um aplicativo. Quero dizer, sim, a Internet é incrível para os padrões de qualquer um. O conceito de ligar ... Leia Mais! Não são apenas produtos da Microsoft também. Existem aplicativos de terceiros de todos os tipos de fornecedores que integraram VBA e objetos compatíveis em seu software - do SDK do Adobe Acrobat ao SDK do ObjectARX para o AutoCAD - há maneiras de “conectar-se” a mais aplicativos do que você provavelmente imagina.

A ideia

Nesse caso, você conectará o Excel ao IE. Por que o IE? Como o Internet Explorer está tão bem integrado ao sistema operacional que você realmente não precisa fazer muito para começar a usar a automação do IE no VBA em outros produtos da Microsoft, como o Word ou o Excel. Essa é a beleza de. Neste artigo, você verá como essa automação funciona e, em um artigo futuro, você verá como fazer quase o mesmo tipo de coisa com outros navegadores.

O que vou mostrar aqui é um aplicativo aparentemente simples, mas tem muitos aplicativos onde você pode usar esse código para fazer uma variedade de coisas legais com o seu navegador. A linha inferior é que você vai criar uma planilha do Excel com o objetivo de salvar rapidamente todas as janelas abertas do navegador com um clique de um botão. Você pode salvar esta planilha e ir embora ou desligar o computador.

Volte uma hora ou três dias depois, abra a planilha, clique em outro botão e os URLs salvos reabrirão no mesmo número de guias que você tinha antes. O uso legal óbvio disso seria armazenar uma biblioteca inteira de configurações de espaço de trabalho on-line comuns no Excel. Então você pode restaurar esse espaço de trabalho com um clique de um botão sem precisar encontrar todos esses URLs novamente.

Automatizando o Internet Explorer com o VBA

A primeira coisa a fazer é abrir o Excel (estou usando 2013 - outras versões são semelhantes quando se trata de programação VBA) e ir para o item de menu Desenvolvedor. Lá dentro, você verá um botão de inserção, que abaixa todos os seus controles. Selecione o controle do botão ActiveX e coloque-o na sua planilha.

IE-automation1

Presumivelmente, você já criou um cabeçalho para URLs, se quiser, mas não precisa fazê-lo. Essa é realmente uma biblioteca de armazenamento de URL, então os cabeçalhos não importam. Depois de adicionar o botão, clique duas vezes nele para abrir o editor do VBA. No canto inferior esquerdo, você verá as propriedades do novo botão.

Renomeie-o para algo como cmdSaveURLs e defina a legenda como "Salvar URLs" - indicando que este é o botão para salvar todos os URLs abertos no seu navegador IE.

save-urls

Em seguida, vá para o menu Ferramentas na parte superior do editor VBA, clique em Referências no menu e role a lista longa para encontrar a referência “Microsoft Internet Controls”. Clique na caixa de seleção à esquerda e, em seguida, clique em OK.

IE-automation3

Agora você está pronto para rolar. Na área de texto do editor, você deve ver uma linha que diz “Private Sub cmdSaveURLs_Click ()”. Se não vir, clique na caixa suspensa à esquerda, acima da área de texto, e encontre cmdSaveURLs na lista. Selecione-o e ele criará a função Click () para você.

Este é o código que você deseja inserir nessa função:

 im IE como objeto Dim shellWins como novo ShellWindows Dim IE_TabURL As String Dim intRowPosition As Integer intRowPosition = 2 Para cada IE Em shellWins IE_TabURL = IE.LocationURL If IE_TabURL vbNullString Então Sheet1.Range ("A" & intRowPosition) = IE_TabURL intRowPosition = intRowPosition + 1 End If Next Set shellWins = Nada Definir IE = Nothing 

A referência do Microsoft Scripting Runtime faz com que você possa acessar o objeto ShellWindows, que permite iterar pelo Windows e localizar as instâncias do IE abertas. Este script irá localizar todos os URLs que você abriu e gravá-lo na planilha do Excel.

IE-automation4

Então, em teoria, se você estiver trabalhando em algo como blogar, e tiver alguns itens abertos, como janelas de pesquisa, seu editor de blog ou uma janela de calendário - todas essas guias estarão ativas. Se você tiver que desligar ou sair com pressa, pode ser realmente difícil salvá-lo copiando todos esses URLs.

IE-automation5

Com seu novo script do Excel, basta clicar no botão Carregar URLs e ele será carregado diretamente na planilha.

IE-automation6

Uma ressalva. Se você não estiver usando uma linha de cabeçalho, então você vai querer mudar a linha "intRowPosition = 2" para "intRowPosition = 1" e isso vai começar na primeira linha, em vez de pular a linha de cabeçalho.

Abrindo o espaço de trabalho do navegador salvo

A próxima etapa deste projeto é ir na outra direção. Clique em "Carregar URLs" e faça o Excel iniciar o IE e recarregue todos os URLs que você salvou na planilha. Aqui está a aparência da função cmdLoadURLs_Click ().

 Dim IE Como objeto Dim shellWins As New ShellWindows Dim IE_TabURL As String Dim intRowPosition As Integer intRowPosition = 2 Set IE = CreateObject ("InternetExplorer.Application") IE.Visible = True IE.Navigate Sheet1.Range ("A" & intRowPosition) While IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1 Enquanto Sheet1.Range ("A" & intRowPosition) vbNullString IE.Navigate Sheet1.Range ("A" e intRowPosition), CLng (2048) enquanto IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1 Wend Set IE = Nothing 

Existem alguns passos aqui, mas como você pode ver, o código não é tão longo ou complicado. Você cria uma nova instância do IE, torná-lo visível (isso abrirá o IE sem carregar uma URL). Em seguida, ele carregará o primeiro URL na lista.

IE-automation8

A parte "While IE.Busy" do script aguarda até que a página esteja totalmente carregada e, em seguida, passe para o restante dos URLs da sua planilha, abrindo uma nova guia (é o que o "CLng (2048)" faz, até Ele atinge uma célula em branco na sua planilha, então ele vai parar de abrir novas abas.Aqui está o meu navegador IE com todas as quatro abas originais recuperadas usando o script de automação Excel IE.

IE-automation9

Resumo

Meu objetivo real era fazer com que planilhas individuais configurassem coleções de guias para tarefas como pesquisar e escrever em meu próprio blog, escrever sobre MakeUseOf, fazer um trabalho de projeto de SEO no site ou uma lista completa de outras funções ou projetos que exigem uma coleção salva de guias que são sempre usadas.

Usando uma planilha para armazenar essas configurações e automatizando abri-los em um navegador pode economizar muito tempo ... e é realmente muito legal também.

Você usa algum tipo de automação do IE em seus aplicativos VBA? Veja algum outro uso legal para este tipo de controle do IE do Excel? Compartilhe seus pensamentos e comentários na seção de comentários abaixo!

In this article