파이썬으로 스크립트 매크로 실행

import win32com.client as win32
import os
import time

현재 파이썬 스크립트의 위치를 기준으로 ‘문제’ 폴더 경로 설정

script_dir = os.path.dirname(os.path.abspath(file))
problem_dir = os.path.join(script_dir, ‘문제’)

‘문제’ 폴더 내의 모든 .hwp 파일 목록 가져오기

hwp_files = [f for f in os.listdir(problem_dir) if f.lower().endswith(‘.hwp’)]

한글 워드 프로세서 객체 생성

hwp = win32.gencache.EnsureDispatch(“HWPFrame.HwpObject”)

한글 창 표시

hwp.RegisterModule(“FilePathCheckDLL”, “FilePathCheckerModule”)
hwp.XHwpWindows.Item(0).Visible = True

파일별로 처리

for hwp_file in hwp_files:
file_path = os.path.join(problem_dir, hwp_file)

try:
    print(f"Processing file: {file_path}")

    # 문서 열기
    hwp.Open(file_path)
    time.sleep(1)  # 문서 열기 대기

    # 매크로 실행
    hwp.RunScriptMacro("OnScriptMacro_예시", 0, 0)
    time.sleep(1)  

    # 저장 경로를 원본 파일 경로로 설정 (덮어쓰기)
    hwp.Save()

    # 문서 닫기
    hwp.XHwpDocuments.Close(isDirty=False)

except Exception as e:
    print(f"파일 {hwp_file} 처리 중 오류 발생: {e}")
    continue

한글 종료

hwp.Quit()
print(“완료.”)

위와 같이 파이썬으로 스크립트 매크로를 해당 폴더에 있는 한글 파일들 전체에 적용하고 싶은데
RunScriptMacro에서 매크로가 실행되지 않는데 혹시 어떤 문제가 있는 것일까요?

RunScriptMacro가 한글 버전에 따라서 지원을 안하는 경우가 있나요?

안녕하세요.
코드상 문제는 없어보입니다.
스크립트 매크로가 없을경우 동작을 안할꺼같습니다.
혹시 PC에 여러개의 한글이 깔려있으실까요?
각 한글버전마다 가지고 있는 스크립트 매크로는 다르기 때문에 다른 버전에도 동일하게 있어야할것 같습니다.
감사합니다 ^^

1개의 좋아요

감사합니다~
한글 버전 맞춰서 진행하니 문제 없이 실행되네요