Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀(Excel) VBA - 웹브라우저(인터넷 익스플로러) 띄우는 방법

엑셀(Excel)/VBA
반응형

엑셀(Excel) VBA - 웹브라우저(인터넷 익스플로러) 띄우는 방법

 

환경 : Microsoft Excel 2014

 

엑셀에는 사용자가 직접 화면을 꾸밀 수 있도록 컨트롤을 제공합니다. 예를 들어 버튼이나 체크박스, 콤보박스, 리스트 박스 등을 말합니다. 엑셀 시트내에 양식 컨트롤 중 하나인 버튼을 추가해서 웹브라우저를 띄워보겠습니다. 웹브라우저는 사용자가 입력한 주소로 이동하도록 VBA 코드를 만들었습니다. 

 

먼저 매크로를 실행할 버튼을 하나 만들어 보도록 하겠습니다. 클릭하면 브라우저가 뜨는 형태입니다. 이렇게 하지 않고 사용자 정의 함수를 만들어서 인수로 URL 을 받으셔도 됩니다. 매크로를 실행할 버튼을 만들기 위해 개발도구 탭을 클릭합니다. 개발도구탭에 보시면 [삽입] 리본메뉴가 있습니다. 삽입에는 여러 컨트롤들이 있는데 그 중에서 양식 컨트롤에 버튼을 추가합니다. 

엑셀(Excel) VBA - 웹브라우저(인터넷 익스플로러) 띄우는 방법

 

버튼을 추가하는 순간 매크로 지정 팝업창이 뜹니다. 이름을 작성한 후 [새로 만들기]를 클릭합니다. 새로 만들어진 매크로 이름을 선택한 후 오른쪽에 [편집] 버튼을 클릭하시면 코드을 작성할수 있는 Visual Basic 소스 입력창이 열립니다.

엑셀(Excel) VBA - 웹브라우저(인터넷 익스플로러) 띄우는 방법

 

매크로 함수에 아래 함수를 복사해서 넣으시면 됩니다. 먼저 익스플로러 객체를 생성합니다. 생성한 익스플로러 객체는 각종 옵션설정이 가능합니다. 아래 설정된 값들은 브라우저가 이동할 페이지 주소 Navigate, 브라우저 크기 Height, Width 등이 설정되어 있습니다.

 

With ie

     .Visible = True

     .Navigate "http://mainia.tistory.com/2442"

     .Top = 50

     .Left = 530

     .Height = 1000

     .Width = 1000

  

그리고 페이지 로딩이 완료될때 가지 기다리는 소스가 필요합니다. 그것이 Do While ie.Busy 입니다. 이 소스가 없으면 로딩속도가 느린 웹페이지에 접속했을때 에러나겠죠.

 

' 로딩할때까지 대기

Do While ie.Busy

    DoEvents

Loop

 

마지막에는 브라우저에 접속한 페이지의 HTML 소스를 콘솔에 출력해 보았습니다.

 

' HTML 소스를 콘솔에 출력

Debug.Print ie.Document.body.innerHTML

 

아래는 매크로 함수의 전체 소스입니다.

 

Sub Internet_Click()

   

    Set ie = CreateObject("InternetExplorer.Application")

   

    With ie

         .Visible = True

         .Navigate "http://mainia.tistory.com/2442"

         .Top = 50

         .Left = 530

         .Height = 1000

         .Width = 1000

   

        ' 로딩할때까지 대기

        Do While ie.Busy

            DoEvents

        Loop

 

    End With

 

    ' HTML 소스를 콘솔에 출력

    Debug.Print ie.Document.body.innerHTML

   

End Sub

 

아래 그림은 매크로 버튼을 클릭했을때 브라우저를 띄운 모습입니다.

엑셀(Excel) VBA - 웹브라우저(인터넷 익스플로러) 띄우는 방법


반응형
Posted by 녹두장군

댓글을 달아 주세요