Excel 매크로의 Word 문서 (Microsoft Excel)
Eric은 회사 정보의 Excel 데이터베이스를 가지고 있습니다. 그는 Excel 매크로를 사용하여 데이터베이스의 주소와 정보를 다른 Word 문서로 복사하려고합니다. Eric은 Excel 매크로가 정보를 붙여 넣을 특정 Word 문서를 열도록 만드는 방법에 대해 궁금합니다.
이 작업을 수행하는 한 가지 방법은 Excel을 사용하지 않는 것입니다. 대신 Word의 편지 병합 기능을 사용하여 Excel 데이터베이스에서 정보를 가져옵니다.
이 접근 방식은 잘 정의 된 정보로 문서를 만드는 경우 가장 효과적입니다. 그러나 일련의 문서를 열고 Excel 데이터베이스의 데이터를 문서로 복사해야하는 경우 편지 병합으로도 문제가 해결되지 않습니다.
Word에는 매크로를 사용하여 다른 Office 응용 프로그램에서 작업하기위한 특수 이름 인 Office Automation이 있습니다. Office 자동화 매크로를 만드는 것은 Excel과 같은 특정 응용 프로그램 내에서만 작동하는 매크로를 만드는 것보다 조금 더 복잡합니다. 할 수있는 작업 중 하나는 Office Automation 응용 프로그램에 대한 많은 정보가 포함 된 무료 도움말 파일을 다운로드하는 것입니다. 다음 Microsoft 페이지에서 파일을 다운로드 할 수 있습니다.
http://support.microsoft.com/kb/302460
Excel 매크로 내에서 Word 문서를 여는 기본 절차는 Word 응용 프로그램을 참조하는 개체를 만든 다음 해당 개체를 사용하여 문서를 여는 것입니다. 다음 코드는이 개념을 보여줍니다.
Sub OpenWord() Dim wdApp As Object Dim wdDoc As Object Set wdApp = CreateObject("Word.application") Set wdDoc = wdApp.Documents.Open _ (FileName:="C:\Path\myTestDoc.doc") ' put your code here for working with Word ' This is Word VBA code, not Excel code wdDoc.Close savechanges:=False Set wdDoc = Nothing wdApp.Quit Set wdApp = Nothing End Sub
열려는 문서의 경로와 문서 이름을 변경해야하지만이 코드는 문서를 열기 위해 수행해야하는 작업을 매우 잘 보여줍니다. 작성된대로 Word 문서 (실제로 전체 Word 응용 프로그램)는 화면에 표시되지 않습니다. 응용 프로그램을 표시하려면 매크로 시작 부분에 다음 코드 줄을 사용해야합니다.
wdApp.Visible = True
Excel 매크로 내부에서 Word 파일로 작업하는 또 다른 방법은 DDE 및 SendKeys 함수를 사용하여 정보를 복사하는 것입니다.
다음 DDE 명령을 고려하십시오.
ChannelNumber=Application.DDEInitiate{ _ app:="WinWord", topic:=FullPath
DDEInitiate 메서드는 app과 topic의 두 가지 속성을 사용합니다. app 속성은 DDE를 통해 여는 응용 프로그램을 나타냅니다. 일반적인 예는 계산기의 경우 “calc”또는 “WinWord”(이 경우)입니다.
Word 응용 프로그램의 경우. topic 속성은 열려는 문서 파일의 전체 경로를 나타냅니다. 이 경우 전체 경로는 FullPath 변수에 포함됩니다.
이 방법을 사용하면 문서를 연 다음 SendKeys를 사용하여 해당 문서에 정보를 복사 할 수 있습니다.
Sub PasteExcel2Word() Dim channelNumber As String 'Application Handle Dim FullPath As String FullPath = 'C:\MyFolder\MyFile.Doc' 'Replace above with a file or loop of files Selection.Copy 'Assumes you hilighted what you want copied channelNumber = Application.DDEInitiate( _ app:="WinWord", topic:=FullPath SendKeys "^v", False Application.DDETerminate channelNumber End Sub
Copy 메서드는 정보를 클립 보드에 복사하는 데 사용되며 SendKeys는 ^ v (Ctrl + V)를 사용하여 DDEInitiate를 사용하여 연 문서화 된 Word에 정보를 붙여 넣습니다.
_ 참고 : _
이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (2423)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다.