Jump to content

owesleycosta

Membros
  • Contagem de Conteúdo

    1
  • Ingressou

  • Última visita

Informações Pessoais

  • Cidade
    Londrina
  • Estado
    Paraná (PR)

Clientes & Parceiros

  • Você é um cliente TecnoSpeed?
    Sim
  • Você é um parceiro da Casa do Desenvolvedor?
    Não

Conquistas de owesleycosta

0

Reputação na Comunidade

  1. Pessoal, na minha empresa não podemos utilizar qualquer linguagem de programação se não o Excel/VBA (sim, é triste). Fiz algumas pesquisas e pelo que parece, para o objetivo que estou buscando, o VBA é péssimo. Preciso que a macro simule o mouse e o teclado, mas por algum motivo, o clique esquerdo não esta funcionando... O mouse movimenta, as teclas ALT+TAB e CTRL+P funcionam. Mas o clique para então digitar o que consta na célula designada, não funciona. Alguém pode me ajudar? Segue o código: Private Type POINTAPI x As Long y As Long End Type Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long) Private Const MOUSEEVENTF_LEFTDOWN = &H2 Private Const MOUSEEVENTF_LEFTUP = &H4 Sub Executar() Dim i As Integer Dim celula As Range Dim texto As String ' Define a planilha onde as informações estão localizadas Dim planilha As Worksheet Set planilha = ThisWorkbook.Sheets("TemplateMacro") ' Define o número de vezes que o processo será repetido (com base na quantidade de informações na coluna A) Dim numRepeticoes As Integer numRepeticoes = planilha.Cells(Rows.Count, 1).End(xlUp).Row - 1 ' Loop para repetir o processo For i = 1 To numRepeticoes ' Obtém o texto da célula atual (coluna A) Set celula = planilha.Cells(i + 1, 1) texto = celula.Value ' Pressionar ALT + TAB AppActivate Application.Caption Application.SendKeys ("%{TAB}") Application.Wait Now + TimeValue("00:00:01") ' Mover o mouse até X:474 Y:306 Application.Wait Now + TimeValue("00:00:01") MouseMove 474, 306 ' Clicar botão esquerdo MouseClick vbLeftButton ' Inserir texto na célula A2 Application.Wait Now + TimeValue("00:00:03") planilha.Range("A2").Value = texto ' Mover o mouse até X:473 Y:333 Application.Wait Now + TimeValue("00:00:03") MouseMove 473, 333 ' Clicar botão esquerdo MouseClick vbLeftButton ' Inserir texto na célula A2 Application.Wait Now + TimeValue("00:00:03") planilha.Range("A2").Value = texto ' Mover o mouse até X:315 Y:634 Application.Wait Now + TimeValue("00:00:04") MouseMove 315, 634 ' Clicar botão esquerdo MouseClick vbLeftButton ' Mover o mouse até X:862 Y:325 Application.Wait Now + TimeValue("00:00:04") MouseMove 862, 325 ' Clicar botão esquerdo MouseClick vbLeftButton ' Aguardar 4 segundos Application.Wait Now + TimeValue("00:00:04") ' Pressionar as teclas CTRL + P Application.SendKeys "^p" ' Aguardar 4 segundos Application.Wait Now + TimeValue("00:00:04") ' Pressionar a tecla ENTER Application.SendKeys "~" ' Aguardar 6 segundos Application.Wait Now + TimeValue("00:00:06") ' Mover o mouse até X:844 Y:311 MouseMove 844, 311 ' Clicar botão esquerdo MouseClick vbLeftButton ' Aguardar 2 segundos Application.Wait Now + TimeValue("00:00:02") ' Inserir texto na célula A2 planilha.Range("A2").Value = texto ' Mover o mouse até X476 Y:297 Application.Wait Now + TimeValue("00:00:02") MouseMove 476, 297 ' Clicar botão esquerdo MouseClick vbLeftButton ' Mover o mouse até X:1062 Y:687 Application.Wait Now + TimeValue("00:00:02") MouseMove 1062, 687 ' Clicar botão esquerdo MouseClick vbLeftButton ' Aguardar 2 segundos Application.Wait Now + TimeValue("00:00:02") ' Mover o mouse até X:553 Y:13 MouseMove 553, 13 ' Inserir texto "OK" na célula B2 planilha.Range("B2").Value = "OK" Next i End Sub ' Função para simular um clique do mouse Private Sub MouseClick(ByVal Button As Integer) Dim MousePoint As POINTAPI GetCursorPos MousePoint mouse_event Button, MousePoint.x, MousePoint.y, 0, 0 End Sub ' Função para mover o mouse para uma determinada posição Private Sub MouseMove(ByVal x As Long, ByVal y As Long) SetCursorPos x, y End Sub
×
×
  • Create New...