Tenho pesquisado na internet uma forma de selecionar uma parte de uma página web, para copiar esse conteúdo para a área de transferência e colar o conteúdo copiado em diversos aplicativos, como Excel, Word, Bloco de Notas...
A ideia é selecionar tudo que estiver dentro de uma determinada tag numa página web, como:
Código: Selecionar todos
<div> ----- </div>,
<table> ----- </table>,
<img ---->,
<div><img ---><table><tr><td>------</td></tr></table></div>
Código: Selecionar todos
Private aIE As InternetExplorer
Public Sub Main()
Dim obj As Object
Set obj = Elemento("img",10) '# décima imagem do documento
Set obj = Elemento("div",20) '# vigésima "div" do documento
Set obj = Elemento("table",5) '# quinta tabela do documento
'obj.Focus '# O método focus não seleciona o elemento.
.
.
End Sub
Private Function Elemento(Tag As String, Ocorrencia As Integer) As Object
Set Elemento = IE.Document.all.tags("" & Tag)(Ocorrencia) '# Se não colocar "" & Tag, gera erro.
End Function
Private Function IE() As InternetExplorer
If (aIE Is Nothing) Then
Set aIE = New InternetExplorer
aIE.Visible = True
aIE.Navigate "Endereço de uma página web."
Do While (aIE.Busy) Or (aIE.ReadyState <> READYSTATE_COMPLETE)
VBA.DoEvents
Loop
End If
Set IE = aIE
End Function
Das pesquisas realizadas, destaco:
Sendo IE uma instância do InternetExplorer, o comando "IE.ExecWB OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT" seleciona todo o conteúdo da página ativa da web.
Já o comando "IE.ExecWB OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT" copia o conteúdo selecionado na página ativa da web, para a área de transferência. Portanto, a parte de copiar o conteúdo selecionado está superado.
Para colar o conteúdo da área de transferência o método a ser utilizado depende do aplicativo em que esse dado será inserido. Como: "wks.Paste", sendo wks uma instância do Excel.Worksheet, no excel.
Outro forma de colar o conteúdo da área de transferência é fazendo o uso do objeto DataObject.
Código: Selecionar todos
Dim MyData as DataObject
Dim sTexto As String
Set MyData = New DataObject
MyData.GetFromClipboard '# Captura o conteúdo da área de transferência.
sTexto = MyData.GetText '# Insere em sTexto apenas o texto do conteúdo da área de transferência.
Mas se o objeto da área de transferência for apenas uma imagem não sei como fazer para inserir esse conteúdo em uma variável.
Resumindo: A quem possa, gostaria de saber como faço para selecionar uma parte de uma página web e como consigo atribuir a uma variável uma imagem que esteja na área de transferência.
Grato pela atenção e colaboração.