HOWTO: Visual Basic .NET에서 Word를 자동화하여 새 문서 만들기

기술 자료 번역 기술 자료 번역
기술 자료: 316383 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

요약

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

예제 코드

본 문서의 예제 코드는 다음 작업을 수행하는 방법을 보여줍니다.
  • 텍스트와 서식이 있는 단락을 삽입합니다.
  • 문서 내의 여러 범위를 탐색 및 수정합니다.
  • 표를 삽입하고, 표에 서식을 지정하고 표를 데이터로 채웁니다.
  • 차트를 추가합니다.
Visual Basic .NET의 자동화를 사용하여 새 Word 문서를 만들려면 다음과 같이 하십시오.
  1. Microsoft Visual Studio .NET을 시작합니다. 파일 메뉴에서 새로 만들기를 누른 다음 프로젝트를 누릅니다. 프로젝트 형식에서 Visual Basic 프로젝트를 누른 다음 템플릿에서 Windows 응용 프로그램을 누릅니다. 기본적으로 Form1이 생성됩니다.
  2. Microsoft Word Object Library에 대한 참조를 추가합니다. 이렇게 하려면 다음과 같이 하십시오.
    1. 프로젝트 메뉴에서 참조 추가를 누릅니다.
    2. COM 탭에서 Microsoft Word 개체 라이브러리를 찾은 다음 선택을 누릅니다.

      참고 Microsoft Office 2003에는 PIA(기본 Interop 어셈블리)가 포함되어 있습니다. Microsoft Office XP에는 PIA가 포함되어 있지만 다운로드할 수 없습니다. Office XP PIA에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
      328912 INFO: Microsoft Office XP PIA를 다운로드할 수 있다
    3. 참조 추가 대화 상자에서 확인을 눌러 선택한 내용을 적용합니다. 선택한 라이브러리에 대해 래퍼를 생성할 것인지 묻는 메시지가 표시되면 를 누릅니다.
  3. 보기 메뉴에서 도구 상자를 선택하여 도구 상자를 표시한 다음 Form1에 Button 컨트롤을 추가합니다.
  4. Button1을 두 번 누릅니다. 해당 폼에 대한 코드 창이 나타납니다.
  5. 코드 창에서 아래의 코드를
        Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
    
        End Sub
    					
    다음 코드로 대체합니다.
        Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.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.
            oWord = CreateObject("Word.Application")
            oWord.Visible = True
            oDoc = oWord.Documents.Add
    
            'Insert a paragraph at the beginning of the document.
            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.
            oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)
            oPara2.Range.Text = "Heading 2"
            oPara2.Format.SpaceAfter = 6
            oPara2.Range.InsertParagraphAfter()
    
            'Insert another paragraph.
            oPara3 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\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 and italic.
            Dim r As Integer, c As Integer
            oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item("\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.Item(1).Range.Font.Bold = True
            oTable.Rows.Item(1).Range.Font.Italic = True
    
            'Add some text after the table.
            'oTable.Range.InsertParagraphAfter()
            oPara4 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\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.
            oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item("\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.Item(1).Width = oWord.InchesToPoints(2)   'Change width of columns 1 & 2
            oTable.Columns.Item(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.Item("\endofdoc").Range.InsertParagraphAfter()
            Do
                oRng = oDoc.Bookmarks.Item("\endofdoc").Range
                oRng.ParagraphFormat.SpaceAfter = 6
                oRng.InsertAfter("A line of text")
                oRng.InsertParagraphAfter()
            Loop While Pos >= oRng.Information(Word.WdInformation.wdVerticalPositionRelativeToPage)
            oRng.Collapse(Word.WdCollapseDirection.wdCollapseEnd)
            oRng.InsertBreak(Word.WdBreakType.wdPageBreak)
            oRng.Collapse(Word.WdCollapseDirection.wdCollapseEnd)
            oRng.InsertAfter("We're now on page 2. Here's my chart:")
            oRng.InsertParagraphAfter()
    
            'Insert a chart and change the chart.
            oShape = oDoc.Bookmarks.Item("\endofdoc").Range.InlineShapes.AddOLEObject( _
                ClassType:="MSGraph.Chart.8", FileName _
                :="", LinkToFile:=False, DisplayAsIcon:=False)
            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.
            oRng = oDoc.Bookmarks.Item("\endofdoc").Range
            oRng.InsertParagraphAfter()
            oRng.InsertAfter("THE END.")
    
            'All done. Close this form.
            Me.Close()
    
        End Sub
    					
  6. 다음 코드를 Form1.vb의 맨 위에 추가합니다.
    Imports Word = Microsoft.Office.Interop.Word
    					
  7. F5 키를 눌러 프로그램을 빌드하고 실행합니다.
코드가 완료된 후 만들어진 문서를 검사하십시오. 문서에 서식이 지정된 단락, 표 및 차트가 두 페이지 포함되어 있습니다.

템플릿 사용

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

참조

Visual Basic .NET를 사용하여 Microsoft Word를 자동화하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
301656 HOWTO: Visual Basic .NET에서 편지 병합을 수행하기 위해 Microsoft Word 자동화
자세한 내용은 다음 MSDN(Microsoft Developer Network) 웹 사이트를 참조하십시오.
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




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

속성

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

피드백 보내기

 

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