본문 바로가기

hwp의 한줄 명령어(Run액션) 전체목록 및 실행화면

by 일코 2021. 8. 1.

국내 유일의 파이썬+한컴오피스 업무자동화 입문강의

 

움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피 - 인프런 | 강의

파이썬으로 아래아한글을 다루는 짧은 예제코드들을 소개하고, 중간중간의 결과를 GIF로 보여드립니다. 동영상 강의가 아니지만 오히려 빠르게 배울 수 있고, 따라하기도 쉽습니다., - 강의 소개

www.inflearn.com

아래 예제는 hwp.Run("액션") 방식으로 모든 설명이 진행됩니다.
win32com을 통해 오토메이션 API를 직접 실행하는 방식입니다.


만약 pyhwpx를 주로 쓰시게 된다면

pyhwpx.Hwp()를 통해 hwp 객체를 생성하신 경우에는
액션명을 직접 메서드처럼 입력하실 수 있습니다.

기존대로 hwp.Run("액션") 을 사용하실 수도 있지만
hwp.액션() 방식의 코드로도 실행하실 수 있다는 뜻입니다.

예를 들어 기존의 hwp.Run("BreakPara") 명령어는
pyhwpx.Hwp() 에서는 hwp.BreakPara() 로 실행 가능합니다.

자동완성 및 docstring이 작성되어 있어 참고하기 편합니다.

pyhwpx 예시화면

이상 pyhwpx 관련 설명을 마칩니다.


 

 

아래아한글 API는 동일한 액션을 여러 가지 방식으로 실행이 가능합니다.
그 중에서도 자주 사용하는 단순한 액션들을 "단 한 줄"의 코드로 실행할 수 있게 만든 단축명령어들이 있는데요.
이들을 잘 활용하면 굉장히 짧은 코드로 간편하게 원하는 작업을 자동화할 수 있습니다. 바로 Run 명령어인데요.

이 페이지에서는 Run("액션") 방식으로 실행하는 한 줄 명령어의 목록과, 이해를 돕기 위한 액션별 실행화면을 움짤로 만들어보았습니다. 짧은 코드와 그 결과를 동시에 눈으로 확인할 수 있다면, 쉽고 직관적으로 학습할 수 있겠다 싶은 마음에 조심스럽게 시작한 프로젝트입니다. 밑천이 다 드러나네요;; 하여튼 입문자부터 중급자까지 누구나 활용할 수 있는 치트시트 페이지를 만들고 싶습니다. 많은 응원 부탁드립니다.

- 이 커맨드들 대부분은 아래아한글 공식 API문서 중 Action Table.hwp의 내용을 참조합니다.
- 주관적인 중요도를 검은색 별 갯수로 표시하였습니다.
   (예시 : ★★★- 매우중요, ☆☆☆-안중요)
- 실행환경은 파이썬3.9, pywin32(300), 파이참(2021.1.) 등입니다.
- 가급적 이 페이지에는 메서드 자체에 대한 질문만 남겨 주시기를 부탁드립니다.
- 나름 꼼꼼하게 작성하겠지만, 꾸준히만 계속하면 2021년 안에는 거의 완성될 것으로 예상합니다.
- 2022년이 되었습니다. 여전히 완성하지는 못했네요. 요즘은 전업주부가 되어 육아도 전담하고 있습니다...
- 눈 깜빡깜빡 했더니 2023년이 되었습니다... 새해 복 많이 받으세요!!

파이썬으로 아래아한글을 제어하려면

파이썬으로 아래아한글 자동화를 수행하기 위해서는, 아래아한글을 파이썬으로 먼저 열어야 합니다. 이미 열려 있는 한글 프로그램을 파이썬으로 접근하는 것은 현재 지원되지 않습니다. (해당 인터페이스 없음)

파이썬으로 한/글을 여는 방법은, 파이썬을 열고 아래 코드를 실행하시면 됩니다. 

1. (아래 영상처럼) 파이썬 콘솔을 열고 커맨드를 입력하셔도 되고,

2. 파이썬 파일을 작성하신 후 실행하시는 방법도 가능합니다.

import win32com.client as win32
hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")
hwp.XHwpWindows.Item(0).Visible = True

A

hwp.Run("AutoChangeHangul")

구버전의 "낱자모 우선입력" 활성화 토글기능. 현재는 사용하지 않으며, 최신버전에서 <도구-글자판-글자판 자동 변경(A)> 기능에 통합되었다.

낱자모 우선입력 기능은 제거된 것으로 보임


hwp.Run("AutoChangeRun")

위 커맨드를 실행할 때마다 "글자판 자동 변경 기능"이 활성화/비활성화로 토글된다. 다만 API 등으로 텍스트를 입력하는 경우 원래 한/영 자동변환이 되지 않으므로, 자동화에는 쓰일 일이 없는 액션.

hwp.Run("AutoChangeRun")


hwp.Run("AutoSpell Run")

맞춤법 도우미(맞춤법이 틀린 단어 밑에 빨간 점선) 활성화/비활성화를 토글한다. 실행 후(비활성화시) 몇 초 뒤에 붉은 줄이 사라지는 것을 확인할 수 있다. 중간 스페이스에 유의.

hwp.Run("AutoSpell Run")


hwp.Run("AutoSpellSelect[0-16]")

맞춤법 도우미를 통해, 미리 입력되어 있는 어휘로 변경하는 액션. 어휘는 0에서부터 최대 16번 인덱스까지 존재. 예를 들어 아래 "aaple"이라는 오타의 경우 0~9까지 10개의 슬롯에 네 개의 어휘(ample, maple, apple, leap)만 랜덤하게 나타난다.

hwp.Run("AutoSpellSelect7")


B

hwp.Run("BreakColDef")

다단 레이아웃을 사용하는 경우의 "단 정의 삽입 액션(Ctrl-Alt-Enter)"이다. 아래 이미지의 중간페이지 참조. 단 정의 삽입 위치를 기점으로 구분된 다단을 하나 추가한다. 다단이 아닌 경우에는 일반 "문단나누기(Enter)"와 동일하다.

hwp.Run("BreakColDef"), 중간페이지


hwp.Run("BreakColumn")

다단 레이아웃을 사용하는 경우 "단 나누기[배분다단] 액션(Ctrl-Shift-Enter)"이다. 아래 이미지의 중간페이지 참조. 단 정의 삽입 위치를 기점으로 구분된 다단을 하나 추가한다. 다단이 아닌 경우에는 일반 "문단나누기(Enter)"와 동일하다.

hwp.Run("BreakColumn"), 우측페이지


hwp.Run("BreakLine") ★★★

라인나누기 액션(Shift-Enter). 들여쓰기나 내어쓰기 등 문단속성이 적용되어 있는 경우에 속성을 유지한 채로 줄넘김만 삽입한다. 이 단축키를 모르고 보고서를 작성하면, 들여쓰기를 맞추기 위해 스페이스를 여러 개 삽입했다가, 앞의 문구를 수정하는 과정에서 스페이스 뭉치가 문단 중간에 들어가버리는 대참사가 자주 발생할 수 있다.

hwp.Run("BreakLine")


hwp.Run("BreakPage") ★★★

쪽 나누기 액션(Ctrl-Enter). 캐럿 위치를 기준으로 하단의 글을 다음 페이지로 넘긴다. BreakLine과 마찬가지로 보고서 작성시 자주 사용해야 하는 액션으로, 이 기능을 사용하지 않고 보고서 작성시 엔터를 십여개 치고 다음 챕터 제목을 입력했다가, 일부 수정하면서 챕터 제목이 중간에 와 있는 경우 등의 불상사가 발생할 수 있다.

hwp.Run("BreakPage")


hwp.Run("BreakPara") ★★★

문단 나누기. 일반적인 엔터와 동일하다.

hwp.Run("BreakPara")


hwp.Run("BreakSection") ★★☆

구역[섹션] 나누기 액션(Shift-Alt-Enter). 새로 생성된 섹션에서는 편집용지를 다르게 설정하거나, 혹은 새 개요번호/모양을 만든다든지 할 수 있다. 단, 초깃값으로 새 섹션이 생성되는 게 아니라, 기존 섹션의 편집용지, 바탕쪽 상태, 각주/미주 모양, 프레젠테이션 상태, 쪽 테두리/배경 속성 및 단 모양 등 대부분을 그대로 이어받으며, 새 섹션에서 수정시 기존 섹션에는 대부분 영향을 미치지 않는다.

hwp.Run("BreakSection")


C

hwp.Run("Cancel") ★★★

취소 액션. Esc 키를 눌렀을 때와 동일하다. 대표적인 예로는 텍스트 선택상태나 셀선택모드  해제 또는 이미지, 표 등의 개체 선택을 취소할 때 사용한다. Cancel 과 유사하게 쓰이는 액션으로 Close(또는 CloseEx, Shift-Esc)가 있다. 

hwp.Run("Cancel")&nbsp;


hwp.Run("CaptureHandler") & hwp.Run("CaptureDialog") ☆☆☆

갈무리 시작/끝 액션. 현재 버전에서는 Run커맨드로 사용할 수 없는 것 같다. 어떤 이미지포맷으로 저장하든 오류발생.


hwp.Run("CharShapeBold") ★☆☆

