엑셀에는 사용자가 직접 화면을 꾸밀 수 있도록 컨트롤을 제공합니다. 예를 들어 버튼이나 체크박스, 콤보박스, 리스트 박스 등을 말합니다. 엑셀 시트내에 양식 컨트롤 중 하나인 버튼을 추가해서 웹브라우저를 띄워보겠습니다. 웹브라우저는 사용자가 입력한 주소로 이동하도록 VBA 코드를 만들었습니다.
▼ 먼저 매크로를 실행할 버튼을 하나 만들어 보도록 하겠습니다. 클릭하면 브라우저가 뜨는 형태입니다. 이렇게 하지 않고 사용자 정의 함수를 만들어서 인수로 URL 을 받으셔도 됩니다. 매크로를 실행할 버튼을 만들기 위해 개발도구 탭을 클릭합니다. 개발도구탭에 보시면 [삽입] 리본메뉴가 있습니다. 삽입에는 여러 컨트롤들이 있는데 그 중에서 양식 컨트롤에 버튼을 추가합니다.
▼ 버튼을 추가하는 순간 매크로 지정 팝업창이 뜹니다. 이름을 작성한 후 [새로 만들기]를 클릭합니다. 새로 만들어진 매크로 이름을 선택한 후 오른쪽에 [편집] 버튼을 클릭하시면 코드을 작성할수 있는 Visual Basic 소스 입력창이 열립니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 문서에 포함된 하이퍼링크 한번에 삭제하기 ▶ 엑셀 VBA 주민번호, 이메일 문자열 잘라 내는 방법 ▶ 엑셀 Excel 웹 쿼리 이용해서 실시간 주식 시세 조회로 수익률 계산하기 ▶ 엑셀 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 소스를 콘솔에 출력해 보았습니다.
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
▼ 아래 그림은 매크로 버튼을 클릭했을때 브라우저를 띄운 모습입니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 문서에 포함된 하이퍼링크 한번에 삭제하기 ▶ 엑셀 VBA 주민번호, 이메일 문자열 잘라 내는 방법 ▶ 엑셀 Excel 웹 쿼리 이용해서 실시간 주식 시세 조회로 수익률 계산하기 ▶ 엑셀 Excel 웹 페이지 정보 시트에서 실시간 자료 볼 수 있도록 세팅하기 ▶ 엑셀 VBA 개체, 속성, 함수, 이벤트 사용법과 사례 검색해서 참고하기 |
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 리스트 박스(ListBox) 사용하기 (0) | 2024.06.29 |
---|---|
엑셀 VBA For Each 반복문 이용해서 셀 영역 병합 및 합계 구하기 (0) | 2024.06.15 |
엑셀 VBA 영역(Range)을 배열(Array) 로 변경하기 (5) | 2024.06.15 |
엑셀 VBA 데이터 분리해서 다른 시트에 붙여 넣기 (3) | 2024.06.13 |
엑셀 VBA 통합 문서 문서가 열리는 순간 기능 구현하기 (0) | 2024.06.05 |
엑셀 VBA 날짜 관련 함수, 개체 사용하는 방법 (0) | 2024.06.02 |
엑셀 VBA 중복 데이터 재귀 호출과 반복문 사용해서 삭제하기 (0) | 2024.06.02 |
엑셀 VBA 문자열, 텍스트 숫자를 문자열 숫자로 변경하기 (0) | 2024.06.01 |