아래한글 자체 스크립트 매크로와 파이썬 코드의 속도 차이를 좁힐 방법이 있을까요??

안녕하세요. 답변감사합니다.
음… 예시 매크로를 한번만 실행할때는 한글 스크립트와 파이썬 코드 간의 시간 차이가 크지 않는데요.
제가 만들고 있는 매크로는 한페이지당 많게는 10번 넘게 눌러야 해서
반복하다 보면 그 시간차이가 꽤 크네요…
그리고 아주 심플한 코드로 테스트를 한지라 시간차이가 더 작게 보일수 있겠네요.

아래 코드를 2-3번 연속 실행해 보시면 조금더 시간차이를 느끼실듯 합니다.
한글이 열려있는 창에서 표 안에 커서를 두시고 2-3번 연속 실행해 보시면
차이를 확연히 느끼실듯 합니다.

한글스크립트

function OnScriptMacro_테스트_1()
{
	HAction.Run("Cancel");
	HAction.Run("TableCellBlock");
	HAction.Run("TableColPageDown");

	HAction.Run("TableResizeDown");
	HAction.Run("TableUpperCell")

	HAction.Run("TableResizeDown");
	HAction.Run("TableUpperCell")

	HAction.Run("TableResizeDown");
	HAction.Run("TableUpperCell")

	HAction.Run("TableResizeDown");
	HAction.Run("TableUpperCell")

	HAction.Run("TableResizeDown");
	HAction.Run("TableUpperCell")

	HAction.Run("TableResizeDown");
	HAction.Run("TableUpperCell")

	HAction.Run("TableResizeDown");
	HAction.Run("TableUpperCell")

	HAction.Run("TableResizeDown");
	HAction.Run("TableUpperCell")

	HAction.Run("TableResizeDown");
	HAction.Run("TableUpperCell")

	HAction.Run("TableResizeDown");
	HAction.Run("TableUpperCell")


	HAction.Run("Cancel");
}

파이썬 코드
*물론 아시겠지만 저는 한글버전 네오를 사용해서
if name == ‘!HwpObject.96.1’
이렇게 사용하는데, 다른분들은 버전에 맞게 숫자를 변경 하시면 됩니다.

import sys
import pythoncom 
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton
from win32com.client import Dispatch

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('테스트_01')
        self.setGeometry(100, 100, 300, 200)

        self.button_01 = QPushButton('클릭', self)
        self.button_01.move(100, 80)
        self.button_01.clicked.connect(self.cell_up)

    def cell_up(self):
        context = pythoncom.CreateBindCtx(0)
        running_coms = pythoncom.GetRunningObjectTable()
        monikers = running_coms.EnumRunning()

        for moniker in monikers:
            name = moniker.GetDisplayName(context,moniker);
            if name == '!HwpObject.96.1':   #저는 네오를 사용중이라 96.1을 사용하였습니다.
                                                            # 2010 : "!HwpObject.80.1"
                                                            # 2014 : "!HwpObject.90.1"
                                                            # NEO : "!HwpObject.96.1"
                                                            # 2018 : "!HwpObject.100.1"
                                                            # 2020 : "!HwpObject.110.1"
                                                            # 2022 : "!HwpObject.120.1"
                                                            # 2024 : "!HwpObject.130.1"
                obje = running_coms.GetObject(moniker)
                hwp = Dispatch(obje.QueryInterface(pythoncom.IID_IDispatch))

                hwp.HAction.Run("Cancel");
                hwp.HAction.Run("TableCellBlock")
                hwp.HAction.Run("TableColPageDown");

                for i in range(10):
                    hwp.HAction.Run("TableResizeDown");
                    hwp.HAction.Run("TableUpperCell")

                hwp.HAction.Run("Cancel");


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())
  • 한글스크립트
    한글스크립트

  • 파이썬
    파이썬