요약
Automation을 사용하면 사용자가 Word에서 수동으로 할 수 있는 거의 모든 Microsoft Office 수 있습니다. 그러나 입력하고 서식을 지정하려는 텍스트가 많은 경우 많은 코드가 필요할 수 있습니다. 데이터를 RTF(리치 텍스트 형식) 문자열로 표현할 수 있는 경우 자동화 코드를 자주 줄일 수 있습니다. RTF 문자열을 만들고, RTF 문자열을 클립보드에 복사한 다음 RTF 문자열을 문서에 붙여넣을 수 있습니다.
이 문서에서는 Word를 시작하고, Visual Basic 문서를 만들고, 미리 빌드된 RTF 문자열을 사용하여 문서에 서식이 지정된 텍스트를 추가하는 간단한 예제를 빌드하는 방법을 설명합니다.
추가 정보
예제 프로젝트를 만들 경우 다음 단계를 수행합니다.
-
Visual Basic 시작한 다음 새 표준 EXE를 생성합니다. 기본적으로 Form1이라는 폼이 만들어집니다.
-
폼에 CommandButton을 추가하고 CommandButton을 두 번 클릭한 다음 다음 코드를 클릭 이벤트에 추가합니다.
'sRTF represents the rich-text-formatted string to paste into Word
Dim sRTF As String
sRTF = "{\rtf1\ansi\ansicpg1252\deff0\deftab720{\fonttbl" & _
"{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}" & _
"{\f2\froman\fprq2 Times New Roman;}}" & _
"{\colortbl\red0\green0\blue0;\red255\green0\blue0;}" & _
"\deflang1033\horzdoc{\*\fchars }{\*\lchars }" & _
"\pard\plain\f2\fs24 Line 1 of \plain\f2\fs24\cf1" & _
"inserted\plain\f2\fs24 file.\par }"
'Copy the contents of the Rich Text to the clipboard
Dim lSuccess As Long
Dim lRTF As Long
Dim hGlobal As Long
Dim lpString As Long
lSuccess = OpenClipboard(Me.hwnd)
lRTF = RegisterClipboardFormat("Rich Text Format")
lSuccess = EmptyClipboard
hGlobal = GlobalAlloc(GMEM_MOVEABLE Or GMEM_DDESHARE, Len(sRTF))
lpString = GlobalLock(hGlobal)
CopyMemory lpString, ByVal sRTF, Len(sRTF)
GlobalUnlock hGlobal
SetClipboardData lRTF, hGlobal
CloseClipboard
GlobalFree hGlobal
'Paste into a new Word document
Dim oWord As Object
Dim oDoc As Object
Set oWord = CreateObject("word.application")
Set oDoc = oWord.Documents.Add
oWord.Selection.Paste
oWord.Visible = True -
폼 모듈의 일반 선언 섹션에 다음 코드를 추가합니다.
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function RegisterClipboardFormat Lib "user32" Alias _
"RegisterClipboardFormatA" (ByVal lpString As String) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function SetClipboardData Lib "user32" ( _
ByVal wFormat As Long, ByVal hMem As Long) As Long
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, _
ByVal dwBytes As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
ByVal Destination As Long, Source As Any, ByVal Length As Long)
Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long
Private Declare Function GlobalFree Lib "kernel32" Alias "GlobalFree" ( _
ByVal hMem As Long) As Long
Private Const GMEM_DDESHARE = &H2000
Private Const GMEM_MOVEABLE = &H2 -
F5 키를 눌러 프로젝트를 실행합니다. Word가 시작된 다음 서식이 지정된 텍스트를 포함하는 새 문서가 만들어집니다.
참조
솔루션 개발을 위한 Office 자세한 내용은 다음 Microsoft 웹 사이트를 방문하세요.
http://support.microsoft.com/ofd http://msdn.microsoft.com/office