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

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

Office 2003에 대한 지원이 종료되었습니다.

Microsoft는 2014년 4월 8일 Office 2003에 대한 지원을 종료했습니다. 이러한 변경에 따라 해당 소프트웨어 업데이트 및 보안 옵션이 영향을 받습니다. 사용자에게 미치는 영향 및 계속 보호를 받는 방법에 대해 알아보십시오.

이 문서는 이전에 다음 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) 웹 사이트를 참조하십시오. 맨 위로 (c) Microsoft Corporation 2001, All Rights Reserved. 기고: Lori B. Turner, Microsoft Corporation.





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

문서 ID: 313193 - 마지막 검토: 01/17/2007 07:13:00 - 수정: 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
피드백
");