![]()
VBA를 활용한 데이터 수집의 필요성

VBA를 통해 데이터를 수집하는 방법은 많은 장점을 제공합니다. 첫째, 자동화된 프로세스를 통해 데이터를 실시간으로 업데이트할 수 있습니다.
투자자들은 수시로 변화하는 주식 가격, EPS(주당순이익), PER(주가수익비율) 등 다양한 지표를 필요로 합니다. 이러한 데이터를 수작업으로 입력하는 것은 비효율적이며, 실수가 발생할 가능성이 높습니다.따라서 VBA를 활용한 자동화는 매우 유용합니다. 둘째, VBA를 활용하면 특정 조건에 맞는 데이터를 선별하여 가져올 수 있습니다.예를 들어, 특정 주식의 EPS가 일정 기준 이상일 때만 데이터를 가져오거나, 특정 산업군의 주식만을 대상으로 데이터를 수집할 수 있습니다. 이러한 필터링 기능은 투자자에게 필요한 데이터만을 효율적으로 수집할 수 있는 기회를 제공합니다.셋째, 한번 설정해 놓으면 반복적으로 사용할 수 있어 시간 절약에 큰 도움이 됩니다. 일일이 정보를 검색하고 수집하는 대신, 설정된 매크로를 실행함으로써 손쉽게 데이터를 가져올 수 있습니다.| 장점 | 설명 |
|---|---|
| 자동화 | 실시간으로 데이터 업데이트 가능 |
| 데이터 필터링 | 조건에 맞는 데이터만 선택적으로 수집 |
| 시간 절약 | 반복적인 작업을 매크로로 자동화하여 시간 효율성 증가 |
개발 도구 설정 및 환경 구축

VBA를 활용하기 위해서는 먼저 엑셀에서 개발 도구를 활성화해야 합니다. 이는 다음과 같은 간단한 절차로 수행할 수 있습니다.
- 엑셀 파일을 열고, 상단 메뉴에서 '파일'을 클릭합니다.
- '옵션'을 선택하고, '리본 사용자 지정'을 클릭합니다.
- '개발 도구' 체크박스를 활성화하여 리본 메뉴에 개발 도구를 추가합니다.
이제 개발 도구가 활성화되었으므로, VBA 코드를 작성할 수 있는 환경이 준비되었습니다. 다음 단계로는 Selenium을 설치해야 합니다.
Selenium은 웹 브라우저를 자동으로 제어하는 데 사용되는 도구로, 이를 통해 야후 파이낸스의 데이터를 수집할 수 있습니다.Selenium 설치 방법
- Selenium Basic을 다운로드합니다. 이 파일은 SeleniumBasic GitHub에서 찾을 수 있습니다.
- 다운로드한 파일을 설치합니다.
- Chrome 웹 드라이버를 다운로드합니다. 이는 사용 중인 Chrome 브라우저의 버전에 맞는 드라이버를 ChromeDriver에서 다운로드하여 설치합니다.
- 다운로드한 ChromeDriver 압축을 풀고, Selenium 설치 폴더에 덮어씁니다. 이 폴더의 경로는 일반적으로
C:\Users\사용자\AppData\Local\SeleniumBasic입니다.
이제 Selenium을 사용할 준비가 완료되었습니다.
| 설치 단계 | 설명 |
|---|---|
| Selenium Basic | GitHub에서 다운로드 후 설치 |
| Chrome Driver | 사용하는 Chrome 버전에 맞는 드라이버 다운로드 및 설치 |
| 경로 설정 | 다운로드한 드라이버를 Selenium 폴더에 덮어쓰기 |
VBA 코드 작성 및 데이터 수집

