본문 바로가기
스킬향상/엑셀

야후 파이낸스 엑셀로 가져오기 2탄(VBA)

by 맹물주먹 2024. 1. 25.

목차

    야후 파이낸스에서 정보를 들고 오기 전에 이전 포스팅을 꼭 봐야함

    https://mangmul.tistory.com/234

     

    야후 파이낸스 엑셀로 가져오기 1탄 (VBA)

    사실 체계적으로 엑셀을 배운 건 아님 필요한걸 유튜브, 블로그 등 엄청 검색해서 만들어 보고 한 거라 마음에 안들 수도 있지만, 그래도 내가 습득한 걸 복습 겸 정리해서 포스팅해 봄 오직 야

    mangmul.tistory.com

     

    이번에는 본격적으로 엑셀로 메크로를 만들어 보는데, 차근차근하면 어렵지 않다. 

    나도 엑셀에 대해서 모르지만 차근차근 만들었기 때문에 누구나가 할 수 있다고 장담함

     

     

    개발 도구 표시하기 및 세팅

    일단 VBA를 시작하기에 앞서 표시줄에 개발도구를 보이게끔 해야 한다.

     

     

     

    엑셀 리본 지정에서 개발 도구를 보이게 해야 한다.

     

    ① 파일➡옵션 클릭

    ②옵션 ➡개발도구 체크

     

    위와 같이 하면 개발 도구가 표시된다.

     

    개발도구가 보이기 시작하면

     

    ①Visual Basic으로 들어가기

    ②모듈 클릭하기

     

    위 사진처럼 도화지 같은 창이 열린다. 

     

     

    창이 열리고 나면 코드를 짜기에 앞서

     

    ①도구➡ 참조로 들어가

    ②Selenium Type Library 체크를 해주도록 하자

     

    이렇게 하면 코드 짜기에 앞서서 모든 세팅이 끝난다.

     

    출처 : pixabay.com

     

     

    주가 가격 가져오기

     

    이렇게 하면 시작하기에 앞서 세팅이 모두 끝이다.

    이제부터 본격적으로 코딩을 시작하면 된다.

     

    코딩을 하기 앞서 관련 지식은 전혀 없으며 외국 유튜브, 블로그 등 찾아보고 따라 해 보고 내가 필요한 정보를 가져오게끔 연습한 게 전부이므로 이 포스팅을 보면 누구나 할 수 있지만, 중간에 막히는 게 있어 물어보면 명쾌한 답을 못줄 수 있다.

     

     

     

    일단! 창에

     

     

     

    ① sub stock를 입력하면 자동으로 end sub가 입력된다.

    우리는 이제부터 Sub와 End Sub 사이에 코드를 만들어 주면 된다.

     

     

    ②  제목 밑에 이제 

    Dim bot As New WebDriver를 입력해 주자

    참고로 '_' 작은따옴표를 사용하면 제목으로 쓸 수 있다. 

    나중에 수정 등이 용이하게 하나하나 구분을 지어주면서 입력해 주도록 하자

     

    '여기에는 아무 말이나 자신이 알아보기 쉽게 입력'

    bot.AddArgument "--headless"

    명령어를 넣어주고 그 밑에 

    bot.Start "chrome"

    위에 명령어를 넣어주면 된다.

     

    만약에 "--headless"의 명령어를 넣지 않으면 

    크롬 새창

     

    이런 크롬창이 뜨게 되니 "--headless" 의 명령어를 넣어 새창이 뜨지 않도록 해주자

     

     

     

    이제 크롬을 시작하면 그 밑에 명령어

    link = Sheets(1). Range("A2"). Value는 Sheet1에서 A2에 있는 link를 따라가라

    라는 뜻이다.

     

    Link 주소는 포스팅 제목과 같이 야후 파이낸스에서 가져와 주면 되는데 

    출처 : https://finance.yahoo.com/quote/MMM/key-statistics?p=MMM

     

     

    여기 주소를 사용하여 가져와 주자

    3M주식을 예시로 사용했다.

     

     

     

    이제 위의 그림에 있는 주소를 A2 Cell에 가져와서 Link를 걸어줘야 하는데 

    =HYPERLINK 함수를 사용해 주면 된다.

    =HYPERLINK("https://finance.yahoo.com/quote/"&B2&"/key-statistics? p="&B2)

    ★괄호 안에 꼭 따옴표를 넣어줘야 한다.

    그리고 노란색 박스 안에 B2는 이제 우리가 TICKER를 입력하면 바뀌도록 해주면 된다.

     

    그리고 나머지 코딩

        'open Up a new Tab in chrome (java)
        bot.ExecuteScript "window.open(arguments[0])", link
        'Switch to new Tab
        bot.SwitchToNextWindow

    를 입력해주면 된다.

     

     

    이제 중요한 야후 파이낸스에서 주식 가격을 가져오자

     

    ①주식 가격 창 위에 커서를 가져가서

    우클릭➡1번을 클릭하자

     

    ②그러면 2번처럼 창이 뜬다.

     

     

    ③copy에서 copy Xpath를 복사한다.

     

     

    ★ ★ ★ 위 사진이 여기에서 가장 중요하다. ★ ★ ★

    Xpath로 복사를 해서 가져오면

    //*[@id="quote-header-info"]/div [3]/div [1]/div [1]/fin-streamer [1] 이렇게 나타나는데

     

    코드를 짜줄 때는

    ("//*[@id='quote-header-info']/div [3]/div [1]/div [1]/fin-streamer [1]")

    위와 같이 괄호큰따옴표, 작음 따옴표를 꼭꼭 입력주어야 한다.

     

    주식 가격을 입력하는 셀을 지정해주기만 하면 끝이다.

    마지막 메시지 박스는 만들어도 안 만들어도 상관없다.

     

    만들게 되면 이렇게 귀여운 박스가 나옴

     

     

    마지막으로 단추버튼을 만들어 주면 끝이다.

     

     

    이렇게 이제 단추 버튼을 누르면 가격 창에 가격이 나오게 된다.

     

     

    가격 가져오기 마지막

     

    이게 야후파이낸스에서 원하는 지표를 가져오는 핵심이다.

    이것만 할 줄 알면 야후파이낸스에서 ERP 등 자기가 원하는 지표를 가져와서 자동으로 계산을 하게 할 수 있음

    나중에는 ERP 등 어떻게 하면 가져오는지 포스팅해보겠음

    그냥 따라만 하면 간단하게 완성할 수 있으니 도전해 보도록 하자.

     

     

    그리고 마지막으로 매크로기능을 만들고 저장을 하게 되면 저렇게 경고창이 뜨는데

    꼭 아니오를 클릭하고 파일 형식을 매크로 통합문서로 저장을 해주자

    댓글