컴퓨터 공부/엑셀 & VBA

[엑셀vba] 인터넷 익스플로러 컨트롤하기 1(시작)

도 박사 2020. 6. 10. 22:57
반응형

[엑셀vba] 인터넷 익스플로러 컨트롤하기 2(자동로그인)

 

[엑셀vba] 인터넷 익스플로러 컨트롤하기 2(자동로그인)

이전글: [엑셀vba] 인터넷 익스플로러 컨트롤 하기 1 엑셀VBA로 옥션에 자동로그인을 해보자. 준비물 옥션 계정 정보, 옥션 로그인 주소, 크롬, 인터넷 익스플로러 매크로 진행 계획 인터넷 익스플�

godofexcel.tistory.com

[엑셀vba] 인터넷 익스플로러 컨트롤하기 3(웹 크롤링)

 

[엑셀vba] 인터넷 익스플로러 컨트롤하기 3(웹 크롤링)

[엑셀vba] 인터넷 익스플로러 컨트롤 하기 1 [엑셀vba] 인터넷 익스플로러 컨트롤 하기 1 [엑셀vba] 인터넷 익스플로러 컨트롤하기 2(자동로그인) [엑셀vba] 인터넷 익스플로러 컨트롤하기 2(자동로그�

godofexcel.tistory.com

 

지금은 알고 있지만 시간이 지나면 까먹게 된다.

 

그런 일이 발생하지 않도록 기록을 남긴다.

 

 

 


1. 준비

 

엑셀 2010을 연다.

 

비주얼 베이직 에디터(알트+F11) -> 도구 -> 참조

 

* Microsoft HTML Object Library

* Microsoft Internet Controls

* Microsoft XML, v6.0

위 세 가지 항목을 참조에서 찾은 다음 추가한다. 

(추가는 이름 앞 네모칸에 체크)

 

참조를 추가하여 준비를 한다

준비 끝.


2. 인터넷 익스플로러 열기

 

 

Sub 인터넷익스플로러열어보기()

    Dim 인터넷 As InternetExplorer
    Set 인터넷 = New InternetExplorer
    인터넷.Silent = True 
    인터넷.Visible = True 
    인터넷.navigate "www.boannews.com" 
    
End Sub

인터넷.silent = True   :인터넷 열었을 때 뜨는 경고 메시지나 메시지 상자들을 안 띄워줌

인터넷.Visible = True :매크로 실행했을 때 인터넷 창 띄울 건지 설정, false = 안 띄어줌

인터넷.navigate "www.boannews.com"    : ""안에 적힌 URL 주소로 이동

Set 인터넷 = New InternetExplorer  : 뭔지 잘 모르는데 없으면 오류남. 컴퓨터한테 함수 자리 준비해놔라 이런 느낌 같음

 

위 코드대로 실행하면 바로 보안뉴스 홈페이지가 나옴

 


3. 페이지 로딩 

 

이게 참 중요한 게 페이지 로딩이 다될때까지 기다리지 않으면 매크로가 제대로 동작하지 않게 됨

예시)

페이지 이동 후 로딩된 페이지의 html 태그를 불러오는 코드가 있음을 가정함.

1) 웹 페이지 이동 함

2) 로딩 시간 1.5초 걸림

3) 로딩 중인데 매크로는 걍 진행

4) html 태그 불러와서 변수에 담아야되는데 변수에는 Empty. 빈상태가됨

 

결론.  페이지 로딩이 다될때까지 기다린다음 매크로가 진행되어야 한다.

 

그래서 참 중요하다.

 

본인은 오빠두 엑셀 선생님한테 배운 걸로 잘 쓰고 있음

감사합니다 센세

 

 

Sub Wait_Browser(Browser As InternetExplorer, Optional t As Integer = 1)
 
While Browser.Busy Or Browser.readyState <> 4
DoEvents
Wend
 
Application.Wait DateAdd("s", t, Now)
 
End Sub

위 코드는 페이지 로딩 끝날때까지 기다림

모듈을 새로 추가하여 코드를 붙여 넣고 쓰면 됨

 

 

Test.

Sub 인터넷익스플로러열어보기()

    Dim 인터넷 As InternetExplorer

    Set 인터넷 = New InternetExplorer
    
    인터넷.Silent = True '익스플로러에서 경고팝업, 메세지 상자같은거 안뜨게 해줌
    
    인터넷.Visible = True 'true = 익스플로러창 보임, false = 안보임
    
    인터넷.navigate "www.boannews.com" '이동할 주소
    
    Wait_Browser 인터넷
    
    인터넷.navigate "www.naver.com" '이동할 주소

End Sub

위 코드를 실행하면 보안뉴스 페이지 로딩이 끝나면 네이버로 넘어감을 알 수 있다.

하지만 "Wait_Browser 인터넷"을 주석 처리하고 매크로를 실행하면 네이버가 나타난다.

 

 

 

 

 

반응형