정보: Office 응용 프로그램 자동화 때 오류 429의 문제 해결

Microsoft 365를 사용하여 어디에서나 모든 장치에서 작업 가능

Microsoft 365으로 업그레이드하여 최신 기능 및 업데이트를 통해 어디서나 작업하세요.

지금 업그레이드

요약

에서는 New 연산자나 CreateObject 함수는 Microsoft Visual Basic Microsoft Office 응용 프로그램의 인스턴스를 만들 때 다음과 같은 오류 메시지가 나타날 수 있습니다.

런타임 오류 '429': ActiveX 구성 요소는 개체를 만들 수 없습니다

요청한 자동화 개체를 COM에서 만들 수 없습니다 및 따라서 사용할 수 없는 Visual Basic이 오류가 발생 합니다. 이 오류는 일반적으로 특정 컴퓨터에 발생 합니다.

이 문서는 진단 하 고이 오류를 일으키는 것으로 알려진 일반적인 문제를 해결 하기 위한 문제 해결 팁을 제공 합니다.

자세한 내용

Visual Basic 일부 오류는 달리 오류 429에 하나의 원인은 아닙니다. 응용 프로그램 또는 시스템 구성 또는 없거나 손상 된 구성 오류로 인해 문제가 발생 합니다. 정확한 원인을 찾기 가능성을 제거의 문제입니다. 클라이언트 컴퓨터에서이 오류가 발생 하면 확인 하 고 오류를 해결 해야 할 사항이 있습니다.

나중에 항목을 Office 응용 프로그램과 작업할 때이 오류를 해결 하는 데 몇 가지 실용적인 제안 사항을 제공 합니다. Office 이외의 COM 서버도도 적용할 수 있습니다이 정보 중 일부를 하지만이 문서의 Microsoft Office 자동화 하는 것을 가정 합니다.

코드를 검사합니다.

코드에서 문제를 조사 하려면 첫 번째 장소가입니다. 이 오류를 해결할 수 있습니다 전에 알아야 할 오류가 발생 합니다. 코드 한 줄 아래로 좁히려면 보십시오.

실패 하는 코드를 찾으면 다음을 수행 하십시오.

  • 코드에서 명시적인 개체 만들기를 사용 하 고 있는지 확인 하십시오. 문제 식별 문제를 단일 작업을 축소 하는 경우에 더 쉽습니다. 예를 들어, 하지 마십시오 다음.

    Application.Documents.Add 'DON'T USE THIS!!

    또는:

    Dim oWordApp As New Word.Application 'DON'T USE THIS!!
    '... some other code
    oWordApp.Documents.Add

    두이 방법 모두 암시적인 개체 만들기를 사용합니다. Microsoft Word에는 변수를 한 번 이상 호출 될 때까지 시작 되지 않습니다. 변수가 호출 프로그램의 다른 부분에 있으므로 문제가 지역화 하려면 하드 만들 수이. 또한 Application 개체 또는 Document 개체를 만들고 문제 인지는 확실 하지 않습니다.

    대신 각 개체를 별도로 만들에 대 한 명시적 호출을 확인 합니다.

    Dim oWordApp As Word.Application
    Dim oDoc As Word.Document
    Set oWordApp = CreateObject("Word.Application")
    '... some other code
    Set oDoc = oWordApp.Documents.Add

    이 문제를 보다 쉽게 확인 하 고 코드를 더 읽기 쉽게 만듭니다.

  • Microsoft Office 응용 프로그램의 인스턴스를 만들 때 New대신 CreateObject 를 사용 합니다. CreateObject 생성 프로세스를 사용 하는 대부분의 Visual C++ 클라이언트에 더 가깝게 매핑하고 버전 간에 서버의 CLSID의 변화 가능성을 고려한. CreateObject 를 사용 하 여 초기 바인딩 및 런타임에 바인딩 개체를 모두 사용할 수 있습니다.

  • CreateObject 에 전달 된 프로그램 Id 문자열이 올바른지 그리고 독립 버전 인지 확인 하십시오 (즉, "Excel.Application.8" 대신 "Excel.Application" 사용). 문제가 있는 시스템에는 이전 또는 이후 버전의 Microsoft Office ProgID에서 지정한 버전 보다 수 있습니다.

  • IDE에서 실행할 수 없는 응용 프로그램 디버깅을 지원 하기 위해 Erl 명령을 사용 하 여 실패 하는 줄의 줄 번호를 보고 합니다. 예를 들어, 다음 코드는 알려 Word 또는 Excel 자동화 개체를 만들 수 없습니다.

    Dim oWord As Word.Application
    Dim oExcel As Excel.Application

    On Error Goto err_handler

    1: Set oWord = CreateObject("Word.Application")
    2: Set oExcel = CreateObject("Excel.Application")

    ' ... some other code

    err_handler:
    MsgBox "The code failed at line " & Erl, vbCritical

    오류를 추적 하려면 메시지 상자와 줄 번호의 조합을 사용 합니다.

  • 후기 바인딩 (즉,: Dim oWordApp As Object)를 사용 하십시오. 초기 바인딩된 개체는 프로세스 경계를 넘어 마샬링될 자신의 사용자 지정 인터페이스를 요구 합니다. 사용자 지정 인터페이스를 CreateObject , 새동안 마샬링을 문제가 있는 경우 오류를 429 받습니다. 후기 바운드 개체 시스템 정의 인터페이스를 (IDispatch) 마샬링될 수 있도록 사용자 지정 프록시를 필요로 하지 않는 사용 합니다. 따라서 차이 보려면 런타임에 바인딩된 개체를 사용해 보십시오.

    개체가 초기 바인딩되는 경우에 문제가 발생 하면 문제가 서버 응용 프로그램을 사용 하 여 이며 (뒷부분 참조)에 응용 프로그램을 설치 하 여 일반적으로 수정할 수 있습니다.

  • ASP에서 MTS 구성 요소를 자동화 하는 경우 Server.CreateObject()대신 CreateObject 를 사용 합니다. 태그를 사용 을 사용 하 여 Microsoft Office 사용 하 여 문제를 일으키는 것으로 알려진 MTS 패키지의 id에서 Office 응용 프로그램 인스턴스화.

