현재 오프라인 상태입니다. 인터넷에 다시 연결하기를 기다리고 있습니다.

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

Support for Office 2003 has ended

Microsoft ended support for Office 2003 on April 8, 2014. This change has affected your software updates and security options. Learn what this means for you and how to stay protected.

이 문서의 Microsoft Visual C# .NET 버전에 대한 내용은 316384를 참조하십시오.
이 문서의 Microsoft Visual Basic 6.0 버전에 대한 내용은 313193을 참조하십시오.

작업 내용

요약
이 문서에서는 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) 웹 사이트를 참조하십시오. 맨 위로



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

문서 ID: 316383 - 마지막 검토: 01/17/2007 07:13:00 - 수정: 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
피드백
varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write(" html>e="display: none; " src="https://c1.microsoft.com/c.gif?DI=4050&did=1&t="> var varClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write("