본문 바로가기
VBA/VBA + 아래아한글 자동화

[한글자동화] 아래아 한글 표 제어하기 #2

by 일등미노왕국 2023. 9. 17.

한글 표 제어하기 2편정도로 생각한다.
 
기본에는 이미 만들어진 표를 찾아가면서 내요을 넣었다면, 이번 구문은 새문서를 만들고 표를 하나 만든 후 그것들을 모두 복사한후 다시 셀을 순환하면서 이름표를 만드는 구문이다. 
 
보통 이러한 것을 할때는  표를 하나를 만들 후 그 안에 [누름틀]을 생성한 후 그것을 복사하여 누름틀 내용을 변경하면서 작업을 한다. 
 
이것을 한글 표 제어하기 3편에서 코드를 공개하도록 하겠다.
 

더보기
Sub 이름표만들기()

    Dim fbln As Boolean: fbln = True
    Dim strPath$
    Dim i&
    Dim rngX As Range: Set rngX = [e7]
    Dim rngA As Range
  
    strPath = ThisWorkbook.path & "\한글자동화.exe"  '= 보안모듈 자동 선택 / 개인의 환경에 따라 안될 수도 있음
    Shell strPath                                    '= 본인의 한글버전은 2020 버전이다.
    
    
    hwp.NewDocument                                 '= 새문서
    
    hwp.setPaperMargin 10, 10, 10, 10, 15, 15       '= 페이지 크기 설정
    
    hwp.addTable 1, 1, 40, 50                       '= 표하나 생성 / 40 X 50
    hwp.setFont "함초롬돋움", 13                     '= 기본 폰트 설정과 크기
    hwp.alignmentCenter                             '= 가운데 정렬
    hwp.tableExit                                   '= 테이블 나오기
    hwp.MoveSelNextWord                             '= 테이블 블럭설정
    hwp.Copy                                        '= 테이블 복사
    hwp.Cancle                                      '= 테이블 블럭 해제
    
    hwp.moveLineEnd                                 '= 현재는 셀이 하나뿐이므로 끝으로 이동
             
    
    For i = 1 To 14
         hwp.Paste                                  '= 14개의 셀을 만들어라 / 총 15개
    Next i
    
    hwp.selectAll                                   '= 페이지 전체 선택
    hwp.alignmentCenter                             '= 가운데 정렬
    
    hwp.NonePopUP                                   '= 한글 팝업제거 / 표 찾기 완료후 다시 찾을까요? 없애기
    
    hwp.MoveDocStart                                '= 문서의 처음으로 이동
   
    Do
        hwp.FindTable fbln                          '= 표 찾기
        If fbln = False Then Exit Do                '= 더이상 찾을 표가 없을때까지 반복
      
        hwp.WriteText rngX.text                     '= 이름
        'hwp.moveLineEnd
        hwp.Enter                                   '= 줄바꿈
        hwp.WriteText rngX(1, 2) & vbCrLf & rngX(1, 3) '= 부서와 전화번호
        Run "TableColPageUp"                        '= 셀의 시작으로 이동
        hwp.MoveSelNextWord                         '= 이름을 블럭지정

        hwp.setFont "함초롬돋움", 15, True            '= 폰트수정
        Run "MoveListEnd"                            '= 셀의 끝으로 이동
        
        Set rngX = rngX.Offset(1)                    '= 다음 이름 순환

      
    Loop
    
    Application.SendKeys "{F1}"                      '= 보안모듈해제가 계속 실행이 되는데 그것을 끄는 단축키를 F1으로 설정하였다.
                                                     '= 이건 변동이 되지 않는다. / 변동하기 위해서는 EXE파일을 새로 만들어야 한다.
    hwp.SaveAs ThisWorkbook.path, "이름표_완성"
    
    closeFile                                        '= 한글문서 닫기
    closeHwp                                         '= 한글 닫기

End Sub

 
한글 자동화는 우리가 아직 낯설고, 필요성에 대한 부족성이 있어서 그렇지 그리 난이도가 있는 건 아니지만 많이 어려워한다
그러나 VBA와 콜라보하여 탄생되는 그 결과물은 참 놀라울 따름이다.
 
한글자동화를 배우고 싶거나 궁긍한 분들은 한글 API를 함께 첨부하니 공부해보길 바란다.
 
 
 
 

이름표만들기.zip
0.71MB
Action Table (1).hwp
0.18MB

댓글