Usando o vba para automatizar sessões internet explorer a partir de uma planilha excel
Sua integração com o Windows permite o controle do Internet Explorer em um número de maneiras surpreendentes usando o Visual Basic for Applications roteiro (VBA) a partir de qualquer aplicativo que suporte isso, como o Word, Outlook ou Excel.
Conteúdo
VBA automação - especialmente automatizar diretamente de um navegador como o IE como você verá neste artigo - é exatamente o tipo de coisa que eleva VBA a partir de um roteiro de programação conveniente para uma linguagem poderosa de automação. O que torna tão impressionante é o fato de que muitas aplicações com controles ou objetos são criados simplesmente com a finalidade de permitir que você integrar-lo usando a linguagem de programação VBA.
Através dos anos, nós mostramos-lhe como fazer algumas coisas bem legais com VBA. Por exemplo, você pode usá-lo para enviar e-mails diretamente de dentro do Excel, você pode automaticamente tarefas de exportação do Outlook para uma planilha do Excel, e você ainda pode projetar seu próprio navegador de Internet! Não são apenas os produtos da Microsoft tanto. Existem aplicações 3-parte de todos os tipos de vendedores que integraram VBA e objetos compatíveis em seu software - a partir do Adobe Acrobat SDK para o ObjectARX SDK para AutoCAD - Há maneiras de “plug em” mais aplicações do que você provavelmente imagina.Como enviar e-mails de uma planilha do Excel Usando Scripts VBAComo enviar e-mails de uma planilha do Excel Usando Scripts VBANo passado, eu usei e-mail muito em meus trabalhos em lotes e outros scripts automatizados, assim como eu descrevi em artigos anteriores. Estes são grandes para aqueles momentos em que você tem um script ...consulte Mais informação
A ideia
Neste caso, você está indo para conectar Excel com o IE. Por que o IE? Porque o Internet Explorer é tão bem integrado com o sistema operacional que você realmente não tem que fazer muito para começar a usar a automação IE em VBA em outros produtos Microsoft, como Word ou Excel. Essa é a beleza de dentro. Neste artigo você vai ver como essa automação funciona, e em um artigo futuro você vai ver como fazer quase o mesmo tipo de coisa com outros navegadores.
O que eu estou indo mostrar-lhe aqui é uma aplicação aparentemente simples, mas tem muitas aplicações onde você poderia usar esse código para fazer uma variedade de coisas legais com o seu browser. A linha inferior é que você está indo para criar uma planilha do Excel para o propósito de salvar rapidamente todas as suas janelas do navegador abertas 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 essas URLs salvas reabrirá no mesmo número de abas que você tinha antes. O uso legal óbvio disso seria para armazenar toda uma biblioteca de configurações do espaço de trabalho on-line comuns em Excel. Em seguida, você pode restaurar essa área de trabalho com um clique de um botão, sem ter de encontrar todos esses URLs novamente.
Automatizar o Internet Explorer com VBA
A primeira coisa a fazer é abrir Excel (estou usando 2013 - outras versões são semelhantes quando se trata de programação VBA) e vá para o item de menu Developer. Dentro de lá, você verá um botão de inserção, que cai todos os seus controles. Selecione o controle ActiveX botão e colocá-lo em sua planilha.
Presumivelmente, você já criou um cabeçalho para URLs, se quiser, mas você não tem que. Esta é realmente uma biblioteca de armazenamento URL, então cabeçalhos realmente não importa. Depois de adicionar o botão, clique duas vezes sobre ele para abrir o editor VBA. No canto inferior esquerdo, você verá as propriedades para seu novo botão.
Renomeá-lo para algo como cmdSaveURLs e definir a legenda para “Salvar URLs” - indicando que este é o botão para salvar todas as URLs abertas a partir do navegador IE.
Em seguida, vá ao menu Ferramentas na parte superior do editor VBA, clique em referências no menu e role a lista tempo para encontrar a referência “Microsoft Internet Controls”. Clique na caixa à esquerda do mesmo, e, em seguida, clique em OK.
Agora você está pronto para rolar. Na área de texto editor, você deve ver uma linha que lê “Private Sub cmdSaveURLs_Click ()”. Se você não vê-lo, clique na caixa suspensa esquerda acima da área de texto e encontrar cmdSaveURLs na lista. Selecioná-lo, e ele vai criar a função Click () para você.
Este é o código que você deseja inserir essa função:
im IE Como ObjectDim shellWins Como Nova ShellWindowsDim IE_TabURL Como StringDim intRowPosition Como IntegerintRowPosition = 2 Porque Cada IE Em shellWinsIE_TabURL = IE.LocationURLIf IE_TabURL lt; gt; vbNullString ThenSheet1.Range ("UMA" & intRowPosition) = IE_TabURLintRowPosition = intRowPosition + 1End IfNextSet shellWins = NothingSet IE = Nada
A referência Microsoft Scripting Runtime faz com que você possa acessar os ShellWindows objeto, que lhe permite interagir através do Windows e localizar as instâncias do IE que você tenha aberto. Este script irá localizar cada URL que você tem aberto e escrevê-lo para a planilha Excel.
Assim, em teoria, se você está trabalhando em algo como blogs, e você tem alguns itens abertos, como janelas de pesquisa, seu editor de blog, ou uma janela de calendário - todas essas abas estará ativo. Se você tiver que desligar ou sair com pressa, pode ser uma verdadeira dor para salvar onde você está copiando todos os URLs.
Video: Aula 3 Macros para Excel: pegar dados na Internet
Com o seu novo script Excel, basta clicar no botão URLs de Carga, e ele vai carregá-lo para a direita na planilha.
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 seu espaço de trabalho do browser guardadas
A próxima etapa deste projeto é ir em outra direção. Clique no botão “URLs Load” e ter Excel IE lançamento e recarregar todas essas URLs que você salvou na planilha. Aqui está o que a função cmdLoadURLs_Click () deve ser parecida.
Dim IE Como shellWins ObjectDim como nova ShellWindowsDim IE_TabURL Como StringDim intRowPosition Como IntegerintRowPosition = 2Selecção IE = CreateObject ("InternetExplorer.Application") IE.Visible = TrueIE.Navigate Sheet1.Range ("UMA" & intRowPosition) Enquanto IE.BusyDoEventsWendintRowPosition = intRowPosition + 1Quando Sheet1.Range ("UMA" & intRowPosition) lt; gt; vbNullStringIE.Navigate Sheet1.Range ("UMA" & intRowPosition), CLng (2048) Enquanto IE.BusyDoEventsWendintRowPosition = intRowPosition + 1WendSet IE = Nada
Existem algumas etapas 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 (isto irá abrir o IE sem carregar uma URL). Em seguida, ele vai carregar a primeira URL na lista.
A parte “Enquanto IE.Busy” do script espera até que a página é totalmente carregada, e depois passar para o resto das URLs em sua planilha, abrindo uma nova guia (que é o que a “CLng (2048)” faz, até ela atinge uma célula em branco na planilha, então ele vai parar de abrir novas abas. Aqui está meu navegador IE com todos os quatro guias originais recuperadas usando o script de automação Excel IE.
Video: Microsoft Excel, Importando Dados da Internet
Resumo
Meu objetivo real de fazer isso era ter planilhas individuais configurar coleções de guias para tarefas como pesquisar e escrever no meu próprio blog, escrevendo sobre MakeUseOf, fazendo o trabalho de projeto de SEO no site, ou uma lista inteira de outras funções ou projetos que requerem uma coleção salva de guias que são sempre utilizados.
Video: create Excel workbook from HTML table using Internet Explorer
Usando uma planilha para armazenar essas configurações e automatizar abri-los em um navegador pode salvar um monte de tempo ... e é realmente muito legal também.
Você usa algum tipo de automação IE em seus aplicativos VBA? Veja outros usos legais para esse tipo de controle IE a partir do Excel? Compartilhe seus pensamentos e comentários na seção de comentários abaixo!