Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

냥집사의 개발일지

VBA - VBA로 페이지 생성 (Excel to Word) 본문

VBA

VBA - VBA로 페이지 생성 (Excel to Word)

깅햄찌 2022. 9. 8. 20:41
반응형

안녕하세요 오늘은 Excel에서 Word로 VBA를 이용해 페이지를 생성하는 법을 알아보겠습니다. 

 

사실 단순히 page를 생성하는 함수(Ctrl + Enter)가 있을 줄 알았는데 제가 못 찾는 건지 없는 건지 모르겠네요ㅠㅠ

대신에 Range의 property 中 page를 삽입하는 InsertBreak를 사용하여

페이지를 생성하는 것과 같은 코드를 작성해 보았습니다. 

 

2022.08.28 - [VBA] - VBA - VBA를 이용하여 Excel에서 Word로 데이터 복사하기

 

VBA - VBA를 이용하여 Excel에서 Word로 데이터 복사하기

최근 Excel에 있는 데이터들을 Word로 복사할 일이 있었는데요. 데이터 양이 너무 많아서 자동화시켜야겠다고 생각했습니다. 다행히 VBA를 이용하여 Excel에서 Word로 데이터를 복사하는 방법이 있어

leggo-fire.tistory.com

아래 코드를 이해하기 쉽게 위의 포스팅을 참조해주세요!!

 

 

Sub ExcelToWord()
    
    Dim wd_app As Word.Application
    Dim wd_doc As Word.Document
      
    'Creating a new instance of word only if there no other instances
    Set wd_app = New Word.Application

    'Make word window visible on monitor
    wd_app.Visible = True

    'Creating a new document
    Set mydoc = wd_app.Documents.Add()

    'copying the content from excel sheet
    ThisWorkbook.Worksheets("sheet1").Range("A1:C3").Copy


    'Pasting on the document
    mydoc.Range.PasteExcelTable LinkedToExcel:=False, WordFormatting:=False, RTF:=False
    
    'Set range and create new page
    Set myrange = mydoc.Range(0, 0)
    myrange.InsertBreak

    'saving the document
    mydoc.SaveAs2 "MyDoc"

End Sub

추가된 것은 아래 코드 입니다. 

'Set range and create new page
 Set myrange = mydoc.Range(0, 0)
 myrange.InsertBreak

 

Range를 설정해 페이지 삽입을 시작할 부분을 정해주고

InsertBreak를 이용해 페이지를 삽입해주었습니다. 

위 그림처럼 생성된 Word 파일은 2Page가 생성되었습니다. 

 

페이지 삽입에 대해 자세한 설명은 아래 코드를 보면 더 자세히 알 수 있습니다. 

역시 Range를 설정해주고

Collapse Direction property를 통해 선택한 Range에서 커서의 위치를 특정할 수 있습니다. 

InsertBreak는 위의 예제 처럼 페이지 삽입도 가능하지만 섹션 및 열(Column) 등의 삽입도 가능합니다.  

Set myRange = ActiveDocument.Paragraphs(2).Range 
With myRange 
 .Collapse Direction:=wdCollapseEnd 
 .InsertBreak Type:=wdPageBreak 
End With

오늘은 Excel에서 Word로 VBA를 이용해 페이지를 생성하는 법을 알아보았는데요. 

Word VBA는 정말 정보가 없어서 쉽지 않네요. 혹시 더 좋은 방법이 있으면 알려주시면 감사하겠습니다 

 

좋은 하루 보내세요!!

Comments