글자모양 중 "진하게Bold" 속성을 토글하는 액션. 이 액션을 실행하기 전에 특정 셀이나 텍스트가 선택된 상태여야 하며, 이 커맨드만으로는 확실히 "진하게" 속성이 적용되었는지 확인할 수 없다. 그 이유는 토글 커맨드라서, 기존에 진하게 적용되어 있었다면, 해제되어버리기 때문이다. 확실히 진하게를 적용하는 방법으로는, 초기에 모든 텍스트의 진하게를 해제(진하게 두 번??)한다든지, 파라미터셋을 활용하여 진하게 속성이 적용되어 있는지를 확인하는 방법 등이 있다.

hwp.Run("CharShapeBold")


hwp.Run("CharShapeCenterline") ☆☆☆

글자에 취소선 적용을 토글하는 액션. Bold와 마찬가지로 토글이므로, 기존에 취소선이 적용되어 있다면 해제되어버리므로 사용에 유의해야 한다.

hwp.Run("CharShapeCenterline")


hwp.Run("CharShapeEmboss") ☆☆☆

글자모양에 양각 속성(글자가 튀어나온 느낌) 적용을 토글한다.

hwp.Run("CharShapeEmboss")


hwp.Run("CharShapeEngrave") ☆☆☆

글자모양에 음각 속성(글자가 움푹 들어간 느낌) 적용을 토글한다.

hwp.Run("CharShapeEngrave")


hwp.Run("CharShapeHeight") ☆☆☆

글자모양(Alt-L) 대화상자를 열고, 포커스를 "기준 크기"로 이동한다. (수작업이 필요하므로 자동화에 사용하지는 않는다. 유사한 액션으로 글꼴 언어를 선택하는 CharShapeLang, CharShapeSpacing, CharShapeTypeFace, CharShapeWidth

등이 있다.)

hwp.Run("CharShapeHeight")


hwp.Run("CharShapeHeightDecrease") ★☆☆

글자 크기를 1포인트씩 작게 한다. 단, 속도가 다소 느리므로.. 큰 폭으로 조정할 때에는 다른 방법을 쓰는 것을 추천.

hwp.Run("CharShapeHeightDecrease")


hwp.Run("CharShapeHeightIncrease") ★☆☆

글자 크기를 1포인트씩 크게 한다. 단, 속도가 다소 느리므로.. 큰 폭으로 조정할 때에는 다른 방법을 쓰는 것을 추천.

hwp.Run("CharShapeHeightIncrease")


hwp.Run("CharShapeItalic") ★☆☆

글자 모양에 이탤릭 속성을 토글한다.

hwp.Run("CharShapeItalic")


hwp.Run("CharShapeNextFaceName") ☆☆☆

다음 글꼴로 이동(Shift-Alt-F)한다. 단, 이 액션으로 어떤 폰트가 선택되었는지를 파이썬에서 확인하려면 파라미터셋에 접근해야 한다. 유사한 커맨드로, CharShapePrevFaceName 이 있다.

hwp.Run("CharShapeNextFaceName")


hwp.Run("CharShapeNormal") ★☆☆

글자모양에 적용된 속성 및 글자색 등 전부를 해제(Shift-Alt-C)한다. 단 글꼴, 크기 등은 바뀌지 않는다.

hwp.Run("CharShapeNormal")


hwp.Run("CharShapeOutline") ★☆☆

글자모양의 외곽선 속성을 토글한다.

hwp.Run("CharShapeOutline")


hwp.Run("CharShapeShadow") ★☆☆

선택한 텍스트 글자모양 중 그림자 속성을 토글한다.

hwp.Run("CharShapeShadow")


hwp.Run("CharShapeSpacingDecrease") v [Increase] ★☆☆

자간을 1%씩 좁힌다. 최대 -50%까지 좁힐 수 있으며, 반대로 자간을 넓히는 커맨드는 "CharShapeSpacingIncrease"이다. 다만 자동화 작업시 줄넘김을 체크하는 것이 상당히 번거로운 작업이므로, 크게 보고서의 틀이 바뀌지 않는 선에서는 자간을 조정하는 것보다 "한 줄로 입력"을 활용하는 편이 간단하고 자연스러울 수 있다.

한 줄로 입력 옵션 : 문단모양(Alt-T)의 확장 탭에 있음

한 줄로 입력을 활성화해놓은 문단이나 셀에서는 자간이 아래와 같이 자동으로 좁혀진다.

아래는 스크립트 녹화 코드 활용 예제.

"한 줄로 입력(LineWrap)"을 활성화하는 코드

 

hwp.Run("CharShapeSpacingDecrease")
hwp.Run("CharShapeSpacingIncrease")


hwp.Run("CharShapeSubscript") ★☆☆

선택한 텍스트에 아래첨자 속성을 토글(Shift-Alt-S)한다.

hwp.Run("CharShapeSubscript")


hwp.Run("CharShapeSuperscript") ★☆☆

선택한 텍스트에 위첨자 속성을 토글(Shift-Alt-P)한다.

hwp.Run("CharShapeSuperscript")


hwp.Run("CharShapeSuperSubscript") ★☆☆

선택한 텍스트의 첨자속성을 위→아래→보통의 순서를 반복해서 토글한다.

hwp.Run("CharShapeSuperSubscript")


hwp.Run("CharShapeTextColor[글자색]") ★★☆

선택한 텍스트의 글자색을 [글자색] 안의 색으로 변경한다. 예를 들어 글자를 초록색으로 변경하는 코드는

hwp.Run("CharShapeTextColorGreen")

이 방식으로 변경 가능한 글자색은 총 8개로,

["Black", "Blue", "Bluish", "Green", "Red", "Violet", "White", "Yellow"] 이다.

유용한 팁으로, 위 커맨드 모두 기본 단축키가 설정되어 있다. 문서 작성시 아주 유용하게 사용할 수 있다.
청록(Bluish), 보라(Violet)색을 제외하고는 Ctrl-M 키를 누른채로 글자마다 표시한 붉은색 알파벳을 누르면 된다.
예를 들면 파랑색은 Ctrl-M-B, 빨간색은 Ctrl-M-R 이 단축키다.
그리고 청록색은 Ctrl-M-C, 보라색은 Ctrl-M-D로 설정되어 있다.

hwp.Run("CharShapeTextColor[글자색]")


hwp.Run("CharShapeUnderline") ★☆☆

선택한 텍스트에 밑줄 속성을 토글한다. 대소문자에 유의해야 한다. (UnderLine이 아니다.)

hwp.Run("CharShapeUnderline")


hwp.Run("CharShapeWidthDecrease") ★☆☆

장평을 1%씩 줄인다. 장평 범위는 50~200%이며, 장평을 늘일 때는 Decrease 대신 Increase를 사용하면 된다.

hwp.Run("CharShapeWidthDecrease")


hwp.Run("Close") ★★★

현재 리스트를 닫고 (최)상위 리스트로 이동하는 액션. 대표적인 예로, 메모나 각주 등을 작성한 후 본문으로 빠져나올 때, 혹은 여러 겹의 표 안에 있을 때 한 번에 표 밖으로 캐럿을 옮길 때 사용한다. 굉장히 자주 쓰이는 액션이며, 경우에 따라 Close가 아니라 CloseEx를 써야 하는 경우도 있다. 아래 영상의 캐럿 위치에 주목.

hwp.Run("Close")


hwp.Run("CloseEx") ★★★

현재 리스트를 닫고 상위 리스트로 이동하는 액션. Close와 유사하나 두 가지 차이점이 있다. 첫 번째로는 여러 계층의 표 안에서 CloseEx 실행시 본문이 아니라 상위의 표(셀)로 캐럿이 이동한다는 점. Close는 무조건 본문으로 나간다.

두 번째로, CloseEx에는 전체화면(최대화 말고)을 해제하는 기능이 있다. Close로는 전체화면 해제가 되지 않는다. 사용빈도가 가장 높은 액션 중의 하나라고 생각한다.

hwp.Run("CloseEx")


hwp.Run("Comment") ★☆☆

아래아한글에 "숨은 설명"이 있다는 걸 아는 사람도 없다시피 한데, 그 "숨은 설명" 관련한 Run 액션이 세 개나 있다. Comment 액션은 표현 그대로 숨은 설명을 붙일 수 있다. 텍스트만 넣을 수 있을 것 같은 액션이름인데, 사실 표나 그림도 자유롭게 삽입할 수 있기 때문에, 문서 안에 몰래 숨겨놓은 또다른 문서 느낌이다. 파일별로 자동화에 활용할 수 있는 특정 문자열을 파이썬이 아니라 숨은설명 안에 붙여놓고 활용할 수도 있지 않을까 이런저런 고민을 해봤는데, 개인적으로 자동화에 제대로 활용한 적은 한 번도 없었다. 

숨은 설명이라고 민감한 정보를 넣으면 안 되는데, 완전히 숨겨져 있는 게 아니기 때문이다. 현재 캐럿위치에 [숨은설명] 조판부호가 삽입되며, 이를 통해 숨은 설명 내용이 확인 가능하므로 유념해야 한다.

