키움증권의 OpenAPI를 엑셀 VBA로 활용할때 로그인 부분에서 이러한 에러가 발생하는 경우가 있다.
나는 파일을 저장했다가 켤때 이런 에러가 발생했는데,
키움 게시판에 물어보았더니 다음과 같은 답변이 돌아왔다.
키움 게시판에서는 별다른 도움을 얻지 못했고, 이리저리 테스트를 해보던 중 우연히 해결방법을 발견하게 되었다.
내 프로그램의 경우는
Call Worksheets("kiwoom").KHOpenAPI1.CommConnect
으로 kiwoom 시트에 있는 API OCX를 호출하여 로그인을 처리하고 있었는데,
다른 시트에 포커스가 가있는 상태에서 로그인을 시도하려고 하면 opstarter.exe 에러가 났던것이다.
따라서 아래처럼 소스를 수정하였더니, 어떤 시트에 포커스가 가있더라도 제대로 한번에 로그인이 되었다.
Worksheets("kiwoom").Activate '안하면 로그인 안됨
Call Worksheets("kiwoom").KHOpenAPI1.CommConnect
핵심은 OpenAPI 컨트롤이 있는 시트를 활성화 시키고, 로그인 메소드를 실행해야한다는 점이다.
해당 시트에 포커스가 없으면 에러를 뿜는다니.
정말 황당하고 어이없는 에러였지만, 새삼 VBA가 레거시라는 것이 느껴졌다.
하지만 난 VBA가 좋다.
쉽게 내가 원하는 결과를 다른 사람과 쉽게 공유할 수 있는 엑셀이라는 형태로 얻을 수 있어서 좋다.
VBA를 쓰는 사람이 많아졌으면 좋겠다.
'퀀트자동주식투자' 카테고리의 다른 글
엑셀 VBA에서 텔레그램(Telegram) 메세지 보내기 (0) | 2023.04.26 |
---|---|
엑셀 VBA + 셀레니움(Selenium)으로 증권정보 크롤링하기(1) (0) | 2023.04.25 |
엑셀 VBA에서 셀레니움(Selenium) 사용하기 (0) | 2023.04.24 |
젠포트를 이용한 실전주식투자(2022년 12월) (0) | 2023.01.02 |
젠포트 키움증권 vs 하이투자증권 수수료 비교해보기 (0) | 2022.12.09 |
댓글