본문 바로가기
퀀트자동주식투자

opstarter.exe를 찾을 수 없습니다. VBA 에러 해결방법

by 사막장 2023. 4. 24.

키움증권의 OpenAPI를 엑셀 VBA로 활용할때 로그인 부분에서 이러한 에러가 발생하는 경우가 있다.

 

나는 파일을 저장했다가 켤때 이런 에러가 발생했는데,

키움 게시판에 물어보았더니 다음과 같은 답변이 돌아왔다.

 

아, 예....

키움 게시판에서는 별다른 도움을 얻지 못했고, 이리저리 테스트를 해보던 중 우연히 해결방법을 발견하게 되었다.

내 프로그램의 경우는 

Call Worksheets("kiwoom").KHOpenAPI1.CommConnect

으로 kiwoom 시트에 있는 API OCX를 호출하여 로그인을 처리하고 있었는데,

다른 시트에 포커스가 가있는 상태에서 로그인을 시도하려고 하면 opstarter.exe 에러가 났던것이다.

따라서 아래처럼 소스를 수정하였더니, 어떤 시트에 포커스가 가있더라도 제대로 한번에 로그인이 되었다.

Worksheets("kiwoom").Activate '안하면 로그인 안됨    
Call Worksheets("kiwoom").KHOpenAPI1.CommConnect

핵심은 OpenAPI 컨트롤이 있는 시트를 활성화 시키고, 로그인 메소드를 실행해야한다는 점이다.

 

해당 시트에 포커스가 없으면 에러를 뿜는다니.

정말 황당하고 어이없는 에러였지만, 새삼 VBA가 레거시라는 것이 느껴졌다.

 

하지만 난 VBA가 좋다.

쉽게 내가 원하는 결과를 다른 사람과 쉽게 공유할 수 있는 엑셀이라는 형태로 얻을 수 있어서 좋다.

VBA를 쓰는 사람이 많아졌으면 좋겠다.

댓글