HOWTO: VBA 및 Office Developer를 사용하여 Office COM 추가 기능 만들기

기술 자료 번역 기술 자료 번역
기술 자료: 306130 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR306130
모두 확대 | 모두 축소

이 페이지에서

요약

본 문서에서는 Microsoft Excel이나 Microsoft Word를 시작할 때 환영 메시지를 나타내는 사용자 정의 폼(UserForm)을 표시하는 방법을 설명합니다. 구성 요소 개체 모델(COM) 추가 기능은 컴파일된 동적 링크 라이브러리(DLL)에 공통의 코드를 중앙에서 관리하는 수단을 제공하여 Office 응용 프로그램을 쉽게 구현할 수 있습니다. 예를 들어, Excel, Word 및 Microsoft Access에서 Microsoft Outlook 연락처에 액세스할 수 있습니다. Microsoft Office에서 COM DLL을 개발하는 가장 간단한 방법은 디자이너와 IDTExtensibility2 라이브러리에 대한 참조를 제공하는 추가 기능 프로젝트로 작업하는 것입니다.

요구 사항

이 문서에서는 사용자가 다음 항목에 익숙하다고 가정합니다.

  • Office XP 응용 프로그램에서 Visual Basic for Applications(VBA) 프로시저 작성
  • VBA에서 사용자 정의 폼 사용
  • Office XP 도구 모음 사용자 지정

추가 기능 프로젝트 만들기

Office 2000 또는 Office XP 응용 프로그램에서 추가 기능 프로젝트를 만들 수 있습니다. 이 예제는 Microsoft Word 2002에서 작동합니다.
  1. Microsoft Word 2002를 시작합니다.
  2. 도구 메뉴에서 매크로를 가리킨 다음 Visual Basic Editor를 누릅니다.
  3. Visual Basic Editor(VBE)에서 파일 메뉴의 새 프로젝트를 누릅니다.
  4. 새 프로젝트 대화 상자에서 Add-In Project를 누릅니다. 그러면 추가 기능 디자이너가 자동으로 제공됩니다.
  5. 속성 창이 나타나지 않으면 보기 메뉴에서 속성 창을 누릅니다.
  6. 속성 창에서 AddInDesigner1의 프로젝트 이름을 WelcomeAddIn으로 바꿉니다.
  7. 삽입 메뉴에서 사용자 정의 폼 을 눌러 UserForm을 삽입합니다.
  8. 도구 상자에서 레이블과 명령 단추를 UserForm에 추가합니다.
  9. 속성 창에서 컨트롤의 속성을 다음 표의 값과 일치하도록 변경합니다.
    표 축소표 확대
    컨트롤속성
    LabelNamelblMessage
    CaptionWelcome
    Font14pt
    AutoSizeTrue
    CommandButtonNamecmdOK
    CaptionOK
    UserFormNamefrmWelcome

  10. 삽입 메뉴에서 모듈을 눌러 표준 모듈을 삽입합니다.
  11. 다음 전역 문자열 변수 선언을 표준 모듈에 추가합니다.
    Public gstrUserName As String
    'This variable will be used to store the name of the user as defined
    'in the Options dialog boxes (from the Tools menu) in Word and Excel.
  12. 모듈에서 다음 코드를 추가하여 DisplayForm라는 공용 하위 프로시저를 만들어 화면에 폼을 표시합니다.
    Public Sub DisplayForm()
      frmWelcome.Show vbModal
    End Sub
  13. frmWelcome 폼의 코드 창을 보고 다음 코드를 UserForm_Initialize 이벤트에 추가하여 레이블 캡션을 문자열 변수와 연결합니다.
    lblMessage.Caption = lblMessage.Caption & " " & gstrUserName
  14. 다음 코드를 CommandButton cmdOKClick 이벤트에 추가하여 폼을 언로드합니다.
    Unload me

추가 기능 디자이너의 속성 변경

