Excel에서 CreateObject 명령을 사용할 때 추가 기능이 로드되지 않음

현상

CreateObject 명령을 사용하여 Microsoft Excel을 OLE 자동화 개체로 액세스하면 추가 기능, XLStart 디렉터리에 있는 파일 및 기본 새 통합 문서가 로드되지 않습니다.

원인

추가 기능 및 파일을 로드하려고 하면 Excel에서는 Visual Basic처럼 요청에 응답하고 나중에 다시 시도할 준비가 되어 있지 않은 호출 응용 프로그램으로 메시지를 보냅니다. 호출 응용 프로그램은 이 요청을 처리할 수 없으며 나머지 명령을 계속 실행합니다.

해결 과정

Microsoft는 모든 보증(상품, 특정 목적의 적합성에 대한 묵시적인 보증을 포함하며 이에 제한되지 않음)을 배제하며 예를 보여 주기 위한 목적으로만 이 프로그래밍 예제를 제공합니다. 이 문서의 내용은 프로시저를 작성하고 디버깅하는 데 사용되는 도구 및 여기에서 설명하는 프로그래밍 언어에 익숙한 사용자를 대상으로 합니다. Microsoft 지원 담당자는 사용자에게 도움이 되도록 특정 프로시저에 대한 기능을 설명할 수 있지만 사용자의 특정 요구 사항에 맞도록 예제를 수정하여 추가 기능을 제공하거나 프로시저를 구성하지는 않습니다.

Excel을 OLE 자동화 개체로 실행할 때 추가 기능 파일을 로드하려면 추가 기능을 수동으로 로드하십시오. 이 방법의 예는 다음과 같습니다.

Microsoft Office Excel 2007

Sub LoadAddin()

' 변수 xl을 개체 유형으로 차원 설정
Dim X As Object

' Microsoft Excel을 활성화하고 변수 xl에 할당
Set XL = CreateObject("Excel.Application")

' 원하는 추가 기능 파일 열기(이 예에서는 XLQUERY.XLAM)
XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLAM")

' 리소스(XLL)에 들어 있는 함수 및 명령을 등록해야 할 경우
' RegisterXLL 메서드 사용
' 아래 에에서 Analys32.xll의 모든 함수가
' 등록됨
' XL.RegisterXLL "Analys32.xll"

' 추가 기능 파일에 포함된 자동 매크로 실행
' Open 메서드를 사용하여 파일을 열 경우
' 자동 매크로는 실행되지 않음
XL.Workbooks("xlquery.xlam").RunAutoMacros 1

Set XL = Nothing
End Sub

Microsoft Office Excel 2003 및 이전 버전의 Excel

Sub LoadAddin()

' 변수 xl을 개체 유형으로 차원 설정
Dim X As Object

' Microsoft Excel을 활성화하고 변수 xl에 할당
Set XL = CreateObject("Excel.Application")

' 원하는 추가 기능 파일 열기(이 예에서는 XLQUERY.XLA)
XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLA")

' 리소스(XLL)에 들어 있는 함수 및 명령을 등록해야 할 경우
' RegisterXLL 메서드 사용
' 아래 에에서 Analys32.xll의 모든 함수가
' 등록됨
' XL.RegisterXLL "Analys32.xll"

' 추가 기능 파일에 포함된 자동 매크로 실행
' Open 메서드를 사용하여 파일을 열 경우
' 자동 매크로는 실행되지 않음
XL.Workbooks("xlquery.xla").RunAutoMacros 1

Set XL = Nothing
End Sub

추가 정보

Excel에서는 OLE 자동화 개체로 호출될 경우 XLStart 디렉터리의 추가 기능이나 파일을 로드하지 않으므로 사용자가 로드 프로세스를 완전히 제어할 수 있습니다. 추가 기능을 로드하려면 수동으로 로드할 수 있습니다.

이 동작은 CreateObject 명령에 의해 호출될 때 어떤 매크로 오류, 잠긴 파일 경고 또는 읽기 전용 파일 경고도 Excel의 로드 작업을 방해할 수 없음을 의미합니다. 이 동작의 또 다른 이점은 추가 기능이나 파일이 로드될 때보다 Excel을 로드할 때 시간이 더 적게 걸린다는 것입니다.

참조

Visual Basic for Applications에 대해 도움을 받는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.

226118 Visual Basic for Applications 프로그래밍을 배우기 위해 사용할 수 있는 리소스 목록
속성

문서 ID: 213489 - 마지막 검토: 2011. 9. 18. - 수정: 1

피드백