Excel a falar o que está no Twitter

Twitter

Twitter

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.

Inserir referências

Inserir referências

Escolham na lista de referências o Microsoft Internet Controls e o Microsoft HTML Object Library.

Microsoft Internet Controls e Microsoft HTMLObject Library

Microsoft Internet Controls e 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.

Tags: ,

{ 1 comment to read ... please submit second! }

{ 1 Pingbacks/Trackbacks }

  1. Apple OSX e Ubuntu a dizer os twitts do Poupar Melhor » Poupar Melhor