자동화 서버 검사

CreateObject , 새 오류의 가장 일반적인 원인은 서버 응용 프로그램 자체에 문제가 있습니다. 일반적으로 이러한 문제는 구성 또는 응용 프로그램의 설치는. 확인 해야 할 몇 가지 사항은 다음과 같습니다.

  • 응용 프로그램을 자동화 하려면 로컬 컴퓨터에 설치 된 Microsoft Office 확인 하 고 처음부터 응용 프로그램을 시작할 수 및 다음 대화 상자를 실행 해야 합니다. 프로그램을 수동으로 시작할 수 없습니다, 자동화를 통해 작동 하지 않습니다.

  • 시작 서버에 대 한 경로 입력 하 여 응용 프로그램을 다시 등록 하 고 실행 대화 상자 다음 줄의 끝에 /RegServer 를 추가 합니다. 확인을 누르십시오. 자동으로 응용 프로그램을 실행 하 고 COM 서버로 다시 등록 해야이. 누락 된 레지스트리 키를 사용 하 여 문제가 있으면이 일반적으로 수정 합니다.

  • 자동화 하려는 응용 프로그램에 대 한 CLSID 아래 LocalServer32 키를 확인 합니다. 응용 프로그램에 대 한 올바른 위치를 가리키는지 확인 하 고 경로 이름이 짧은 경로 (DOS 8.3) 형식으로 되어 있는지 확인 합니다. 서버는 필요 하지 않은 반면 짧은 경로 이름을 사용 하 여 등록 된, 공백이 포함 된 긴 경로 이름을 알고 (나중에 참조) 일부 시스템에서 문제를 발생 합니다.

    서버에 저장 된 경로 키를 검사 하려면 시작 regedit 을 입력 하 여 Windows 레지스트리 편집기를 시작 하 고 대화 상자를 실행 합니다. 찾습니다 키로 이동 합니다. 이 키 아래에 시스템에 등록 된 자동화 서버에 대 한 Clsid를 찾을 수 있습니다. 나중에 값을 사용 하 여, 자동화 하 고 LocalServer32 키 경로 대 한 확인은 Office 응용 프로그램을 나타내는 키를 찾습니다.


    +========================+=========================================+
    | Office Server | CLSID Key |
    +========================+=========================================+
    | Access.Application | {73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9} |
    +------------------------+-----------------------------------------+
    | Excel.Application | {00024500-0000-0000-C000-000000000046} |
    +------------------------+-----------------------------------------+
    | FrontPage.Application | {04DF1015-7007-11D1-83BC-006097ABE675} |
    +------------------------+-----------------------------------------+
    | Outlook.Application | {0006F03A-0000-0000-C000-000000000046} |
    +------------------------+-----------------------------------------+
    | PowerPoint.Application | {91493441-5A91-11CF-8700-00AA0060263B} |
    +------------------------+-----------------------------------------+
    | Word.Application | {000209FF-0000-0000-C000-000000000046} |
    +------------------------+-----------------------------------------+
    경로 파일의 실제 위치와 일치 합니까? 짧은 경로 이름을 제공할 수 있습니다 되지 않을 수 있습니다 때 경로가 정확한 지 느낌에 두어야 합니다. 예를 들어, Microsoft Office Microsoft Internet Explorer (설치 된 경우 해당 기본 위치에)가 유사한 "C:\PROGRA~1\MICROS~X\" 짧은 경로 여기서 X는 숫자. 짧은 경로 이름에서 보면 확실 한 즉시 아닙니다.

    경로가 올바른 실제로 레지스트리에서 값을 복사 하 고 붙여넣어 시작 시작 하 고 다음 실행 대화 상자 (응용 프로그램을 실행 하기 전에 /Automation 스위치를 제거) 하 여 테스트할 수 있습니다. 확인을 선택 하면 응용 프로그램 시작은? 그렇다면 다음 서버를 제대로 등록. 그렇지 않은 경우 올바른 경로 (사용 가능한 경우 짧은 경로 이름)을 사용 하 여 LocalServer32 키 값을 바꿔야 합니다.

  • 문제는 Normal.dot 서식 파일 (Word) 또는 (Excel) Excel.xlb 리소스 파일이 손상 된 경우 Word 또는 Excel을 자동화할 때 발생할 알려져 있습니다. 손상이 발생 한 경우를 테스트 하려면 Normal.dot 또는 *.xlb의 모든 인스턴스를 찾으려면 로컬 하드 드라이브를 검색 합니다. (하십시오 note를 실행 하는 Windows 2000, Windows NT 또는 Windows 95/98 사용 프로필을 사용 하 여 시스템의 각 사용자 프로필에 대 한 이러한 파일의 복사본을 여러 개 찾을 수 있습니다.) 일시적으로 Normal.dot 파일 또는 *.xlb 파일의 이름을 바꾸고 자동화 테스트를 다시 실행 (Word 및 Excel이 파일을 만듭니다 이러한 찾을 수 없는 경우). 코드는 이제 제대로 작동 합니까? 그렇다면 다음 이름을 바꾼 파일 삭제할 손상 되기 때문입니다. 그렇지 않으면 바꾸어야 하 원래 이름으로 다시이 파일에 저장 된 모든 사용자 지정 설정이 손실 되지 않습니다 때문입니다.

  • Windows NT, Windows 2000, Windows XP 또는 Windows Server 2003 시스템에 관리자 계정에서 응용 프로그램을 실행 합니다. Office 서버 레지스트리 및 디스크 드라이브에 읽기/쓰기 권한이 필요 하 고 현재 보안 설정에는이 사용 권한을 거부 하는 경우 올바르게 로드 하지 않을 수 있습니다.

