Visual Basic에서 Microsoft Word를 자동화하여 새 문서를 만드는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 313193 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR313193
모두 확대 | 모두 축소

요약

이 문서에서는 Visual Basic의 자동화를 사용하여 Word에서 새 문서를 만드는 방법을 단계별로 설명합니다.

예제 코드

이 문서의 예제 코드는 다음 작업을 수행하는 방법을 보여 줍니다.
  • 텍스트와 서식이 있는 단락을 삽입합니다.
  • 문서 내의 여러 범위를 탐색 및 수정합니다.
  • 표를 삽입하고, 표에 서식을 지정하고 표를 데이터로 채웁니다.
  • 차트를 추가합니다.
Visual Basic의 자동화를 사용하여 새 Word 문서를 만들려면 다음과 같이 하십시오.
  1. Visual Basic에서 표준 EXE 프로젝트를 새로 만듭니다. 기본적으로 Form1이 만들어집니다.
  2. 프로젝트 메뉴에서 참조를 선택합니다. Word의 개체 라이브러리를 선택한 다음 확인을 누릅니다.

    사용되는 Word 버전에 따른 개체 라이브러리의 목록은 다음과 같습니다.
    1. Microsoft Word 2000의 경우 - Microsoft Word 9.0 개체 라이브러리
    2. Microsoft Word 2002의 경우 - Microsoft Word 10.0 개체 라이브러리
    3. Microsoft Office Word 2003의 경우 - Microsoft Word 11.0 개체 라이브러리
  3. Form1에 CommandButton 컨트롤을 추가합니다.
  4. 아래 코드를 Command1의 Click 이벤트에 추가합니다.
        Dim oWord As Word.Application
        Dim oDoc As Word.Document
        Dim oTable As Word.Table
        Dim oPara1 As Word.Paragraph, oPara2 As Word.Paragraph
        Dim oPara3 As Word.Paragraph, oPara4 As Word.Paragraph
        Dim oRng As Word.Range
        Dim oShape As Word.InlineShape
        Dim oChart As Object
        Dim Pos as Double
    
        'Start Word and open the document template.
        Set oWord = CreateObject("Word.Application")
        oWord.Visible = True
        Set oDoc = oWord.Documents.Add
        
        'Insert a paragraph at the beginning of the document.
        Set oPara1 = oDoc.Content.Paragraphs.Add
        oPara1.Range.Text = "Heading 1"
        oPara1.Range.Font.Bold = True
        oPara1.Format.SpaceAfter = 24    '24 pt spacing after paragraph.
        oPara1.Range.InsertParagraphAfter
        
        'Insert a paragraph at the end of the document.
        '** \endofdoc is a predefined bookmark.
        Set oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks("\endofdoc").Range)
        oPara2.Range.Text = "Heading 2"
        oPara2.Format.SpaceAfter = 6
        oPara2.Range.InsertParagraphAfter
        
        'Insert another paragraph.
        Set oPara3 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks("\endofdoc").Range)
        oPara3.Range.Text = "This is a sentence of normal text. Now here is a table:"
        oPara3.Range.Font.Bold = False
        oPara3.Format.SpaceAfter = 24
        oPara3.Range.InsertParagraphAfter
        
        'Insert a 3 x 5 table, fill it with data and make the first row
        'bold,italic.
        Dim r As Integer, c As Integer
        Set oTable = oDoc.Tables.Add(oDoc.Bookmarks("\endofdoc").Range, 3, 5)
        oTable.Range.ParagraphFormat.SpaceAfter = 6
        For r = 1 To 3
            For c = 1 To 5
                oTable.Cell(r, c).Range.Text = "r" & r & "c" & c
            Next
        Next
        oTable.Rows(1).Range.Font.Bold = True
        oTable.Rows(1).Range.Font.Italic = True
        
        'Add some text after the table.
        'oTable.Range.InsertParagraphAfter
        Set oPara4 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks("\endofdoc").Range)
        oPara4.Range.InsertParagraphBefore
        oPara4.Range.Text = "And here's another table:"
        oPara4.Format.SpaceAfter = 24
        oPara4.Range.InsertParagraphAfter
        
        'Insert a 5 x 2 table, fill it with data and change the column widths.
        Set oTable = oDoc.Tables.Add(oDoc.Bookmarks("\endofdoc").Range, 5, 2)
        oTable.Range.ParagraphFormat.SpaceAfter = 6
        For r = 1 To 5
            For c = 1 To 2
                oTable.Cell(r, c).Range.Text = "r" & r & "c" & c
            Next
        Next
        oTable.Columns(1).Width = oWord.InchesToPoints(2)   'Change width of columns 1 & 2.
        oTable.Columns(2).Width = oWord.InchesToPoints(3)
        
        'Keep inserting text. When you get to 7 inches from top of the
        'document, insert a hard page break.
        Pos = oWord.InchesToPoints(7)
        oDoc.Bookmarks("\endofdoc").Range.InsertParagraphAfter
        Do
            Set oRng = oDoc.Bookmarks("\endofdoc").Range
            oRng.ParagraphFormat.SpaceAfter = 6
            oRng.InsertAfter "A line of text"
            oRng.InsertParagraphAfter
        Loop While Pos >= oRng.Information(wdVerticalPositionRelativeToPage)
        oRng.Collapse (wdCollapseEnd)
        oRng.InsertBreak wdPageBreak
        oRng.Collapse wdCollapseEnd
        oRng.InsertAfter "We're now on page 2. Here's my chart:"
        oRng.InsertParagraphAfter
        
        'Insert a chart and change the chart.
        Set oShape = oDoc.Bookmarks("\endofdoc").Range.InlineShapes.AddOLEObject( _
            ClassType:="MSGraph.Chart.8", FileName _
            :="", LinkToFile:=False, DisplayAsIcon:=False)
        Set oChart = oShape.OLEFormat.Object
        oChart.charttype = 4 'xlLine = 4
        oChart.Application.Update
        oChart.Application.Quit
        '... If desired, you can proceed from here using the Microsoft Graph 
        'Object model on the oChart object to make additional changes to the
        'chart.
        oShape.Width = oWord.InchesToPoints(6.25)
        oShape.Height = oWord.InchesToPoints(3.57)
        
        'Add text after the chart.
        Set oRng = oDoc.Bookmarks("\endofdoc").Range
        oRng.InsertParagraphAfter
        oRng.InsertAfter "THE END."
    
        'All done. Unload this form.
        Unload Me
    					
  5. F5 키를 눌러 프로그램을 실행한 다음 Command1을 누릅니다.
