원하는대로 돌아가는 방식은 아니지만 커맨드라인을 통해 레지스트리 정보를 추출하거나 엑셀 버전을 골라 들고오는 로직을 매번 까먹고 다시 만드는 것도 일이라 기억난 김에 올려둔다.

(전에 만들어둔 로직들은 대체 다 어디 간 거지...)


@echo OFF

setlocal ENABLEEXTENSIONS


::설치된 엑셀 경로를 가져오기

set REGPATH=HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Application\CLSID

FOR /F "usebackq tokens=3" %%A IN (`REG QUERY %REGPATH% /ve`) DO (set CLSID=%%A)

if not defined CLSID (

    @echo 엑셀이 설치되어 있지 않습니다. 엑셀 설치 후 실행해주세요...

    pause

    goto error_end

)

set EXCELREGPATH=HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\%CLSID%\LocalServer32

FOR /F "usebackq tokens=3" %%A IN (`REG QUERY %EXCELREGPATH% /ve`) DO (set EXCELPATH=%%A)

if not defined EXCELPATH (

    @echo 엑셀 경로가 올바르지 않습니다. 엑셀 설치 후 실행해주세요...

    pause

    goto error_end

)

if not exist %EXCELPATH% (

    @echo 엑셀 실행 파일이 존재하지 않습니다. 엑셀 설치 후 실행해주세요...

    pause

    goto error_end

)


::엑셀 매크로 직접 실행

%EXCELPATH% res\ObjectTemplates.xlsm /a ThisWorkbook.InsertToDb



Posted by OOJJRS
,