재미있는 점은, 숨은설명 안에 또 숨은설명을 삽입할 수 있다. 숨은설명 안에다 숨은설명을 넣고 그 안에 또 숨은설명을 넣는... 이런 테스트를 해봤는데 2,400단계 정도에서 한글이 종료돼버렸다. 

hwp.Run("Comment")


hwp.Run("CommentDelete") ★☆☆

단어 그대로 숨은 설명을 지우는 액션이다. 단, 사용방법이 까다로운데 숨은 설명 안에 들어가서 CommentDelete를 실행하면, 지울지 말지(Yes/No) 팝업이 나타난다. 나중에 자세히 설명하겠지만 이런 팝업을 자동처리하는 방법은 hwp.SetMessageBoxMode() 메서드를 미리 실행해놓는 것이다. Yes/No 방식의 팝업에서 Yes를 선택하는 파라미터는 0x10000 (또는 65536)이므로, hwp.SetMessageBoxMode(0x10000) 를 사용하면 된다.

hwp.Run("CommentDelete")


hwp.Run("CommentModify") ★☆☆

단어 그대로 숨은 설명을 수정하는 액션이다. 캐럿은 [숨은설명] 조판부호 바로 앞에 위치하고 있어야 한다.

hwp.Run("CommentModify")


hwp.Run("Copy") ★★★

복사하기. 선택되어 있는 문자열 혹은 개체(표, 이미지 등)를 클립보드에 저장한다. 파이썬에서 클립보드를 다루는 모듈은 pyperclip이나, pywin32의 win32clipboard 두 가지가 가장 많이 쓰이는데, 단순한 문자열의 경우 아래처럼 hwp.Run("Copy")와 pyperclip을 사용하면 한/글에서 문자열 가져오는 작업이 간단하다.

hwp.Run("Copy")


hwp.Run("Cut") ★★★

잘라내기. Copy 액션과 유사하지만, 복사 대신 잘라내기 기능을 수행한다. 자주 쓰이는 메서드이다.

hwp.Run("Cut")


hwp.Run("Delete") ★★★

삭제액션. 키보드의 Del 키를 눌렀을 때와 대부분 유사하다. 아주 사용빈도가 높은 액션이다.

hwp.Run("Delete")


hwp.Run("DeleteBack") ★★★

Delete와 유사하지만, 이건 Backspace처럼 우측에서 좌측으로 삭제해준다. 많이 쓰인다.

hwp.Run("DeleteBack")


hwp.Run("DeleteField") ★☆☆

누름틀지우기. 누름틀 안의 내용은 지우지 않고, 단순히 누름틀만 지운다. 지울 때 캐럿의 위치는 누름틀 안이든, 앞이나 뒤든 붙어있기만 하면 된다. 만약 최종문서에는 누름틀을 넣지 않고 모두 일반 텍스트로 변환하려고 하면 이 기능을 활용할 수 있다.


hwp.Run("DeleteFieldMemo") ★☆☆

메모 지우기. 누름틀 지우기와 유사하다. 메모 누름틀에 붙어있거나, 메모 안에 들어가 있는 경우 위 액션 실행시 해당 메모가 삭제된다.

hwp.Run("DeleteFieldMemo")


hwp.Run("DeleteLine") ★★☆

한 줄 지우기(Ctrl-Y) 액션. 문단나눔과 전혀 상관없이 딱 한 줄의 텍스트가 삭제된다. DeleteLine으로 표 등의 객체를 삭제하는 경우에는 팝업이 뜨므로 유의해야 한다. (hwp.SetMessageBoxMode 메서드를 추가로 사용하면 해결된다.)

hwp.Run("DeleteLine")


hwp.Run("DeleteLineEnd") ★☆☆

현재 커서에서 줄 끝까지 지우기(Alt-Y). 수작업시에 굉장히 유용한 기능일 수 있지만, 자동화 작업시에는 DeleteLine이나 DeleteLineEnd 모두, 한 줄 안에 어떤 내용까지 있는지 파악하기 어려운 관계로, 자동화에 잘 쓰이지는 않는다.

hwp.Run("DeleteLineEnd")


hwp.Run("DeleteWord") ★★★

단어 지우기(Ctrl-T) 액션. 단, 커서 우측에 위치한 단어 한 개씩 삭제하며, 커서가 단어 중간에 있는 경우 우측 글자만 삭제한다.

hwp.Run("DeleteWord")


hwp.Run("DeleteWordBack") ★★★

한 단어씩 좌측으로 삭제하는 액션(Ctrl-백스페이스). DeleteWord와 마찬가지로 커서가 단어 중간에 있는 경우 좌측 글자만 삭제한다.

hwp.Run("DeleteWordBack")


hwp.Run("DrawObjCancelOneStep")

다각형(곡선) 그리는 중 이전 선 지우기. 현재 사용 안함(?)


hwp.Run("DrawObjEditDetail")

그리기 개체 중 다각형 점편집 액션. 다각형이 선택된 상태에서만 실행가능.


hwp.Run("DrawObjOpenClosePolygon")

닫힌 다각형 열기 또는 열린 다각형 닫기 토글.

①다각형 개체 선택상태가 아니라 편집상태에서만 위 명령어가 실행된다.

②닫힌다각형을 열 때는 마지막으로 봉합된 점에서 아주 조금만 열린다.

③아주 조금만 열린 상태에서 닫으면 노드(꼭지점)가 추가되지 않지만, 적절한 거리를 벌리고 닫기를 하면 추가됨.

hwp.Run("DrawObjOpenClosePolygon")


hwp.Run("DrawObjTemplateSave")

그리기개체를 그리기마당에 템플릿으로 등록하는 액션(어떻게 써먹고 싶어도 방법을 모르겠다...)

그리기개체가 선택된 상태에서만 실행 가능하다.

여담으로, 그리기 마당에 임의로 등록한 개체 삭제 아이콘을 못 찾고 있는데; 

한글2020 기준으로, 개체 이름을 "얼굴"이라고 "기본도형"에 저장했을 경우, 찾아가서 아래의 파일을 삭제해도 된다.

"C:\Users\이름\AppData\Roaming\HNC\User\Shared110\HwpTemplate\Draw\FG_Basic_Shapes\얼굴.drt"

hwp.Run("DrawObjTemplateSave")


hwp.Run("EditFieldMemo")

메모 내용 편집 액션. "메모 내용 보기" 창이 하단에 열린다. SplitMemoOpen과 동일한 기능으로 보이며, 메모내용보기창에서 두 번째 이후의 메모 클릭시 메모내용보기창이 닫히는 버그가 있다.(한/글 2020 기준)

참고로 메모내용 보기 창을 닫을 때는 hwp.Run("SplitMemoClose") 커맨드를 쓰면 된다.

hwp.Run("EditFieldMemo")


hwp.Run("Erase")

선택한 문자나 개체 삭제. 문자열이나 컨트롤 등을 삭제한다는 점에서는 Delete나 DeleteBack과 유사하지만, 가장 큰 차이점은, 아무 것도 선택되어 있지 않은 상태일 때 Erase는 아무 것도 지우지 않는다는 점이다. (Delete나 DeleteBack은 어찌됐든 앞뒤의 뭔가를 지운다.)

hwp.Run("Erase")


hwp.Run("FileClose")

문서 닫기. 한/글을 종료하는 명령어는 아니다. 다만 문서저장 이후 수정을 한 상태이거나, 빈 문서를 열어서 편집한 경우에는, 팝업이 나타나고 사용자 입력을 요구하므로 자동화작업에 걸림돌이 된다.

이를 해결하는 세 가지(?) 옵션이 있는데,

①문서를 저장한 후 FileClose 실행

저장하는 방법은, hwp.SaveAs(Path)

 

②변경된 내용을 버린 후 FileClose 실행(탬플릿문서를 쓰고 있거나, 이미 PDF로 저장했다든지, 캡쳐를 완료한 경우 등)

버리는 방법은 hwp.Clear(option=1)

※ Clear 메서드는 경우에 따라 심각한 오류를 뱉기도 한다. 그것도 상당히 빈도가 잦아서 필자는 Clear를 사용하지 않는 편이다. 대신 아래의 XHwpDocument.Close(False)를 사용하는 편.

 

③변경된 내용을 버리고 문서를 닫는 명령 실행

hwp.XHwpDocuments.Item(0).Close(isDirty=False)

위 명령어는 다소 길어 보이지만 hwp.Clear(option=1); hwp.Run("FileClose")와 동일하게 작동한다.

hwp.Run("FileClose")


hwp.Run("FileNew")

새 문서 창을 여는 명령어. 참고로 현재 창에서 새 탭을 여는 명령어는 hwp.Run("FileNewTab")

여담이지만 한/글2020 기준으로 새 창은 30개까지 열 수 있다. 그리고 한 창에는 탭을 30개까지 열 수 있다. 즉, (리소스만 충분하다면) 동시에 열어서 자동화를 돌릴 수 있는 문서 갯수는 900개. 아래 코드로 테스트해볼 수 있다.

hwp.Run("FileNew")


hwp.Run("FileOpen")

문서를 여는 명령어. 단 파일선택 팝업이 뜨므로, 자동화작업시에는 이 명령어를 사용하지 않는다.  대신 hwp.Open(파일명)을 사용해야 한다. 레지스트리에디터에 보안모듈 등록(링크)을 해놓으면 hwp.Open 명령 실행시에 보안팝업도 뜨지 않는다.

