기존 우리는 표와 표사이를 옮겨갈때 화살표로 움직이곤 했다.
이게 표와 표 사이가 몇개 안될때는 문제없지만 3페이지만 넘어가도 이렇게 하드 코딩해서는 완전 자동화를 영위할 수 없다..
표와 표를 넘나들기 위해서는 우선 표 객체만 찾을 수 있는 방법이 있는지 확인하여야 한다.
한글에서는 alt + g 를 누르면 찾아가기가 나오는데 거기서 조판 부호를 선택 후 표를 찾아서 [가기]를 누르면 캐럿(커서)가 있는 위치에서 가장 가까운 표를 찾을 수 있지만 표 안에는 들어가지 않는다.
그럼 우리는 문서의 가장 처음으로 커서를 위치한 후 표 찾는 스크립트를 반복하면 되지만, 표안에는 들어가지 않으니 표에 들어가서 어떤 행위를 하는 코드를 추가해주면 될것이다.
Do
hwp.FindTable fbln '= 표 찾기
If fbln = False Then Exit Do '= 더이상 찾을 표가 없을때까지 반복
hwp.WriteText i & "번째 표이동"
i = i + 1
Loop
FindTable은 본인이 만드는 추가 함수로 더이상 찾을 표가 없으면 fbln이 false를 출력하게 된다.
Sub FindTable(fbln As Boolean)
R = HAction.GetDefault("Goto", HParameterSet.HGotoE.HSet)
With HParameterSet.HGotoE
R = .HSet.SetItem("DialogResult", 55) '= 표로 찾기
.SetSelectionIndex = 5 '= 조판부호
End With
R = HAction.Execute("Goto", HParameterSet.HGotoE.HSet)
fbln = R
Run "MoveUp"
Run "MoveDown" '= 표에 들어가기
End Sub
표찾기를 무한루프를 통해 반복하면서 더이상 찾을 표가 없다는 fbln이 나오면 do ~ loop를 탈출하게 된다.
한글을 하다보면 찾기나 바꾸기가 나오면서 계속 찾을 거라는 팝업이 나오는데
hwp.NewDocument
hwp.OpenHwpDocument "표이동하기" '= 표이동하기를 불러와라
hwp.MoveDocStart '= 문서의 처음으로 이동해라
hwp.NonePopUP '= 한글 팝업제거
hwp.NonePopUP은 그 팝업을 완전히 제거한다.
Function NonePopUP()
R = hwp.SetMessageBoxMode(val(&H20000))
End Function
NonePopUP 함수는 이번 테스트를 위해서 만든 코드이며, 말했듯 팝업을 제거하는 코드이다.
정리하면 샘플문서인 [표이동하기] 를 불러와서 표들을 순환하면서 표의 처음으로 들어가서 몇번째 표이동인지 출력하는 구문이다.
하나씩 함수나 스크립트를 업데이트 하고 있는데 이렇게 몇번더 고생하면 재밌는 라이브러리가 만들어질듯하다.
그럼 이만~~~
Sub 표이동_테스트()
Dim fbln As Boolean: fbln = True
Dim i&
Dim strPath$
strPath = ThisWorkbook.path & "\한글자동화.exe" '= 보안모듈 자동 선택 / 개인의 환경에 따라 안될 수도 있음
Shell strPath '= 본인의 한글버전은 2020 버전이다.
hwp.NewDocument
hwp.OpenHwpDocument "표이동하기" '= 표이동하기를 불러와라
hwp.MoveDocStart '= 문서의 처음으로 이동해라
hwp.NonePopUP '= 한글 팝업제거
i = 1
Do
hwp.FindTable fbln '= 표 찾기
If fbln = False Then Exit Do '= 더이상 찾을 표가 없을때까지 반복
hwp.WriteText i & "번째 표이동"
i = i + 1
Loop
Application.SendKeys "{F1}" '= 보안모듈해제가 계속 실행이 되는데 그것을 끄는 단축키를 F1으로 설정하였다.
'= 이건 변동이 되지 않는다. / 변동하기 위해서는 EXE파일을 새로 만들어야 한다.
hwp.SaveAs ThisWorkbook.path, "표이동학습"
SaveAs ThisWorkbook.path, "표이동학습"
closeFile
closeHwp
End Sub
'VBA > VBA + 아래아한글 자동화' 카테고리의 다른 글
[한글자동화] 아래아 한글 표 제어하기 #3 (0) | 2023.09.21 |
---|---|
[한글자동화] 아래아 한글 표 제어하기 #2 (0) | 2023.09.17 |
[한글자동화] 엑셀 문단을 한글표에 정리하기 (0) | 2023.09.07 |
[한글자동화] 텍스트 색상변경 (0) | 2023.09.04 |
[한글 자동화] 자간 맞추기 + 줄바꿈 (0) | 2023.09.02 |
댓글