본문 바로가기

vba5

엑셀 VBA에서 텔레그램(Telegram) 메세지 보내기 오늘은 엑셀 VBA에서 텔레그램 메세지를 보내는 코드를 포스팅 해보려고 한다. Function tele(msg As String) apikey = "본인의 APIKEY" botid = "본인의 BOTID" strdata = "chat_id=" & botid & "&text=" & msg URL = "https://api.telegram.org/bot" & apikey & "/sendMessage?" Dim whr As Object Set whr = CreateObject("winhttp.winhttprequest.5.1") With whr .Open "POST", URL .setRequestHeader "content-type", "application/x-www-form-urlencoded" .send.. 2023. 4. 26.
엑셀 VBA + 셀레니움(Selenium)으로 증권정보 크롤링하기(1) 오늘은 엑셀 VBA와 셀레니움을 활용해 증권정보를 얻고, 시트에 저장하는 코드를 짜보려고 한다. 우선 이전 단계를 통해 셀레니움을 설치하여 구동할 준비를 완료하였다. 그리고 증권정보를 얻을 페이지로 들어가보자. 나는 네이버 증권에서 정보를 얻어와보려고 한다. 나는 외국인비율, 상장주식수를 빼고 영업이익을 추가하여 조회하고 싶다. 매번 수동으로 체크할 수 없기 때문에 셀레니움에게 해당 칸을 한번씩 클릭하라는 명령을 내려야한다. 클릭하려는 칸을 셀레니움이 이해 할 수 있는 단어로 바꾸기 위해 F12 키를 눌러준다. F12키를 누르고 노란색 칠해진 아이콘을 클릭한다. 저 아이콘을 클릭하고 원래 창으로 돌아가서 클릭하고자 하는 체크박스 위에 커서를 가져간다. 외국인비율 체크박스는 id 가 "option15" 이.. 2023. 4. 25.
opstarter.exe를 찾을 수 없습니다. VBA 에러 해결방법 키움증권의 OpenAPI를 엑셀 VBA로 활용할때 로그인 부분에서 이러한 에러가 발생하는 경우가 있다. 나는 파일을 저장했다가 켤때 이런 에러가 발생했는데, 키움 게시판에 물어보았더니 다음과 같은 답변이 돌아왔다. 키움 게시판에서는 별다른 도움을 얻지 못했고, 이리저리 테스트를 해보던 중 우연히 해결방법을 발견하게 되었다. 내 프로그램의 경우는 Call Worksheets("kiwoom").KHOpenAPI1.CommConnect 으로 kiwoom 시트에 있는 API OCX를 호출하여 로그인을 처리하고 있었는데, 다른 시트에 포커스가 가있는 상태에서 로그인을 시도하려고 하면 opstarter.exe 에러가 났던것이다. 따라서 아래처럼 소스를 수정하였더니, 어떤 시트에 포커스가 가있더라도 제대로 한번에 로.. 2023. 4. 24.
엑셀 VBA에서 셀레니움(Selenium) 사용하기 엑셀은 정말정말 강력한 도구이다. 데이터베이스로도 활용할 수 있고, 조금만 프로그래밍을 할 줄 안다면 인터넷에서 정보를 긁어오는 스크래핑(scraping) 도 가능한 툴이다. 이전에는 Internet Explorer 를 활용하여 웹과 연동할 수 있었는데, Edge로 브라우저가 바뀌면서 해당 메소드가 지원되지 않는 것 처럼 보인다. 그래서 이제는 Selenium(셀레니움)을 활용해서 웹에 접근한다. 크게 단계는 다음과 같다. 1. SeleniumBasic 설치 2. ChromeDriver 설치 SeleniumBasic 설치 SeleniumBasic은 Selenium 을 Basic 환경, 즉 VBA 환경에서 작동할 수 있도록 만들어주는 툴이다. 아래의 링크로 들어가 Seleniumbasic-2.0.9.0 을.. 2023. 4. 24.
KOSPI200 종목 일별 종가 자동수집 엑셀(feat. VBA) 예전에 만들어 사용하던 KOSPI200 종목의 일별 종가를 자동수집 하는 엑셀 파일을 공유해보려고 한다. 작동 매커니즘은 다음과 같다. 코스피200 종목 코드를 저장해둔 시트를 확인한다. 네이버 증권을 통해 종목 코드 별로 종가를 확인한다. 코드별 시트에 종가를 입력한다. 2로 돌아가서 200번 반복한다. 미리 설정한 조건을 만족하는지 확인한다. 텔레그램으로 그날그날의 설정 조건에 만족하는지 매수 매도 시그널을 보낸다. 만들었을 당시에는 환율도 수집하도록 만들었던것 같다. 백테스트도 만들었었는데, 지금 보니 내가 봐도 ? 한 것들이 많다. 프로그램을 만들적에는 주석과 설명을 잘 달아둬야겠다는 교훈을 다시금 얻게 되었다. 그리고 파이썬을 배우고 하면서 보니 VBA랑 흡사한 점이 참 많은 것으로 보인다. 지.. 2022. 5. 15.