hwp.Run("FileOpen")


hwp.Run("FileOpenMRU")

API매뉴얼엔 "최근 작업 문서"를 여는 명령어라고 나와 있지만, 현재는 hwp.Run("FileOpen")과 동일한 동작을 하는 것으로 보인다. 이 액션 역시 사용자입력을 요구하는 팝업이 뜨므로 자동화에 사용하지 않으며, hwp.Open(Path)을 써야 한다.

hwp.Run("FileOpenMRU")


hwp.Run("FilePreview")

미리보기 창을 열어준다. 자동화와 큰 연관이 없어 자주 쓰이지도 않고, 더군다나 닫는 명령어가 없다.

또한 이 명령어는 hwp.XHwpDocuments.Item(0).XHwpPrint.RunFilePreview()와 동일한 동작을 하는데,

재미있는 점은,

①스크립트 매크로 녹화 진행중에 hwp.Run("FilePreview")는 실행해도 반응이 없고, 녹화 로그에도 잡히지 않는다.

②그리고 스크립트매크로 녹화 진행중에 [파일] - [미리보기(V)] 메뉴도 비활성화되어 있어 코드를 알 수 없다.

③그런데 hwp.XHwpDocuments.Item(0).XHwpPrint.RunFilePreview()는 녹화중에도 실행이 된다.

녹화된 코드와 관련하여 남기고 싶은 코멘트가 많은데, 별도의 포스팅으로 남길 예정.

hwp.Run("FilePreview")


hwp.Run("FileQuit")

한/글 프로그램을 종료한다. 단, 저장 이후 문서수정이 있는 경우에는 팝업이 뜨므로, ①저장하거나 ②수정내용을 버리는 메서드를 활용해야 한다.

hwp.Run("FileQuit")


hwp.Run("FileSave")

파일을 저장하는 액션(Alt-S). 자동화프로세스 중 빈 문서를 열어 작성하는 경우에는, 저장액션 실행시 아래와 같이 경로선택 팝업이 뜨므로, hwp.SaveAs(Path) 메서드를 사용하여 저장한 후 Run("FileSave")를 써야 한다.

hwp.Run("FileSave")hwp.Save() 메서드와 거의 동일하지만 한 가지 차이점이 있는데,

    - hwp.Save()는 수정사항이 있는 경우에만 저장 프로세스를 실행하여 부하를 줄이는데 반해

    - hwp.Run("FileSave")는 매번 실행할 때마다 변동사항이 없더라도 저장 프로세스를 실행한다.

단, hwp.Save(save_if_dirty=False) 방식으로 파라미터를 주고 실행하면 Run("FileSave")와 동일하게, 수정이 없더라도 매번 저장을 수행하게 된다.

hwp.Run("FileSave")


hwp.Run("FileSaveAs")

다른 이름으로 저장(Alt-V). 사용자입력을 필요로 하므로 이 액션은 사용하지 않는다.

대신 hwp.SaveAs(Path)를 사용하면 된다.

hwp.Run("FileSaveAs")


hwp.Run("FindForeBackBookmark")

책갈피 찾아가기. 사용자 입력을 요구하므로 자동화에는 사용하지 않는다.

hwp.Run("FindForeBackBookmark")


hwp.Run("FindForeBackCtrl")

조판부호 찾아가기. hwp.Run("FindForeBackBookmark")와 마찬가지로 사용자 입력을 요구하므로 자동화에는 사용하지 않는다.

hwp.Run("FindForeBackCtrl")


hwp.Run("FindForeBackFind")

찾기. hwp.Run("FindForeBackBookmark")와 마찬가지로 사용자 입력을 요구하므로 자동화에는 사용하지 않는다.

hwp.Run("FindForeBackFind")


hwp.Run("FindForeBackLine")

줄 찾아가기. hwp.Run("FindForeBackBookmark")와 마찬가지로 사용자 입력을 요구하므로 자동화에는 사용하지 않는다.

hwp.Run("FindForeBackLine")


hwp.Run("FindForeBackPage")

쪽 찾아가기. hwp.Run("FindForeBackBookmark")와 마찬가지로 사용자 입력을 요구하므로 자동화에는 사용하지 않는다.

hwp.Run("FindForeBackPage")


hwp.Run("FindForeBackSection")

구역 찾아가기. hwp.Run("FindForeBackBookmark")와 마찬가지로 사용자 입력을 요구하므로 자동화에는 사용하지 않는다.

hwp.Run("FindForeBackSection")


hwp.Run("FindForeBackStyle")

스타일 찾아가기. hwp.Run("FindForeBackBookmark")와 마찬가지로 사용자 입력을 요구하므로 자동화에는 사용하지 않는다.

hwp.Run("FindForeBackStyle")


hwp.Run("FrameStatusBar")

한/글 프로그램 하단의 상태바 보이기/숨기기 토글

hwp.Run("FrameStatusBar")


hwp.Run("HanThDIC")

한/글에 내장되어 있는 "유의어/반의어 사전"을 여는 액션.

hwp.Run("HanThDIC")


hwp.Run("HeaderFooterDelete")

머리말/꼬리말 지우기. 본문이 아니라 머리말/꼬리말 편집상태에서 실행해야 삭제 팝업이 뜬다.

삭제팝업 없이 머리말/꼬리말을 삭제하려면 hwp.SetMessageBoxMode(0x10000)을 미리 실행해놓아야 한다.

참고로 아래 영상에서는 마우스 더블클릭을 했지만, 자동화작업시에는 아래의 Run("HeaderFooterModify")을 통해 편집상태로 들어가야 한다.

hwp.Run("HeaderFooterDelete")


hwp.Run("HeaderFooterModify")

머리말/꼬리말 고치기. 마우스를 쓰지 않고 머리말/꼬리말 편집상태로 들어갈 수 있다. 단, 커서가 조판부호에 닿아 있는 상태에서 실행해야 한다.

hwp.Run("HeaderFooterModify")


hwp.Run("HeaderFooterToNext")

다음 머리말/꼬리말. 당장은 사용방법을 모르겠다..


hwp.Run("HeaderFooterToPrev")

이전 머리말. 당장은 사용방법을 모르겠다..


hwp.Run("HiddenCredits")

인터넷 정보. 사용방법을 모르겠다.


hwp.Run("HideTitle")

