다음을 통해 공유


VBA 및 문서 수준 사용자 지정 결합

Microsoft Office Word 또는 Microsoft Office Excel용 문서 수준 사용자 지정의 일부인 문서에서 VBA(Visual Basic for Applications) 코드를 사용할 수 있습니다. 사용자 지정 어셈블리에서 문서의 VBA 코드를 호출하거나 문서의 VBA 코드에서 사용자 지정 어셈블리의 코드를 호출할 수 있도록 프로젝트를 구성할 수 있습니다. 두 작업 중 두 번째 작업에 대한 자세한 내용은 VBA에서 문서 수준 사용자 지정의 코드 호출을 참조하십시오.

적용 대상: 이 항목의 정보는 Excel 2007 및 Excel 2010, Word 2007 및 Word 2010의 문서 수준 프로젝트에 적용됩니다. 자세한 내용은 Office 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

문서 수준 사용자 지정의 VBA 코드 동작

Visual Studio에서 프로젝트를 열면 디자인 모드로 문서가 열립니다. 문서가 디자인 모드일 때는 VBA 코드가 실행되지 않으므로 VBA 코드를 실행하지 않고도 문서 및 코드에 대한 작업을 수행할 수 있습니다.

솔루션을 실행하면 VBA와 사용자 지정 어셈블리 양측에서 각 이벤트 처리기가 문서에서 발생한 이벤트를 감지하고 양측의 코드 집합이 모두 실행됩니다. 먼저 실행될 코드를 미리 확인할 수는 없으며 각각의 경우에 테스트를 통해 확인해야 합니다. 두 코드 집합을 잘 조정하고 테스트하지 않으면 예기치 않은 결과가 발생할 수 있습니다.

사용자 지정 어셈블리에서 VBA 코드 호출

Word 문서에서 매크로를 호출하고 Excel 통합 문서에서 매크로 및 함수를 호출할 수 있습니다. 이렇게 하려면 다음 메서드 중 하나를 사용합니다.

각 메서드에서 첫 번째 매개 변수는 호출할 매크로 또는 함수의 이름을 식별하고 나머지 선택적 매개 변수는 매크로 또는 함수에 전달할 매개 변수를 지정합니다. 첫 번째 매개 변수의 형식은 Word와 Excel에서 각기 다를 수 있습니다.

  • Word의 경우 첫 번째 매개 변수는 문자열로서, 서식 파일, 모듈 및 매크로 이름의 조합일 수 있습니다. 문서 이름을 지정할 경우 코드는 현재 컨텍스트와 관련된 문서의 매크로뿐 아니라 문서의 매크로도 실행할 수 있습니다.

  • Excel의 경우 첫 번째 매개 변수는 문자열로서, 매크로 이름, 함수 위치를 나타내는 Range 또는 등록된 DLL (XLL) 함수의 레지스터 ID를 지정합니다. 문자열을 전달하면 해당 문자열은 활성 시트의 컨텍스트에서 확인됩니다.

다음 코드 예제에서는 Excel용 문서 수준 프로젝트에서 MyMacro라는 매크로를 호출하는 방법을 보여 줍니다. 이 예제에서는 MyMacro가 Sheet1에 정의되어 있다고 가정합니다.

Globals.Sheet1.Application.Run("MyMacro")
Globals.Sheet1.Application.Run("MyMacro", missing, missing, missing,
    missing, missing, missing, missing, missing, missing, missing,
    missing, missing, missing, missing, missing, missing, missing,
    missing, missing, missing, missing, missing, missing, missing, 
    missing, missing, missing, missing, missing, missing);

참고

Visual C#에서 선택적 매개 변수 대신 전역 missing 변수를 사용하는 것에 대한 자세한 내용은 Office 솔루션에서 Visual Basic과 Visual C#의 비교를 사용한 프로그래밍을 참조하십시오.

참고 항목

작업

방법: Visual Basic 프로젝트에서 VBA로 코드 노출

방법: Visual C# 프로젝트에서 VBA로 코드 노출

연습: Visual Basic 프로젝트에서 VBA의 코드 호출

연습: Visual C# 프로젝트에서 VBA의 코드 호출

개념

VBA에서 문서 수준 사용자 지정의 코드 호출

VBA 솔루션과 Visual Studio의 Office 솔루션 비교

Office 솔루션의 어셈블리 개요

기타 리소스

Office 솔루션 디자인 및 만들기