WeekdayLife/excel

[엑셀VBA] 텍스트(입력키) 매크로

2019. 12. 30.



엑셀 텍스트(입력키) 매크로

네이버의 검색순위를 조작할때, 작업을 한다고들 하는데,

매크로를 사용한다는건 공공연한 비밀이다.

 

비슷한 맥락으로 엑셀VBA로 키를 입력할 수 있는데,

엑셀 시트에 입력한 값을 던져줄 수 있다는 장점이 있다.

 

 

이는 인터넷 브라우저에서도 쓸 수 있는데, 특히 같은 회사에서 나온

인터넷 익스플로러에 친화적인 것으로 보인다.

(불행히도 지금은 잘 쓰이지 않지만...)

 

시험삼아 한번 해보자, 

필요한 일이 많지는 않겠지만. ㅋ

 

 

 

아무도 쓸일은 없겠지만, 사용된 코드를 메모해 두었다.

블로그 이곳 저곳을 기웃거리며 정리한 코드라 정신없으니, 필요하신 부분만 사용하심 될듯.

 

Sub typeWriter()
    Dim win
    win = Shell("c:\windows\notepad.exe", vbNormalFocus)
   
    Dim txt As String
    Dim count As Integer
    Dim txtArr() As String
       
    txt = "this is typeWriter effect Test"
    count = Len(txt)
    ReDim txtArr(count)
   
    Call sleep
    For x = 1 To count
       
        txtArr(x) = Mid(txt, x, 1)
        If (txtArr(x) = " ") Then
            Call sleep
        End If
        SendKeys txtArr(x), True
       
    Next x
 
End Sub


Sub cr()
    Dim win

    win = Shell("c:\windows\notepad.exe", vbNormalFocus)
   
    Call sleep
        SendKeys "ID값 : " + Cells(2, 2).Value, True
    Call sleep
        SendKeys "{ENTER}", True
    Call sleep
        SendKeys "PW값 : " + Cells(2, 3).Value, True
    Call sleep
        SendKeys "{ENTER}", True
        SendKeys "끝!", True
 
End Sub

Function sleep()
    Application.Wait Now + TimeSerial(0, 0, 1)
End Function


Sub NaverLogin()
    Dim mywindow
      
     Set mywindow = CreateObject("InternetExplorer.Application")
     
     With mywindow
         .Visible = True
         .Navigate "https://nid.naver.com/nidlogin.login"
         .Height = 1000
         .Width = 1000
   
    
        ' 대기방법 #1 : 4초 강제로 대기
         ' Application.Wait Now + TimeSerial(0, 0, 4)
       
        ' 대기방법 #2
        Do While mywindow.Busy
            DoEvents
        Loop
       
    End With
       
    Set mypage = mywindow.document
    With mypage.all
        .Item("id").Value = ActiveSheet.Cells(3, 2).Value
        .Item("pw").Value = ActiveSheet.Cells(3, 3).Value
    End With
   
    Call sleep
   
    SendKeys "{ENTER}", True

End Sub