차례 숨기기([도구 - 차례/색인 - 차례 숨기기] 메뉴에 대응(Ctrl-K-S). 실행한 개요라인을 자동생성되는 제목차례에서 숨긴다. 즉시 변경되지 않으며, "모든 차례 새로고침(Ctrl-K-A)" 실행시 제목차례가 업데이트된다.

모든차례 새로고침 명령어는 hwp.HAction.Run("UpdateAllContents") 이다.

적용여부는 Ctrl+G,C를 이용해 조판부호를 확인하면 알 수 있다.

hwp.Run("HideTitle")


hwp.Run("Him Config")

입력기 언어별 환경설정. 현재는 실행되지 않는 듯 하다. 대신 Run("HimKbdChange")로 환경설정창을 띄울 수 있다.

자동화에는 쓰이지 않는다.


hwp.Run("HimKbdChange")

 

 

입력기 언어별 환경설정.

hwp.Run("HimKbdChange")


hwp.Run("HwpCtrlEquationCreate97")

"한/글97버전 수식 만들기"라고 하는데, 실행되지 않는 듯 하다.


hwp.Run("HwpCtrlFileNew")

한글컨트롤 전용 새문서. 실행되지 않는 듯 하다.


hwp.Run("HwpCtrlFileOpen")

한글컨트롤 전용 파일 열기. 실행되지 않는 듯 하다.


 

hwp.Run("HwpCtrlFileSave")

한글컨트롤 전용 파일 저장. 실행되지 않는다.


hwp.Run("HwpCtrlFileSaveAs")

한글컨트롤 전용 다른 이름으로 저장. 실행되지 않는다.


hwp.Run("HwpCtrlFileSaveAsAutoBlock")

한글컨트롤 전용 다른이름으로 블록 저장. 실행되지 않는다.


hwp.Run("HwpCtrlFileSaveAutoBlock")

한/글 컨트롤 전용 블록 저장. 실행되지 않는다.


hwp.Run("HwpCtrlFindDlg")

한/글 컨트롤 전용 찾기 대화상자. 실행되지 않는다.


hwp.Run("HwpCtrlReplaceDlg")

한/글 컨트롤 전용 바꾸기 대화상자


hwp.Run("HwpDic")

한컴 사전(F12). 현재 캐럿이 닿아 있거나, 블록선택한 구간을 검색어에 자동으로 넣는다.

hwp.Run("HwpDic")


hwp.Run("HyperlinkBackward")

하이퍼링크 뒤로. 하이퍼링크를 통해서 문서를 탐색하여 페이지나 캐럿을 이동한 경우, (브라우저의 "뒤로가기"처럼) 이동 전의 위치로 돌아간다.

hwp.Run("HyperlinkBackward")


hwp.Run("HyperlinkForward")

하이퍼링크 앞으로. Run("HyperlinkBackward") 에 상반되는 명령어로, 브라우저의 "앞으로 가기"나 한/글의 재실행과 유사하다. 하이퍼링크 등으로 이동한 후에 뒤로가기를 눌렀다면, 캐럿이 뒤로가기 전 위치로 다시 이동한다.

hwp.Run("HyperlinkForward")


hwp.Run("ImageFindPath")

그림 경로 찾기. 현재는 실행되지 않는 듯.


hwp.Run("InputCodeChange")

문자/코드 변환.. 현재 캐럿의 바로 앞 문자를 찾아서 문자이면 코드로, 코드이면 문자로 변환해준다.(변환 가능한 코드영역 0x0020 ~ 0x10FFFF 까지)

hwp.Run("InputCodeChange")


hwp.Run("InputHanja")

한자로 바꾸기 창을 띄워준다. 추가입력이 필요하여 자동화에는 쓰이지 않음.

hwp.Run("InputHanja")


hwp.Run("InputHanjaBusu")

부수로 입력. 자동화에는 쓰이지 않음.

hwp.Run("InputHanjaBusu")


hwp.Run("InputHanjaMean")

한자 새김 입력창 띄우기. 뜻과 음을 입력하면 적절한 한자를 삽입해준다.

입력시 뜻과 음은 붙여서 입력. (예)하늘천

hwp.Run("InputHanjaMean")ㅇㄹ

 


hwp.Run("InsertAutoNum")

번호 다시 넣기(?) 실행이 안되는 듯.


hwp.Run("InsertCpNo")

현재 쪽번호(상용구) 삽입. 쪽번호와 마찬가지로, 문자열이 실시간으로 변경된다.

※유의사항 : 이 쪽번호는 찾기, 찾아바꾸기, GetText 및 누름틀 안에 넣고 GetFieldText나 복붙 등 그 어떤 방법으로도 추출되지 않는다.

한 마디로 눈에는 보이는 것 같지만 실재하지 않는 숫자임.

hwp.Run("InsertCpNo")


hwp.Run("InsertCpTpNo")

상용구 코드 넣기(현재 쪽/전체 쪽). 실시간으로 변경된다.

hwp.Run("InsertCpTpNo")

 


hwp.Run("InsertDateCode")

상용구 코드 넣기(만든 날짜). 현재날짜가 아님에 유의.

hwp.Run("InsertDateCode")


hwp.Run("InsertDocInfo")

상용구 코드 넣기(만든 사람, 현재 쪽, 만든 날짜)

hwp.Run("InsertDocInfo")


hwp.Run("InsertEndnote")

미주 입력


hwp.Run("InsertFieldDateTime")

날짜/시간 코드로 넣기([입력-날짜/시간-날짜/시간 코드]메뉴와 동일)


hwp.Run("InsertFieldMemo")

메모 넣기([입력-메모-메모 넣기]메뉴와 동일)


hwp.Run("InsertFieldRevisionChagne")

메모고침표 넣기(현재 한/글메뉴에 없음, 메모와 동일한 기능)


hwp.Run("InsertFixedWidthSpace")

고정폭 빈칸 삽입


hwp.Run("InsertFootnote")

각주 입력


hwp.Run("InsertLastPrintDate")

상용구 코드 넣기(마지막 인쇄한 날짜)


hwp.Run("InsertLastSaveBy")

상용구 코드 넣기(마지막 저장한 사람)


hwp.Run("InsertLastSaveDate")

상용구 코드 넣기(마지막 저장한 날짜)


hwp.Run("InsertLine")

선 넣기


hwp.Run("InsertNonBreakingSpace")

묶음 빈칸 삽입


hwp.Run("InsertPageNum")

쪽 번호 넣기


hwp.Run("InsertSoftHyphen")

하이픈 삽입


hwp.Run("InsertSpace")

공백 삽입


hwp.Run("InsertStringDateTime")

날짜/시간 넣기 - 문자열로 넣기([입력-날짜/시간-날짜/시간 문자열]메뉴와 동일)


hwp.Run("InsertTab")

탭 삽입


hwp.Run("InsertTpNo")

상용구 코드 넣기(전체 쪽수)


hwp.Run("Jajun")

한자 자전


hwp.Run("LabelAdd")

라벨 새 쪽 추가하기


hwp.Run("LabelTemplate")

라벨 문서 만들기


hwp.Run("LinkTextBox")

글상자 연결. 글상자가 선택되지 않았거나, 캐럿이 글상자 내부에 있지 않으면 동작하지 않는다.


hwp.Run("MacroPause")

매크로 실행 일시 중지 (정의/실행)


hwp.Run("MacroPlay1")

매크로 1


hwp.Run("MacroPlay10")

매크로 10


hwp.Run("MacroPlay11")

매크로 11


hwp.Run("MacroPlay2")

매크로 2


hwp.Run("MacroPlay3")

매크로 3


hwp.Run("MacroPlay4")

매크로 4


hwp.Run("MacroPlay5")

매크로 5


hwp.Run("MacroPlay6")

매크로 6


hwp.Run("MacroPlay7")

매크로 7


hwp.Run("MacroPlay8")

매크로 8


hwp.Run("MacroPlay9")

매크로 9


hwp.Run("MacroRepeat")

매크로 실행


hwp.Run("MacroStop")

매크로 실행 중지 (정의/실행)


hwp.Run("MailMergeField")

메일 머지 필드(표시달기 or 고치기)


hwp.Run("MakeIndex")

찾아보기 만들기


hwp.Run("ManualChangeHangul")

한영 수동 전환.. 현재 커서위치 또는 문단나누기 이전에 입력된 내용에 대해서 강제적으로 한/영 전환을 한다.


hwp.Run("MarkTitle")

제목 차례 표시([도구-차례/찾아보기-제목 차례 표시]메뉴에 대응). 차례 코드가 삽입되어 나중에 차례 만들기에서 사용할 수 있다.적용여부는 Ctrl+G,C를 이용해 조판부호를 확인하면 알 수 있다.


hwp.Run("MasterPageDuplicate")

기존 바탕쪽과 겹침. 바탕쪽 편집상태가 활성화되어 있으며 [구역 마지막쪽], [구역임의 쪽]일 경우에만 사용 가능하다.


hwp.Run("MasterPageExcept")

첫 쪽 제외


hwp.Run("MasterPageFront")

바탕쪽 앞으로 보내기. 바탕쪽 편집모드일 경우에만 동작한다.


hwp.Run("MasterPagePrevSection")

앞 구역 바탕쪽 사용


hwp.Run("MasterPageToNext")

이후 바탕쪽


hwp.Run("MasterPageToPrevious")

이전 바탕쪽


hwp.Run("ModifyComposeChars")

고치기 - 글자 겹침


hwp.Run("ModifyCtrl")

고치기 : 컨트롤


hwp.Run("ModifyDutmal")

고치기 - 덧말


hwp.Run("ModifyFillProperty")

고치기(채우기 속성 탭으로). 만약 Ctrl(ShapeObject,누름틀, 날짜/시간 코드 등)이 선택되지 않았다면 역방향탐색(SelectCtrlReverse)을 이용해서 개체를 탐색한다. 채우기 속성이 없는 Ctrl일 경우에는 첫 번째 탭이 선택된 상태로 고치기 창이 뜬다.


hwp.Run("ModifyLineProperty")

고치기(선/테두리 속성 탭으로). 만약 Ctrl(ShapeObject,누름틀, 날짜/시간 코드 등)이 선택되지 않았다면 역방향탐색(SelectCtrlReverse)을 이용해서 개체를 탐색한다. 선/테두리 속성이 없는 Ctrl일 경우에는 첫 번째 탭이 선택된 상태로 고치기 창이 뜬다.


hwp.Run("ModifyShapeObject")

고치기 - 개체 속성


hwp.Run("MoveColumnBegin")

단의 시작점으로 이동한다. 단이 없을 경우에는 아무동작도 하지 않는다. 해당 리스트 안에서만 동작한다.


hwp.Run("MoveColumnEnd")

단의 끝점으로 이동한다. 단이 없을 경우에는 아무동작도 하지 않는다. 해당 리스트 안에서만 동작한다.


hwp.Run("MoveDocBegin")

문서의 시작으로 이동.. 만약 셀렉션을 확장하는 경우에는 LIST_BEGIN/END와 동일하다. 현재 서브 리스트 내에 있으면 빠져나간다.


hwp.Run("MoveDocEnd")

문서의 끝으로 이동.. 만약 셀렉션을 확장하는 경우에는 LIST_BEGIN/END와 동일하다. 현재 서브 리스트 내에 있으면 빠져나간다.


hwp.Run("MoveDown")

캐럿을 (논리적 개념의) 아래로 이동시킨다.


hwp.Run("MoveLeft")

캐럿을 (논리적 개념의) 왼쪽으로 이동시킨다.


hwp.Run("MoveLineBegin")

현재 위치한 줄의 시작/끝으로 이동


hwp.Run("MoveLineDown")

한 줄 아래로 이동한다.


hwp.Run("MoveLineEnd")

현재 위치한 줄의 시작/끝으로 이동


hwp.Run("MoveLineUp")

한 줄 위로 이동한다.


hwp.Run("MoveListBegin")

현재 리스트의 시작으로 이동


hwp.Run("MoveListEnd")

현재 리스트의 끝으로 이동


hwp.Run("MoveNextChar")

한 글자 뒤로 이동. 현재 리스트만을 대상으로 동작한다.


hwp.Run("MoveNextColumn")

뒤 단으로 이동


hwp.Run("MoveNextParaBegin")

다음 문단의 시작으로 이동. 현재 리스트만을 대상으로 동작한다.


hwp.Run("MoveNextPos")

한 글자 뒤로 이동. 서브 리스트를 옮겨 다닐 수 있다.


hwp.Run("MoveNextPosEx")

한 글자 뒤로 이동. 서브 리스트를 옮겨 다닐 수 있다. (머리말, 꼬리말, 각주, 미주, 글상자 포함)


hwp.Run("MoveNextWord")

한 단어 뒤로 이동. 현재 리스트만을 대상으로 동작한다.


hwp.Run("MovePageBegin")

현재 페이지의 시작점으로 이동한다.. 만약 캐럿의 위치가 변경되었다면 화면이 전환되어 쪽의 상단으로 페이지뷰잉이 맞춰진다.


hwp.Run("MovePageDown")

앞 페이지의 시작으로 이동. 현재 탑레벨 리스트가 아니면 탑레벨 리스트로 빠져나온다.


hwp.Run("MovePageEnd")

현재 페이지의 끝점으로 이동한다.. 만약 캐럿의 위치가 변경되었다면 화면이 전환되어 쪽의 하단으로 페이지뷰잉이 맞춰진다.


hwp.Run("MovePageUp")

뒤 페이지의 시작으로 이동. 현재 탑레벨 리스트가 아니면 탑레벨 리스트로 빠져나온다.


hwp.Run("MoveParaBegin")

현재 위치한 문단의 시작/끝으로 이동


hwp.Run("MoveParaEnd")

현재 위치한 문단의 시작/끝으로 이동


hwp.Run("MoveParentList")

한 레벨 상위/탑레벨/루트 리스트로 이동한다.. 현재 루트 리스트에 위치해 있어 더 이상 상위 리스트가 없을 때는 위치 이동 없이 리턴한다. 이동한 후의 위치는 상위 리스트에서 서브리스트가 속한 컨트롤 코드가 위치한 곳이다. 위치 이동시 셀렉션은 무조건 풀린다.


hwp.Run("MovePrevChar")

한 글자 앞 이동. 현재 리스트만을 대상으로 동작한다.


hwp.Run("MovePrevColumn")

앞 단으로 이동


hwp.Run("MovePrevParaBegin")

앞 문단의 시작으로 이동. 현재 리스트만을 대상으로 동작한다.


hwp.Run("MovePrevParaEnd")

앞 문단의 끝으로 이동. 현재 리스트만을 대상으로 동작한다.


hwp.Run("MovePrevPos")

한 글자 앞으로 이동. 서브 리스트를 옮겨 다닐 수 있다.


hwp.Run("MovePrevPosEx")

한 글자 앞으로 이동. 서브 리스트를 옮겨 다닐 수 있다. (머리말, 꼬리말, 각주, 미주, 글상자 포함)


hwp.Run("MovePrevWord")

한 단어 앞으로 이동. 현재 리스트만을 대상으로 동작한다.


hwp.Run("MoveRight")

캐럿을 (논리적 개념의) 오른쪽으로 이동시킨다.


hwp.Run("MoveRootList")

한 레벨 상위/탑레벨/루트 리스트로 이동한다.. 현재 루트 리스트에 위치해 있어 더 이상 상위 리스트가 없을 때는 위치 이동 없이 리턴한다. 이동한 후의 위치는 상위 리스트에서 서브리스트가 속한 컨트롤 코드가 위치한 곳이다. 위치 이동시 셀렉션은 무조건 풀린다.


hwp.Run("MoveScrollDown")

아래 방향으로 스크롤하면서 이동


hwp.Run("MoveScrollNext")

다음 방향으로 스크롤하면서 이동


hwp.Run("MoveScrollPrev")

이전 방향으로 스크롤하면서 이동


hwp.Run("MoveScrollUp")

위 방향으로 스크롤하면서 이동


hwp.Run("MoveSectionDown")

뒤 섹션으로 이동. 현재 루트 리스트가 아니면 루트 리스트로 빠져나온다.


hwp.Run("MoveSectionUp")

앞 섹션으로 이동. 현재 루트 리스트가 아니면 루트 리스트로 빠져나온다.


hwp.Run("MoveSelDocBegin")

셀렉션: 문서 처음


hwp.Run("MoveSelDocEnd")

셀렉션: 문서 끝


hwp.Run("MoveSelDown")

셀렉션: 캐럿을 (논리적 방향) 아래로 이동


hwp.Run("MoveSelLeft")

셀렉션: 캐럿을 (논리적 방향) 왼쪽으로 이동


hwp.Run("MoveSelLineBegin")

셀렉션: 줄 처음


hwp.Run("MoveSelLineDown")

셀렉션: 한줄 아래


hwp.Run("MoveSelLineEnd")

셀렉션: 줄 끝


hwp.Run("MoveSelLineUp")

셀렉션: 한줄 위


hwp.Run("MoveSelListBegin")

셀렉션: 리스트 처음


hwp.Run("MoveSelListEnd")

셀렉션: 리스트 끝


hwp.Run("MoveSelNextChar")

셀렉션: 다음 글자


hwp.Run("MoveSelNextParaBegin")

셀렉션: 다음 문단 처음


hwp.Run("MoveSelNextPos")

셀렉션: 다음 위치


hwp.Run("MoveSelNextWord")

셀렉션: 다음 단어


hwp.Run("MoveSelPageDown")

셀렉션: 페이지다운


hwp.Run("MoveSelPageUp")

셀렉션: 페이지 업


hwp.Run("MoveSelParaBegin")

셀렉션: 문단 처음


hwp.Run("MoveSelParaEnd")

셀렉션: 문단 끝


hwp.Run("MoveSelPrevChar")

셀렉션: 이전 글자


hwp.Run("MoveSelPrevParaBegin")

셀렉션: 이전 문단 시작


hwp.Run("MoveSelPrevParaEnd")

셀렉션: 이전 문단 끝


hwp.Run("MoveSelPrevPos")

셀렉션: 이전 위치


hwp.Run("MoveSelPrevWord")

셀렉션: 이전 단어


hwp.Run("MoveSelRight")

셀렉션: 캐럿을 (논리적 방향) 오른쪽으로 이동


hwp.Run("MoveSelTopLevelBegin")

셀렉션: 처음


hwp.Run("MoveSelTopLevelEnd")

셀렉션: 끝


hwp.Run("MoveSelUp")

셀렉션: 캐럿을 (논리적 방향) 위로 이동


hwp.Run("MoveSelViewDown")

셀렉션: 아래


hwp.Run("MoveSelViewUp")

셀렉션: 위


hwp.Run("MoveSelWordBegin")

셀렉션: 단어 처음


hwp.Run("MoveSelWordEnd")

셀렉션: 단어 끝


hwp.Run("MoveTopLevelBegin")

탑레벨 리스트의 시작으로 이동


hwp.Run("MoveTopLevelEnd")

탑레벨 리스트의 끝으로 이동


hwp.Run("MoveTopLevelList")

한 레벨 상위/탑레벨/루트 리스트로 이동한다.. 현재 루트 리스트에 위치해 있어 더 이상 상위 리스트가 없을 때는 위치 이동 없이 리턴한다. 이동한 후의 위치는 상위 리스트에서 서브리스트가 속한 컨트롤 코드가 위치한 곳이다. 위치 이동시 셀렉션은 무조건 풀린다.


hwp.Run("MoveUp")

캐럿을 (논리적 개념의) 위로 이동시킨다.


hwp.Run("MoveViewBegin")

현재 뷰의 시작에 위치한 곳으로 이동


hwp.Run("MoveViewDown")

현재 뷰의 크기만큼 아래로 이동한다. PgDn 키의 기능이다.


hwp.Run("MoveViewEnd")

현재 뷰의 끝에 위치한 곳으로 이동


hwp.Run("MoveViewUp")

현재 뷰의 크기만큼 위로 이동한다. PgUp 키의 기능이다.


hwp.Run("MoveWordBegin")

현재 위치한 단어의 시작으로 이동. 현재 리스트만을 대상으로 동작한다.


hwp.Run("MoveWordEnd")

현재 위치한 단어의 끝으로 이동. 현재 리스트만을 대상으로 동작한다.


hwp.Run("MPSectionToNext")

이후 구역으로


hwp.Run("MPSectionToPrevious")

이전 구역으로


hwp.Run("NextTextBoxLinked")

연결된 글상자의 다음 글상자로 이동


hwp.Run("NoteDelete")

주석 지우기


hwp.Run("NoteModify")

주석 고치기


hwp.Run("NoteNumProperty")

주석 번호 속성


hwp.Run("NoteToNext")

주석 다음으로 이동


hwp.Run("NoteToPrev")

주석 앞으로 이동


hwp.Run("ParagraphShapeAlignCenter")

가운데 정렬


hwp.Run("ParagraphShapeAlignDistribute")

배분 정렬


hwp.Run("ParagraphShapeAlignDivision")

나눔 정렬


hwp.Run("ParagraphShapeAlignJustify")

양쪽 정렬


hwp.Run("ParagraphShapeAlignLeft")

왼쪽 정렬


hwp.Run("ParagraphShapeAlignRight")

오른쪽 정렬


hwp.Run("ParagraphShapeDecreaseLeftMargin")

왼쪽 여백 줄이기


hwp.Run("ParagraphShapeDecreaseLineSpacing")

줄 간격을 점점 좁힘


hwp.Run("ParagraphShapeDecreaseMargin")

왼쪽-오른쪽 여백 줄이기


hwp.Run("ParagraphShapeDecreaseRightMargin")

오른쪽 여백 키우기


hwp.Run("ParagraphShapeIncreaseLeftMargin")

왼쪽 여백 키우기


hwp.Run("ParagraphShapeIncreaseLineSpacing")

줄 간격을 점점 넓힘


hwp.Run("ParagraphShapeIncreaseMargin")

왼쪽-오른쪽 여백 키우기


hwp.Run("ParagraphShapeIncreaseRightMargin")

오른쪽 여백 줄이기


hwp.Run("ParagraphShapeIndentAtCaret")

첫 줄 내어 쓰기


hwp.Run("ParagraphShapeIndentNegative")

첫 줄을 한 글자 내어 씀


hwp.Run("ParagraphShapeIndentPositive")

첫 줄을 한 글자 들여 씀


hwp.Run("ParagraphShapeProtect")

문단 보호


hwp.Run("ParagraphShapeWithNext")

다음 문단과 함께


hwp.Run("Paste")

붙이기


hwp.Run("PasteSpecial")

골라 붙이기


hwp.Run("PictureEffect1")

그림 그레이 스케일


hwp.Run("PictureEffect2")

그림 흑백으로


hwp.Run("PictureEffect3")

그림 워터마크


hwp.Run("PictureEffect4")

그림 효과 없음


hwp.Run("PictureEffect5")

그림 밝기 증가


hwp.Run("PictureEffect6")

그림 밝기 감소


hwp.Run("PictureEffect7")

그림 명암 증가


hwp.Run("PictureEffect8")

그림 명암 감소


hwp.Run("PictureInsertDialog")

그림 넣기 (대화상자를 띄워 선택한 이미지 파일을 문서에 삽입하는 액션 : API용)


hwp.Run("PictureLinkedToEmbedded")

연결된 그림을 모두 삽입그림으로


hwp.Run("PictureSave")

그림 빼내기


hwp.Run("PictureScissor")

그림 자르기


hwp.Run("PictureToOriginal")

그림 원래 그림으로


hwp.Run("PrevTextBoxLinked")

연결된 글상자의 이전 글상자로 이동. 현재 글상자가 선택되거나, 글상자 내부에 캐럿이 존재하지 않으면 동작하지 않는다.


hwp.Run("QuickCommand Run")

입력 자동 명령 동작


hwp.Run("QuickCorrect")

빠른 교정 (실질적인 동작 Action)


hwp.Run("QuickCorrect Run")

빠른 교정 ―내용 편집


hwp.Run("QuickCorrect Sound")

빠른 교정 ― 메뉴에서 효과음 On/Off


hwp.Run("QuickMarkInsert0 ~ 9")

쉬운 책갈피 - 삽입


hwp.Run("QuickMarkMove0 ~ 9")

쉬운 책갈피 - 이동


hwp.Run("RecalcPageCount")

현재 페이지의 쪽 번호 재계산


hwp.Run("RecentCode")

최근에 사용한 문자표 입력. 최근에 사용한 문자표가 없을 경우에는 문자표 대화상자를 띄운다.


hwp.Run("Redo")

다시 실행


hwp.Run("ReturnKeyInField")

캐럿이 필드 안에 위치한 상태에서 Return Key에 대한 액션 분기


hwp.Run("ReturnPrevPos")

직전위치로 돌아가기


hwp.Run("ScrMacroPause")

매크로 기록 일시정지/재시작


hwp.Run("ScrMacroPlay1 ~ 11")

#번 매크로 실행(Alt+Shift+#)


hwp.Run("ScrMacroStop")

매크로 기록 중지


hwp.Run("Select")

선택 (F3 Key를 누른 효과)


hwp.Run("SelectAll")

모두 선택


hwp.Run("SelectColumn")

칸 블록 선택 (F4 Key를 누른 효과)


hwp.Run("SelectCtrlFront")

개체선택 정방향


hwp.Run("SelectCtrlReverse")

개체선택 역방향


hwp.Run("SendBrowserText")

브라우저로 보내기


hwp.Run("ShapeObjAlignBottom")

아래로 정렬


hwp.Run("ShapeObjAlignCenter")

가운데로 정렬


hwp.Run("ShapeObjAlignHeight")

높이 맞춤


hwp.Run("ShapeObjAlignHorzSpacing")

왼쪽/오른쪽 일정한 비율로 정렬


hwp.Run("ShapeObjAlignLeft")

왼쪽으로 정렬


hwp.Run("ShapeObjAlignMiddle")

중간 정렬


hwp.Run("ShapeObjAlignRight")

오른쪽으로 정렬


hwp.Run("ShapeObjAlignSize")

폭/높이 맞춤


hwp.Run("ShapeObjAlignTop")

위로 정렬


hwp.Run("ShapeObjAlignVertSpacing")

위/아래 일정한 비율로 정렬


hwp.Run("ShapeObjAlignWidth")

폭 맞춤


hwp.Run("ShapeObjAttachCaption")

캡션 넣기


hwp.Run("ShapeObjAttachTextBox")

글 상자로 만들기


hwp.Run("ShapeObjBringForward")

앞으로


hwp.Run("ShapeObjBringInFrontOfText")

글 앞으로


hwp.Run("ShapeObjBringToFront")

맨 앞으로


hwp.Run("ShapeObjCtrlSendBehindText")

글 뒤로


hwp.Run("ShapeObjDetachCaption")

캡션 없애기


hwp.Run("ShapeObjDetachTextBox")

글상자 속성 없애기


hwp.Run("ShapeObjFillProperty")

고치기 대화상자중 fill tab


hwp.Run("ShapeObjGroup")

틀 묶기


hwp.Run("ShapeObjHorzFlip")

그리기 개체 좌우 뒤집기


hwp.Run("ShapeObjHorzFlipOrgState")

그리기 개체 좌우 뒤집기 원상태로 되돌리기


hwp.Run("ShapeObjInsertCaptionNum")

캡션 번호 넣기


hwp.Run("ShapeObjLineProperty")

고치기 대화상자중 line tab


hwp.Run("ShapeObjLock")

개체 Lock


hwp.Run("ShapeObjMoveDown")

키로 움직이기(아래)


hwp.Run("ShapeObjMoveLeft")

키로 움직이기(왼쪽)


hwp.Run("ShapeObjMoveRight")

키로 움직이기(오른쪽)


hwp.Run("ShapeObjMoveUp")

키로 움직이기(위)


hwp.Run("ShapeObjNextObject")

이후 개체로 이동(tab키)


hwp.Run("ShapeObjNorm")

기본 도형 설정


hwp.Run("ShapeObjPrevObject")

이전 개체로 이동(shift + tab키)


hwp.Run("ShapeObjResizeDown")

키로 크기 조절(shift + 아래)


hwp.Run("ShapeObjResizeLeft")

키로 크기 조절(shift + 왼쪽)


hwp.Run("ShapeObjResizeRight")

키로 크기 조절(shift + 오른쪽)


hwp.Run("ShapeObjResizeUp")

키로 크기 조절(shift + 위)


hwp.Run("ShapeObjRightAngleRotater")

90도 회전


hwp.Run("ShapeObjRightAngleRotaterAnticlockwise")

-90도 회전


hwp.Run("ShapeObjRotater")

자유각 회전(회전중심 고정)


hwp.Run("ShapeObjSaveAsPicture")

그리기개체를 그림으로 저장하기


hwp.Run("ShapeObjSelect")

틀 선택 도구


hwp.Run("ShapeObjSendBack")

뒤로


hwp.Run("ShapeObjSendToBack")

맨 뒤로


hwp.Run("ShapeObjTableSelCell")

테이블 선택상태에서 첫 번째 셀 선택하기


hwp.Run("ShapeObjTextBoxEdit")

글상자 선택상태에서 편집모드로 들어가기


hwp.Run("ShapeObjUngroup")

틀 풀기


hwp.Run("ShapeObjUnlockAll")

개체 Unlock All


hwp.Run("ShapeObjVertFlip")

그리기 개체 상하 뒤집기


hwp.Run("ShapeObjVertFlipOrgState")

그리기 개체 상하 뒤집기 원상태로 되돌리기


hwp.Run("ShapeObjWrapSquare")

직사각형


hwp.Run("ShapeObjWrapTopAndBottom")

자리 차지


hwp.Run("Soft Keyboard")

보기


hwp.Run("SpellingCheck")

맞춤법


hwp.Run("SplitMemoClose")

메모창 닫기


 

hwp.Run("SplitMemoOpen")

메모창 열기


hwp.Run("StyleClearCharStyle")

글자 스타일 해제


hwp.Run("StyleShortcut1")

스타일 단축키


hwp.Run("StyleShortcut10")

스타일 단축키


hwp.Run("StyleShortcut2")

스타일 단축키


hwp.Run("StyleShortcut3")

스타일 단축키


hwp.Run("StyleShortcut4")

스타일 단축키


hwp.Run("StyleShortcut5")

스타일 단축키


hwp.Run("StyleShortcut6")

스타일 단축키


hwp.Run("StyleShortcut7")

스타일 단축키


hwp.Run("StyleShortcut8")

스타일 단축키


hwp.Run("StyleShortcut9")

스타일 단축키


hwp.Run("TableAppendRow")

줄 추가


hwp.Run("TableCellBlock")

셀 블록


hwp.Run("TableCellBlockCol")

셀 블록 (칸)


hwp.Run("TableCellBlockExtend")

셀 블록 연장(F5 + F5)


hwp.Run("TableCellBlockExtendAbs")

셀 블록 연장(SHIFT + F5)


hwp.Run("TableCellBlockRow")

셀 블록(줄)


hwp.Run("TableCellBorderAll")

모든 셀 테두리 toggle(있음/없음). 셀 블록 상태일 경우에만 동작한다.


hwp.Run("TableCellBorderBottom")

가장 아래 셀 테두리 toggle(있음/없음). 셀 블록 상태일 경우에만 동작한다.


hwp.Run("TableCellBorderDiagonalDown")

대각선(⍂) 셀 테두리 toggle(있음/없음). 셀 블록 상태일 경우에만 동작한다.


hwp.Run("TableCellBorderDiagonalUp")

대각선(⍁) 셀 테두리 toggle(있음/없음). 셀 블록 상태일 경우에만 동작한다.


hwp.Run("TableCellBorderInside")

모든 안쪽 셀 테두리 toggle(있음/없음). 셀 블록 상태일 경우에만 동작한다.


hwp.Run("TableCellBorderInsideHorz")

모든 안쪽 가로 셀 테두리 toggle(있음/없음). 셀 블록 상태일 경우에만 동작한다.


hwp.Run("TableCellBorderInsideVert")

모든 안쪽 세로 셀 테두리 toggle(있음/없음). 셀 블록 상태일 경우에만 동작한다.


hwp.Run("TableCellBorderLeft")

가장 왼쪽의 셀 테두리 toggle(있음/없음) 셀 블록 상태일 경우에만 동작한다.


hwp.Run("TableCellBorderNo")

모든 셀 테두리 지움. 셀 블록 상태일 경우에만 동작한다.


hwp.Run("TableCellBorderOutside")

바깥 셀 테두리 toggle(있음/없음) 셀 블록 상태일 경우에만 동작한다.


hwp.Run("TableCellBorderRight")

가장 오른쪽의 셀 테두리 toggle(있음/없음) 셀 블록 상태일 경우에만 동작한다.


hwp.Run("TableCellBorderTop")

가장 위의 셀 테두리 toggle(있음/없음) 셀 블록 상태일 경우에만 동작한다.


hwp.Run("TableColBegin")

셀 이동: 열 시작


hwp.Run("TableColEnd")

셀 이동: 열 끝


hwp.Run("TableColPageDown")

셀 이동: 페이지다운


hwp.Run("TableColPageUp")

셀 이동: 페이지 업


hwp.Run("TableDeleteCell")

셀 삭제


hwp.Run("TableDistributeCellHeight")

셀 높이를 같게


hwp.Run("TableDistributeCellWidth")

셀 너비를 같게


hwp.Run("TableDrawPen")

표 그리기


hwp.Run("TableEraser")

표 지우개


hwp.Run("TableFormulaAvgAuto")

블록 평균


hwp.Run("TableFormulaAvgHor")

가로 평균


hwp.Run("TableFormulaAvgVer")

세로 평균


hwp.Run("TableFormulaProAuto")

블록 곱


hwp.Run("TableFormulaProHor")

가로 곱


hwp.Run("TableFormulaProVer")

세로 곱


hwp.Run("TableFormulaSumAuto")

블록 합계


hwp.Run("TableFormulaSumHor")

가로 합계


hwp.Run("TableFormulaSumVer")

세로 합계


hwp.Run("TableLeftCell")

셀 이동: 셀 왼쪽


hwp.Run("TableLowerCell")

셀 이동: 셀 아래


hwp.Run("TableMergeCell")

셀 합치기


hwp.Run("TableMergeTable")

표 붙이기


hwp.Run("TableResizeCellDown")

셀 크기 변경: 셀 아래


hwp.Run("TableResizeCellLeft")

셀 크기 변경: 셀 왼쪽


hwp.Run("TableResizeCellRight")

셀 크기 변경: 셀 오른쪽


hwp.Run("TableResizeCellUp")

셀 크기 변경: 셀 위


hwp.Run("TableResizeDown")

셀 크기 변경


hwp.Run("TableResizeExDown")

셀 크기 변경: 셀 아래. TebleResizeDown과 다른 점은 셀 블록 상태가 아니어도 동작한다는 점이다.


hwp.Run("TableResizeExLeft")

셀 크기 변경: 셀 왼쪽. TebleResizeLeft와 다른 점은 셀 블록 상태가 아니어도 동작한다는 점이다.


hwp.Run("TableResizeExRight")

셀 크기 변경: 셀 오른쪽. TebleResizeRight와 다른 점은 셀 블록 상태가 아니어도 동작한다는 점이다.


hwp.Run("TableResizeExUp")

셀 크기 변경: 셀 위. TebleResizeUp과 다른 점은 셀 블록 상태가 아니어도 동작한다는 점이다.


hwp.Run("TableResizeLeft")

셀 크기 변경


hwp.Run("TableResizeLineDown")

셀 크기 변경: 선아래


hwp.Run("TableResizeLineLeft")

셀 크기 변경: 선 왼쪽


hwp.Run("TableResizeLineRight")

셀 크기 변경: 선 오른쪽


hwp.Run("TableResizeLineUp")

셀 크기 변경: 선 위


hwp.Run("TableResizeRight")

셀 크기 변경


hwp.Run("TableResizeUp")

셀 크기 변경


hwp.Run("TableRightCell")

셀 이동: 셀 오른쪽


hwp.Run("TableRightCellAppend")

셀 이동: 셀 오른쪽에 이어서


hwp.Run("TableSplitTable")

표 나누기


hwp.Run("TableUpperCell")

셀 이동: 셀 위


hwp.Run("TableVAlignBottom")

셀 세로정렬 아래


hwp.Run("TableVAlignCenter")

셀 세로정렬 가운데


hwp.Run("TableVAlignTop")

셀 세로정렬 위


hwp.Run("ToggleOverwrite")

Toggle Overwrite


hwp.Run("Undo")

되살리기


hwp.Run("UnlinkTextBox")

글상자 연결 끊기


hwp.Run("VersionDeleteAll")

모든 버전정보 지우기


hwp.Run("ViewIdiom")

상용구 보기


hwp.Run("ViewOptionCtrlMark")

조판 부호

 


hwp.Run("ViewOptionGuideLine")

안내선


hwp.Run("ViewOptionMemo")

메모 보이기/숨기기([보기-메모-메모 보이기/숨기기]메뉴와 동일)


hwp.Run("ViewOptionMemoGuideline")

메모 안내선 표시([보기-메모-메모 안내선 표시]메뉴와 동일)


hwp.Run("ViewOptionPaper")

쪽 윤곽 보기


hwp.Run("ViewOptionParaMark")

문단 부호


hwp.Run("ViewOptionPicture")

그림 보이기/숨기기([보기-그림]메뉴와 동일)


hwp.Run("ViewOptionRevision")

교정부호 보이기/숨기기([보기-교정부호]메뉴와 동일)


hwp.Run("VoiceCommand Config")

음성 명령 설정


hwp.Run("VoiceCommand Resume")

음성 명령 레코딩 시작


hwp.Run("VoiceCommand Stop")

음성 명령 레코딩 중지


2021. 8. 1. 21:38, 약 10% 가량의 Run액션을 기쁜 마음으로 정리했습니다.

2021. 8. 3. 03:00, 11.4%(52/455) 진행중입니다. C섹션에서는 Copy와 Cut 만 남았네요.

2021. 8. 3. 23:53, 한/글2007 기준 파라미터 필요없는 Run메서드 전부를 우선 추가했습니다. 설명과 시연영상만 틈틈이 추가하면 될 것 같아요. 작성은 파이참 찾아바꾸기로 작업했습니다. (이것도 포스팅으로 남기고 싶네요.) 이것 마친 뒤에는 한/글2020 기준으로 매뉴얼에는 없지만 유용한 새로 생성된 메서드들을 조금 보태려고 합니다.

부디 많은 아래아한글 유저들이 아래아한글 자동화작업시에 간편하게 참고할 수 있는 자료가 되면 좋겠습니다.

앞으로도 도움이 되는 콘텐츠를 만들어 가겠습니다.

 

 

움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피 강의 - 인프런

파이썬으로 아래아한글을 다루는 짧은 예제코드들을 소개하고, 중간중간의 결과를 GIF로 보여드립니다. 동영상 강의가 아니지만 오히려 빠르게 배울 수 있고, 따라하기도 쉽습니다., 파이썬과

www.inflearn.com