Microsoft Excel을 시작하면 추가 기능이 실행되도록 다음 단계에 따라 디자이너의 속성을 변경합니다.
  1. 프로젝트 탐색기에서 구성 요소를 두 번 눌러 추가 기능 디자이너로 돌아갑니다.
  2. 디자이너의 일반 탭에서 디자이너의 속성을 다음 표의 값과 일치하도록 변경합니다.
    표 축소표 확대
    속성
    AddIn Display NameFunFormMessage
    AddIn DescriptionExcel에 특정한 코드 포함
    ApplicationMicrosoft Excel
    Application VersionMicrosoft Excel 10.0
    Initial Load BehaviorStartup

IDTExtensibility2 이벤트 구현

  1. 보기 메뉴에서 코드를 눌러 디자이너 뒤에 있는 코드 모듈을 봅니다.
  2. 도구 메뉴에서 참조를 누르고 참조를 Microsoft Excel 개체 라이브러리로 설정합니다.
  3. 개체 드롭다운 목록에서 AddinInstance를 누릅니다. 프로시저 드롭다운 목록에서 OnConnection을 누릅니다.

    이 이벤트는 CommandBar 단추를 만들거나 추가 기능이 호스트 응용 프로그램에 연결되었을 때의 응용 프로그램 이벤트와 같은 이벤트와 코드를 연결시키는 데 유용합니다.
  4. 다음 코드를 AddinInstance_OnConnection 이벤트 프로시저에 추가하여 전역 변수 strUserName에 사용자 이름을 저장하고 DisplayForm 프로시저를 호출합니다.
    gstrUserName = Application.UserName
    DisplayForm
  5. VBE에서 저장을 누르고 프로젝트 이름을 Welcome.vba로 지정합니다.

두 번째 디자이너 추가

이 프로시저에서 두 번째 디자이너를 추가하여 Microsoft Word에서 같은 기능을 구현합니다.
  1. VBE에 다른 추가 기능 프로젝트를 만듭니다. AddInProject2는 기본적으로 만들어집니다.
  2. 프로젝트 탐색기에서 새로운 추가 기능 디자이너 인터페이스(AddInDesigner1)를 기존 추가 기능 프로젝트로 끕니다. 프로젝트에 디자이너가 두 개 있게 됩니다.
  3. 프로젝트 탐색기에서 AddInProject2를 마우스 오른쪽 단추로 누른 다음 Close Project를 눌러 방금 만든 프로젝트를 제거합니다.
  4. 다음과 유사한 메시지가 나타나면
    AddInProject2 프로젝트가 수정되었습니다. 저장하시겠습니까?
    아니오를 누릅니다.
  5. 디자이너의 속성을 변경하여 Word 10을 대상 응용 프로그램으로 지정하고 시작 프로그램에서 로드합니다.
  6. 다음 코드를 Excel 디자이너의 OnConnection 이벤트에 대해 이전에 작성한 코드와 같은 새로운 Word 디자이너의 AddinInstance_OnConnection 이벤트 프로시저에 추가합니다.
    gstrUserName = Application.UserName
    DisplayForm

추가 기능 디버그

  1. 원할 경우 적절한 중단점을 코드에 추가합니다.
  2. VBE에서 실행 메뉴의 Run Project를 눌러 추가 기능을 실행합니다.
  3. Microsoft Excel을 시작합니다. 프로젝트가 시작되면 AddIn Designer 대화 상자가 나타날 수 있습니다. 옵션을 눌러 응용 프로그램을 시작하고 Excel.exe를 찾습니다. 이 대화 상자가 나타나지 않으면 시작을 누르고 프로그램을 가리킨 다음 Microsoft Excel을 눌러 Excel을 시작합니다. 사용자 정의 폼이 나타납니다.
  4. COM 추가 기능 관리자를 아직 사용할 수 없으면 COM 추가 기능 명령을 다음과 같이 도구 모음에 추가합니다.
    1. 도구 메뉴에서 사용자 지정을 누릅니다.
    2. 사용자 지정 대화 상자의 명령 탭에서 도구 범주의 COM 추가 기능 명령을 도구 모음이나 도구 메뉴 CommandBarPopup 개체로 끕니다.
  5. COM 추가 기능 명령 모음을 눌러 COM 추가 기능 관리자(CAM)를 표시합니다. CAM의 목록은 로드된 모든 추가 기능을 표시합니다.
  6. OnConnection 이벤트를 테스트하려면 CAM에서 Welcome 추가 기능 확인란 선택을 취소한 다음 확인을 누릅니다. CAM을 다시 표시하고 Welcome 확인란을 선택한 다음 확인을 누릅니다. 사용자 정의 폼이 다시 나타납니다.
  7. 호스트 응용 프로그램(Word 또는 Excel)을 닫고 VBE의 실행 메뉴에서 Stop Project를 눌러 프로젝트 실행을 중지합니다.

