Jump to content

owesleycosta

Membros
  • Contagem de Conteúdo

    1
  • Ingressou

  • Última visita

Postagens postado por owesleycosta

  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...