시스템 검사

시스템 구성에서 독립 프로세스 COM 서버를 만드는 문제가 발생할 수 있습니다. 다음은 시스템에서 확인 해야 할 일부의 오류가 발생입니다.

  • 독립 프로세스 서버와 문제가 발생할가? 특정 COM 서버 (예: Word)를 사용 하 여 응용 프로그램을 사용 하는 경우 다른 독립 프로세스 서버 COM 계층 자체가 문제가 아닌지 확인 하십시오 테스트 하는 것이 좋습니다. 시스템에 없는 독립 프로세스 COM 서버를 만들 수 있습니다, 파일을 (아래 참조) OLE 시스템에 다시 설치 하거나 운영 체제를 다시 설치가 문제를 해결 하려면 필요 합니다.

  • 자동화를 관리 하는 OLE 시스템 파일의 버전 번호를 확인 합니다. 이러한 파일은 일반적으로 하나의 집합으로 설치와 빌드 번호와 일치 해야 합니다. 잘못 구성 된 설치 유틸리티는 잘못 설치할 수 있습니다 파일 따로으로 일치 하지 않게 됩니다. 자동화를 사용 하 여 문제를 방지 하려면 파일 빌드가 일치 하는지 확인 하는 파일을 확인 해야 합니다.

    Windows\System 또는 Winnt\System32 디렉터리에 자동화 파일을 찾을 수 있습니다. 다음은 파일의 목록입니다.


    +---------------+-------------+----------------+
    | File Name | Version | Date Modified |
    +---------------+-------------+----------------+
    | Asycfilt.dll | 2.40.4275 | March 08, 1999 |
    | Oleaut32.dll | 2.40.4275 | March 08, 1999 |
    | Olepro32.dll | 5.0.4275 | March 08, 1999 |
    | Stdole2.tlb | 2.40.4275 | March 08, 1999 |
    +---------------+-------------+----------------+
    파일 탐색기 팝업 메뉴에서 선택 속성에서 마우스 오른쪽 단추로 클릭 하 여 파일 버전을 확인 합니다. 마지막으로 수정한 날짜 및 파일 버전 (빌드 번호)의 마지막 네 자리는 가장 중요 한 값 원하는 있는지 이러한 값이 모든 자동화 파일을 동일 합니다.

    버전 번호 및 날짜 위의 지 예 전용 note 하십시오. 값이 달라질 수 있습니다. 중요 한 점은 서로 보다는이 표이 값이 일치 합니다.

    파일이 빌드 번호나 수정한 날짜 일치 하지 않으면 자동화 파일을 업데이트 하는 자동 압축 풀기 유틸리티를 다운로드할 수 있습니다. 자세한 내용은 클릭 Microsoft 기술 자료의 다음 문서 번호:

    290887 VBRun60sp6.exe는 Visual Basic 6.0 SP6 런타임 파일을 설치

  • Windows NT 4.0에 이름에 공백이 포함 되어 있거나 그 처음 8 개 문자가 동일한 지 다른 폴더와 비슷한 폴더에 실행 중인 자동화 서버 시작 알려진된 문제가 있습니다. 예를 들어, C:\Program Files\SomeFolder에서 서버 C:\Program Stuff\SomeFolder 라는 시스템에 또 다른 폴더인 경우 CreateObject 호출 하는 동안 시작 하려면 실패할 수 있습니다. 자세한 내용은 기술 자료의 다음 문서를 참조 하십시오:이 문제 및 해결 단계에 대 한 자세한 내용은, Microsoft 기술 자료의 다음 문서를 참조 하려면 아래 문서 번호를 클릭 합니다.:

    185126 버그: COM/OLE 서버가 Windows NT 4.0에서 시작 되지

Microsoft Office 다시 설치합니다.

문제를 해결 하면 앞에서 설명한 단계 중 하는 경우에 제거 하 고 Microsoft Office 다시 설치 하십시오. 기존 버전을 먼저 제거 하 고 원본 설치 디스크에서 다시 것이 좋습니다.

제거할 항목의 전체 목록은, 기술 자료의 다음 문서를 참조 하십시오.

219423 OFF2000: Microsoft Office 2000을 완전히 제거 하는 방법

158658 OFF97: Microsoft Office 97 완전히 제거 하는 방법

참조

'429' 오류 메시지 문제를 해결 하는 방법에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조 하려면 아래 문서 번호를 클릭 합니다.

240377 방법: Jet 3.5이 올바르게 설치 되었는지 확인 (1 단계)
최신 정보와 Microsoft Office 자동화에 대 한 샘플 코드에는 Microsoft 온라인 지원 사이트를 참조 하십시오.

http://support.microsoft.com/ofd

추가 도움이 필요하신가요?

기술 향상
교육 살펴보기
새로운 기능 우선 가져오기
Microsoft Insider 참가

이 정보가 유용한가요?

소중한 의견에 감사드립니다.

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×