추가 기능 작동 확인

이제 추가 기능을 컴파일하고 다른 컴퓨터에서 작동하는지 확인할 수 있습니다.
  1. VBE에서 프로젝트를 저장합니다. 이것은 편집 가능한 버전입니다. 컴파일된 상태에서는 수정할 수 없습니다.
  2. 파일 메뉴에서 Make Welcome.DLL을 누릅니다.
  3. regsvr32 명령을 사용하여 다음과 같이 DLL을 등록합니다.
    1. Windows 시작 메뉴에서 실행을 누릅니다.
    2. 열기 텍스트 상자에 다음 텍스트를 입력합니다.
      regsvr32 < path >\Welcome.DLL
      여기서 < path >는 DLL에 대한 시스템 경로입니다.
  4. 확인을 눌러 DLL의 등록을 확인합니다.
  5. Excel이나 Word를 실행합니다. 사용자 정의 폼이 나타납니다. UserForm이 나타나지 않으면 도구 메뉴에서 COM 추가 기능을 누른 다음 Welcome 확인란을 선택합니다.
참고: DLL을 배포하는 가장 간단한 방법은 패키지 및 배포 마법사를 사용하는 것입니다.

문제 해결

  • 추가 기능을 메모리로 로드할 때는 반드시 짧고 효율적인 코드를 작성합니다. 예를 들어, OnConnection 이벤트가 시작할 때 데이터베이스 데이터를 조작하면 사용자는 컴퓨터가 응답을 중지한 것으로 생각할 것입니다.
  • 사용자 정의 폼을 사용할 때는 주의하십시오. 사용자는 호스트 응용 프로그램을 클릭할 때 폼이 호스트 응용 프로그램 뒤에 숨어 있기 때문에 폼을 잃어버렸다고 생각할 수 있습니다. 이렇게 생각하는 대신 문제를 해결하기 위하여 폼을 모달로 만듭니다. 폼을 모달로 만들려면 다음과 같이 vbModal 상수를 사용합니다.
    frmMyUserForm.Show vbModal
    이 예와 관련하여 이 코드의 적절한 위치를 확인하려면 추가 기능 프로젝트 만들기 절에서 12단계의 코드를 참조하십시오.

참조

AddIn 템플릿에 대해서는 Office XP Developer CD의 \Samples\Working with AddIns\VBA_COM_AddIn 폴더를 참조하십시오.

CommandBar 단추를 만드는 방법에 대한 예제 코드는 다음 MSDN 웹 사이트를 참조하십시오.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/modcore/html/deovrCreatingCommandBar.asp
Outlook 추가 기능을 디자인하는 방법에 대한 자세한 내용은 다음 MSDN 웹 사이트를 참조하십시오.
http://msdn.microsoft.com/code/default.asp?url=/msdn-files/026/000/118/massmail_design_htm.asp





속성

기술 자료: 306130 - 마지막 검토: 2007년 12월 4일 화요일 - 수정: 1.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Office XP Developer Edition
  • Microsoft Office XP Professional Edition
키워드:?
kbhowto kbhowtomaster KB306130

피드백 보내기

 

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