이번 포스팅에서는 엑셀 매크로 만들기 두번째 글로 엑셀 웹크롤링 방법에 대해 알아볼 예정입니다. 초보자도 가능하도록 거의 코딩 없이 네이버 증권을 통해 주식 정보를 가져오는 방법에 대해 정리해보았습니다.
앞선 포스팅에서는 엑셀 매크로 (VBA)란 무엇인지 기본적인 개념에 대해 알아보고 엑셀 매크로 사전 설정 방법에 대해 정리한 바 있습니다.
엑셀 매크로 – VBA는 마치 엑셀에 내장된 마법사 같은 도구입니다. 엑셀은 기본적으로 데이터를 입력하고 관리하거나 간단한 수식을 사용해 계산하는 등의 작업을 할 수 있는 강력한 스프레드시트 프로그램입니다. 그러나 때로는 더 복잡한 작업이 필요할 때가 있습니다. 이때 엑셀 VBA가 도움이 됩니다.
VBA(Visual Basic for Applications)는 엑셀에서 사용할 수 있는 프로그래밍 언어로, 마치 마법사처럼 사용자가 원하는 작업을 자동화하거나 사용자 정의 기능을 추가하는 데 사용됩니다. VBA를 이용하면 단순한 데이터 입력 및 관리를 넘어서, 사용자가 원하는 기능을 직접 만들어 사용할 수 있습니다.
예를 들어, 엑셀에서 특정 셀의 색상을 변경하거나 복잡한 계산을 수행하고 싶다면, VBA를 사용해 이러한 작업을 간편하게 할 수 있습니다. 또한, 반복되는 작업을 자동화하여 시간을 절약할 수도 있습니다.
간단히 말해서, 엑셀 VBA는 마치 엑셀의 마법사와 같은 역할을 하는 프로그래밍 언어로, 엑셀에서 사용할 수 있는 강력한 도구를 제공하여 사용자가 원하는 작업을 자동화하거나 사용자 정의 기능을 만들 수 있게 도와줍니다. (참고로 VBA 사용법에 대해서는 마이크로소프트의 VBA 참고 페이지도 도움이 됩니다.)
엑셀 VBA 관련 글을 찾아보면 거의 비주얼베이직 코딩 위주로 설명이 되어 있는 경우가 많은데, 실제로는 거의 코딩 없이도 만들 수 있습니다.
이번 포스팅에서는 엑셀 웹크롤링 방법에 대해 데이터 가져오기를 통해 주식 정보를 가져오고 이 방법을 코딩 없이 매크로 기록으로 자동으로 코드를 생성해주는 방법을 정리해보겠습니다.
엑셀 웹크롤링 (1) 웹 데이터 가져오기
엑셀의 ‘데이터 가져오기 – 웹’ 기능은 인터넷에서 웹 페이지의 정보를 엑셀 시트로 가져오는 데 사용됩니다. 이 기능은 웹사이트의 표, 데이터나 다양한 정보를 엑셀로 가져와 데이터를 관리하거나 분석할 때 유용하게 사용됩니다.
예를 들어, 주식 시장의 실시간 데이터나 경쟁사의 제품 목록과 가격 정보, 통계자료 등을 엑셀로 가져와 분석하거나 관리할 수 있습니다. 이렇게 엑셀로 가져온 데이터를 사용하면, 직접 웹사이트를 방문하지 않고도 원하는 정보를 수집하고 분석할 수 있으며, 시간을 절약할 수 있습니다.
이번 포스팅에서는 코딩 없이 엑셀 매크로를 사용해 웹 데이터를 가져오는 방법에 대해 알아볼 예정입니다 네이버 증권 페이지에 있는 정보를 가져오는 예제를 통해 살펴보겠습니다.
1. 데이터 탭 선택 > “웹” 선택
엑셀에서 데이터 탭을 선택한 다음 “데이터 가져오기” 리본 메뉴에서 “웹”을 선택합니다.
2. 웹 쿼리 > “기본” 선택 > “URL : https://finance.naver.com/sise/sise_market_sum.naver” 입력
새 웹 쿼리 창이 나타나면 아래와 같이 “기본”을 선택하고 URL에 네이버 증권의 시가총액 순서대로 주식 정보를 볼 수 있는 “https://finance.naver.com/sise/sise_market_sum.naver“를 입력하고 “확인” 버튼을 눌러 줍니다.
3. 탐색창 > “코스피” 선택 > “로드” 선택
웹 페이지가 로드되면 가져올 데이터가 있는 테이블 리스트가 좌측에 나타납니다. “코스피”를 선택하고 우측 하단의 “로드” 버튼을 눌러 줍니다.
데이터 가져오기 대화상자에서 데이터를 가져올 엑셀 시트와 셀 위치를 선택하고 확인을 선택하면 아래와 같이 해당 페이지에 코스피 시가총액순으로 주식 정보가 보기 좋게 삽입된 것을 확인할 수 있습니다.
이제는 이를 매크로로 작성해주면 코딩없이 “네이버 증권에서 시가총액 별로 주식 정보 가져오기” 웹크롤링 생성이 가능합니다.
엑셀 웹크롤링 (2) 매크로 작성하기
이제 매크로를 작성하여 시가총액 정보를 가져오도록 하겠습니다. 코딩(프로그래밍) 없이 위와 같은 진행 사항(엑셀 웹크롤링)이 자동으로 코드로 만들어줍니다.
1. 개발 도구 > “매크로 기록” 선택 > 매크로 이름 지정 > “확인” 선택
개발자 탭에서 매크로 기록 버튼을 선택합니다.
매크로 기록 화면이 나타나면 매크로 이름을 지정하고 확인 버튼을 눌러 줍니다.
2. 쿼리 및 연결 > 쿼리 선택 후 마우스 우클릭 > “다음으로 로드” 선택
우측의 “쿼리 및 연결”의 코스피 관련 쿼리를 선택해줍니다.
만약 쿼리 및 연결이 보이지 않는다면 상단의 “데이터” 탭을 선택하고 “쿼리 및 연결”을 눌러 실행해줍니다.
그 다음 코스피 관련 쿼리를 선택하여 마우스 오른쪽 버튼 선택 후 “다음으로 로드…”을 선택해줍니다.
3. 데이터 가져오기 > “표” 선택 >데이터 들어갈 위치 지정 > “확인” 선택
데이터 가져오기 화면이 나타나면 표시 방법으로 “표”를 선택하고 데이터가 들어갈 위치를 지정해준 다음 “확인”을 선택해줍니다.
4. 개발도구 > “기록 중지” 선택 > “Visual Basic” 선택 > 코드 확인
이제 다시 개발 도구 탭을 선택하고 “코드” 부분에 있는 “기록 중지”를 선택하면 지금까지 진행한 부분이 코드로 기록된 것을 확인할 수 있습니다.
확인을 위해서는 “Visual Basic” 아이콘을 선택해주면 됩니다. 그러면 아래와 같이 네이버증권의 시가총액 정보를 가져오는 엑셀 웹크롤링 코드가 만들어진 것을 확인할 수 있습니다.
이번 포스팅에서는 엑셀 웹크롤링 방법에 대해 데이터 가져오기를 통해 주식 정보를 가져오고 이 방법을 코딩 없이 매크로 기록으로 자동으로 코드를 생성해주는 방법을 정리해보았습니다.
앞선 포스팅에서 정리한 엑셀 사용법 및 노하우 관련 글은 아래와 같습니다.