VBA 코드를 작성하기 위해서는 개발 도구에서 Visual Basic Editor를 열어야 합니다. 다음 단계에 따라 코드를 입력해 보겠습니다.
- VBA Editor 열기: '개발 도구' 탭에서 'Visual Basic'을 클릭합니다.
- 모듈 추가: 왼쪽의 프로젝트 탐색기에서 '모듈'을 클릭하여 새로운 모듈을 추가합니다.
- 코드 입력: 아래와 같이 코드를 입력합니다.
```vba Sub StockDataCollection() Dim bot As New WebDriver bot.AddArgument "--headless" bot.Start "chrome"
Dim link As String
link = Sheets(1).Range("A2").Value
bot.ExecuteScript "window.open(arguments[0])", link
bot.SwitchToNextWindow
' 주가 정보를 가져오는 Xpath를 입력합니다.
Dim stockPrice As String
stockPrice = bot.FindElementByXPath("//*[@id='quote-header-info']/div[3]/div[1]/div[1]/fin-streamer[1]").Text
' 엑셀에 주가 정보를 입력합니다.
Sheets(1).Range("B2").Value = stockPrice
bot.Quit
End Sub ```
위 코드에서 주의할 점은 Xpath를 정확하게 입력해야 한다는 것입니다. 이 Xpath는 야후 파이낸스에서 주가 정보를 가져오는 경로를 설정하는 부분입니다.
이와 유사한 방식으로 EPS, PER, 배당성향 등의 정보를 가져올 수 있습니다.주가 정보 수집 예시
이제 주가 정보를 수집하는 방법을 살펴보겠습니다. 위의 코드에서 stockPrice 변수를 통해 주가 정보를 수집하고, 이를 엑셀의 B2 셀에 입력합니다.
| 데이터 종류 | Xpath 예시 | 엑셀 셀 |
|---|---|---|
| 주가 | //*[@id='quote-header-info']/div[3]/div[1]/div[1]/fin-streamer[1] |
B2 |
| EPS | //*[@id='quote-summary']/div[2]/table/tbody/tr[4]/td[2] |
C2 |
| PER | //*[@id='quote-summary']/div[2]/table/tbody/tr[3]/td[2] |
D2 |
매크로 실행 및 데이터 활용

VBA 코드를 작성한 후, 매크로를 실행하여 데이터를 수집할 수 있습니다. 매크로를 실행하는 방법은 다음과 같습니다.
- 엑셀의 '개발 도구' 탭에서 '매크로'를 클릭합니다.
- 작성한 매크로 이름을 선택하고 '실행'을 클릭합니다.
매크로가 실행되면, 엑셀 시트에 주가, EPS, PER 등의 데이터가 자동으로 입력됩니다. 이 정보를 바탕으로 투자 결정을 내리거나, 자신의 투자 전략을 수립하는 데 활용할 수 있습니다.
데이터 활용 예시
수집한 데이터는 다양한 방식으로 활용할 수 있습니다. 예를 들어, 특정 주식의 EPS와 PER을 비교 분석하여 투자 가치를 평가하거나, 배당 성향을 통해 안정적인 수익을 기대할 수 있는 주식을 찾는 데 유용합니다.
이를 통해 투자자의 포트폴리오를 다양화하고, 보다 전략적인 투자 결정을 내릴 수 있습니다.| 활용 방법 | 설명 |
|---|---|
| EPS 및 PER 분석 | 주식의 가치를 평가하여 투자 결정에 활용 |
| 배당 성향 분석 | 안정적인 수익을 기대할 수 있는 주식 찾기 |
| 포트폴리오 다양화 | 수집한 데이터를 바탕으로 다양한 투자 전략 수립하기 |
결론
이 글에서는 야후 파이낸스에서 데이터를 엑셀로 가져오기 위한 VBA 활용법을 상세히 설명하였습니다. 데이터 수집을 자동화함으로써 시간과 노력을 절약할 수 있으며, 필요한 정보를 손쉽게 활용할 수 있습니다.
VBA와 Selenium을 통해 자신만의 투자 도구를 만들어 보시기 바랍니다. 이를 통해 투자 결정을 보다 효율적으로 내릴 수 있을 것입니다.지속적으로 발전하는 금융 시장에서 자신의 투자 전략을 강화하기 위해서는 이러한 자동화 도구가 매우 중요합니다. 앞으로도 다양한 기술을 활용하여 더 나은 투자 성과를 얻으시길 바랍니다.