본문 바로가기

WeekdayLife

[엑셀VBA] VBA에디터(VBE)를 VSCODE로 사용하기(XLWINGS)

엑셀의 VBE는 별로다.

VSCODE로 사용할 수 있다면... 득과 실이 있겠지만, 아무래도 득이 더 크지 않을까?

 

 

 

XLWINGS

XLWINGS는 파이썬 패키지이다. 엑셀과 파이썬을 연계해주는 많은 파이썬 패키지들이 있지만,

파이썬으로 엑셀파일을 컨트롤하는 프로그래밍을 하는 것이 아니라, VB를 사용하고, 그냥 IDE만 변경해준다는 개념이 XLWINGS에 있길래 시도해봤다. 사실 다른 툴들은 시도해 보지도 않았다.

 

 

 

 

Python in Excel alternative: Open. Self-hosted. No limits.

Write add-ins, custom functions (UDFs), and macros with Python in Excel. Run locally or on your infrastructure with all the packages you need.

www.xlwings.org

 

 

설치와 실행

#1. 엑셀을 설치(?)

#2. 파이썬을 설치

#3. VSCODE 설치

VSCODE 설정(파이썬sdk설정, vba snippet extension 등)은.. 알아서 하시리라 믿고...

#4. 파이썬 패키지 설치(PYWIN32, XLWINGS, WATCHGOD)

pywin32패키지는 설치 후, 파이썬 SDK 경로의 Scripts 폴더에 생기는 pywin32_postinstall.py 를  관리자 모드에서 실행해 줘야 한다. dll 파일을 windows/sysyem32에 복사하는 것 이외에, 레지스트리도 등록이 되고, 뭔 이상한 프로그램을 설치하는데.. 뭔지 정확하게 모르겠다.

#5. (VBA가 포함된)엑셀 파일 작성/저장

#6. 파일이 저장된 폴더를 VSCODE에서 열고, XLWINGS 실행

파이썬 터미널에서, 아래 명령어를 사용한다. 동기화의 방향(import/export)이, 내 예상과 반대라서 당황했다..

 

엑셀매크로 파일 불러오기/코드 동기화(파일은 해당하지 않음)

xlwings vba edit -f 파일명.xlsm

 

동기화 : VSCODE  → 엑셀(파일을 포함한 동기화)

xlwings vba import -f 파일명.xlsm

눈치껏 봐서 알겠지만, VSCODE에서 파일을 생성할 경우에는, Attribute VB_Name = "모듈 이름" 을 선언해 줘야한다.

 

 

 

동기화 : 엑셀 → VSCODE(파일을 포함한 동기화)

xlwings vba export -f 파일명.xlsm

 

 

 

#7. VSCODE에서 코드 작성, 저장시, VBE UPDATE

 

 

 

얼마전 파이썬하고, FLUTTER를 전부 외장 SSD로 SDK이전작업을 했는데, 망할놈의 PYWIN32가 포터블 파이썬에서는 잘 작동을 안하더라(NO MODULE... 어쩌고 에러).

덕분에 새로 파이썬을 설치하는 수고로움이 있었지만, 그래도.. 뭐 되니까..

 

끝.