코드가 완료된 후 만들어진 문서를 검사하십시오. 문서에 서식이 지정된 단락, 표 및 차트가 두 페이지 포함되어 있습니다.

서식 파일 사용

자동화를 사용하여 모두 하나의 공통 형식으로 되어 있는 문서를 작성하는 경우, 미리 서식이 지정된 서식 파일 기반의 새 문서를 사용하여 프로세스를 시작하면 도움이 됩니다. Word 자동화 클라이언트에서 서식 파일을 사용하면 문서를 새로 작성하는 데 다음 두 가지 중요한 장점이 있습니다.
  • 문서 전체에서 개체의 서식 지정과 배치를 더 효과적으로 제어할 수 있습니다.
  • 코드를 더 적게 사용하여 문서를 작성할 수 있습니다.
서식 파일을 사용하면 문서 내에서의 표, 단락 및 기타 개체의 배치를 세부적으로 조정할 수 있을 뿐 아니라 그러한 개체에 서식을 포함시킬 수 있습니다. 자동화를 사용하면 다음과 같은 코드를 사용하여 서식 파일 기반의 새 문서를 만들 수 있습니다.
oWord.Documents.Add "<Path to your template>\MyTemplate.dot"
				
서식 파일에서 자동화 클라이언트가 문서의 특정 위치에 변수 텍스트를 채울 수 있도록 다음과 같이 책갈피를 정의할 수 있습니다.
oDoc.Bookmarks("MyBookmark").Range.Text = "Some Text Here"
				
서식 파일을 사용할 때의 또 다른 장점은 다음과 같이 런타임에 적용할 서식 스타일을 만들어서 저장할 수 있다는 것입니다.
oDoc.Bookmarks("MyBookmark").Range.Style = "MyStyle"
				
또는
oWord.Selection.Style = "MyStyle"
				

참조

자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
220607 Visual Basic에서 Microsoft Word를 자동화하여 편지 병합을 수행하는 방법
285332 Visual Basic으로 Word를 자동화하여 편지 병합을 만드는 방법
285333 Word 2002 MailMerge 이벤트 코드 데모
자세한 내용은 다음 MSDN(Microsoft Developer Network) 웹 사이트를 참조하십시오.
Visual Studio를 사용한 Microsoft Office 개발
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx(영문)

Office의 Word
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnofftalk/html/office112000.asp(영문)

Word에 대한 추가 정보
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnofftalk/html/office12072000.asp(영문)
(c) Microsoft Corporation 2001, All Rights Reserved. 기고: Lori B. Turner, Microsoft Corporation.





Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 313193 - 마지막 검토: 2007년 1월 17일 수요일 - 수정: 4.2
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
키워드:?
kbhowtomaster kbautomation KB313193

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com