Já falámos várias vezes aqui sobre fazermos mais de uma tarefa ao mesmo tempo. Algumas das coisas que podemos fazer incluem ouvir um Podcast, mas nenhuma incluía uma forma de ler o Twitter e trabalhar ao mesmo tempo. Aqui em casa já tive o Raspberry Pi a dizer os últimos 10 twitts de cada hora, mas com alguns defeitos, nomeadamente as crianças que se queixavam de cada vez que a caixa falava.
Outro dia decidi procurar como fazê-lo no Windows para ver no que dava. Queria apenas uma prova de conceito de que era possível. Algo que se implementasse em 30 minutos ou menos. O que tinha à mão na altura era o Excel e deu no que conto aqui.
O código está mesmo feito à bruta, mas quem quiser pode juntar-lhe um ciclo For ... Next
e recolher o limite do valor numa célula.
Coloquem os URL de cada conta Twitter que querem ler numa mesma coluna do Excel, por exemplo https://twitter.com/pouparmelhor
. Reservem a primeira linha para escreverem “Link” no topo de coluna. Nas novas versões de Excel vão ter de gravar com0 .xlsm e autorizar a execução de macros para poder executar o código que mostro mais abaixo.
Para inserirem o código na vossa folha de Excel, carreguem nas teclas ALT + F11. Isto vai fazer aparecer o editor de VBA (Visual Basic for Applications) do Excel e vai mostrar-vos as folhas/planilhas/sheet do Workbook. O código tem de ser inserido onde têm a coluna com os URL.
Para tudo funcionar vão ter também de juntar nas opções do Excel as funcionalidades do Internet Explorer. Isto faz-se acrescentado a referência no editor de VBA a partir do menu.
Escolham na lista de referências o Microsoft Internet Controls e o Microsoft HTML Object Library.
Selecionem a Sheet/Folha onde têm a coluna Link e passem para lá o código que se encontra abaixo.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim IE As Object
If Cells(1, Target.Column) = "Link" Then
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = False
IE.navigate ActiveCell.Value
Do
DoEvents
Loop Until IE.readyState = READYSTATE_COMPLETE
Dim Pagina As HTMLDocument
Set Pagina = IE.document
Dim Twitt As String
Twitt = "1. " & Pagina.getElementsByTagName("p")(6).innerText & vbCr & vbLf
Twitt = Twitt & "2. " & Pagina.getElementsByTagName("p")(7).innerText & vbCr & vbLf
Twitt = Twitt & "3. " & Pagina.getElementsByTagName("p")(8).innerText & vbCr & vbLf
Twitt = Twitt & "4. " & Pagina.getElementsByTagName("p")(9).innerText & vbCr & vbLf
Twitt = Twitt & "5. " & Pagina.getElementsByTagName("p")(10).innerText & vbCr & vbLf
Twitt = Twitt & "6. " & Pagina.getElementsByTagName("p")(11).innerText & vbCr & vbLf
Twitt = Twitt & "7. " & Pagina.getElementsByTagName("p")(12).innerText & vbCr & vbLf
Twitt = Twitt & "8. " & Pagina.getElementsByTagName("p")(13).innerText & vbCr & vbLf
Twitt = Twitt & "9. " & Pagina.getElementsByTagName("p")(14).innerText & vbCr & vbLf
Twitt = Twitt & "10. " & Pagina.getElementsByTagName("p")(15).innerText & vbCr & vbLf
Application.Speech.Speak Twitt
IE.Quit
End If
End Sub
De cada vez que mudarem de célula na coluna Link o Excel vai abrir o Internet Explorer, juntar 10 Twitts e lê-los em voz alta. Infelizmente o Windows XP usa um sistema de conversão para voz que é, como é que hei-de dizer… antigo.
Se experimentarem o Google Translate vão ver que a qualidade do som é muito superior. Vou tentar explorar esta qualidade para o mesmo objetivo.
{ 1 comment to read ... please submit second! }