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

기술 자료 번역 기술 자료 번역
기술 자료: 244264 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

연산자 또는 CreateObject 함수를 Microsoft VBA 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
    						
    두 이 방법 모두 암시적인 개체 만들기를 사용합니다. 변수가 한 번 이상 호출될 때까지 이면 시작되지 않았습니다. 이 변수를 사용하여 프로그램의 다른 부분이 호출될 수 있으므로 문제가 하드 지역화하려면 할 수 있습니다. 또한 응용 프로그램 개체 또는 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 응용 프로그램의 인스턴스를 만들 때 CreateObject을새로 대신 사용하십시오. 더 자세히 대부분의 Visual C++ 클라이언트에서 사용하는 생성 프로세스가 CreateObject 매핑되고 서버의 CLSID 버전 간에 가능한 변경 내용을 사용할 수 있습니다. CreateObject 초기 바인딩 및 런타임에 바인딩 개체는 사용할 수 있습니다.
  • ProgID CreateObject 위해 전달된 문자열이 올바른지 확인하고 버전 독립 있습니다 (즉, "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 개체로) 사용해 보십시오. 초기 바인딩된 개체를 프로세스 경계를 넘어 마샬링될 자신의 사용자 지정 인터페이스가 필요합니다. 사용자 지정 인터페이스를 CreateObject, 동안 마샬링을 문제가 있는 경우 오류 429가 받게 됩니다. 후기 바운드 개체 사용자 지정 프록시 마샬링될 수 필요가 있는 시스템 정의 인터페이스를 (IDispatch)를 사용합니다. 이 있는 차이가 있는지 확인하기 위해 런타임에 바인딩된 개체를 사용해 보십시오.

    개체의 초기 바인딩 때 문제가 발생하면 문제가 서버 응용 프로그램이 있으며 일반적으로 (나중에 참조) 응용 프로그램을 다시 설치하여 해결할 수 있습니다.
  • ASP 또는 MTS 구성 요소를 자동화하는 경우에는 CreateObject을Server.CreateObject() 대신 사용하십시오. Server.CreateObject 사용하여 Microsoft Office와 함께 문제를 일으키는 것으로 알려진 MTS 패키지가 ID로 Office 응용 프로그램을 인스턴스화합니다.

자동화 서버 검사

가장 일반적인 원인은 오류가 CreateObject, 서버 응용 프로그램 자체에 문제가 있습니다. 일반적으로 이러한 문제는 구성 또는 응용 프로그램의 설치 프로그램이 있습니다. 일부 항목을 확인하려면 다음과 같습니다.
  • Automate 데 사용할 응용 프로그램을 로컬 컴퓨터에 설치된 Office 확인하고 시작 응용 프로그램을 시작할 및 대화 상자 실행 수 있는지 확인하십시오. 프로그램을 수동으로 시작할 수 없는 경우 자동화를 통해 작동하지 않습니다.
  • 시작 서버 경로를 입력하여 응용 프로그램을 다시 등록해야 및 다음 대화 상자에서 실행 및 다음 추가 /RegServer 줄 끝에. 확인 을 누르십시오. 이 합니다 자동으로 응용 프로그램을 실행하고 COM 서버로 다시 등록합니다. 누락된 레지스트리 키를 사용하여 문제가 있으면 이 일반적으로 이를 수정합니다.
  • LocalServer32 키를 CLSID 아래에 수 Automate 원하는 응용 프로그램에 대한 확인하십시오. 응용 프로그램에 대한 올바른 위치를 가리키는지 확인한 다음 경로 이름이 짧은 경로 (DOS 8.3) 형식으로 되어 있는지 확인하십시오. 서버 수 요구 사항은 아니지만 짧은 경로 이름을 사용하여 등록된, 공백이 포함된 긴 경로 이름을 (나중에 참조) 일부 시스템에서 문제를 일으키는 것으로 알려져 있습니다.

    서버에 저장된 경로 키를 검사하려면 시작 regedit 을 입력하여 Windows 레지스트리 편집기를 시작하고 대화 상자 실행. HKEY_CLASSES_ROOT\Clsid 키를 탐색하십시오. 이 키 아래에 시스템에 등록된 자동화 서버의 CLSID가 찾습니다. 나중에 값을 사용하여 해당 LocalServer32 키 경로를 확인하고 수 Automate 원하는 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}  |
       +------------------------+-----------------------------------------+
    						
    경로는 파일의 실제 위치와 일치하지? 알고 짧은 경로 이름을 사용하면 않은 경우일 때 경로가 올바른지 인상을 줄 수 있습니다. 예를 들어, Office 및 Microsoft Internet Explorer에서 해당 기본 위치에 설치된 경우 짧은 경로 "C:\PROGRA~1\MICROS~X\" 로 비슷한 여기서 X 일부 번호입니다 갖게 됩니다. 짧은 경로 이름을 보고 있는 것이 확실한 즉시 아닙니다.

    경로를 레지스트리에서 값을 복사하여 시작 붙여넣기 실제로 올바른지 및 다음 대화 상자 실행 테스트할 수 있습니다 (제거할 경우 /자동화 응용 프로그램을 실행하기 전에 전환). 확인 을 선택하면 응용 프로그램이 시작되지? 다음 예 를 선택하면 서버가 제대로 등록됩니다. 그렇지 않으면 LocalServer32 키 값은 올바른 경로 (사용 가능한 경우 짧은 경로 이름) 바꿔야 합니다.
  • 문제는 Normal.dot 서식 파일 (Word) 또는 Excel.xlb 리소스 파일 (Excel) 손상되었습니다 경우 Word 또는 Excel을 자동화할 때 발생하는 것으로 알려져 있습니다. 손상이 발생한 경우 테스트하려면 Normal.dot 또는 *.xlb 모든 인스턴스를 찾으려면 로컬 하드 드라이브를 검색하십시오. (프로필을 사용하여 Windows 2000, Windows NT 또는 Windows 95/98을 실행 중인 경우 이러한 파일 시스템에 있는 각 사용자 프로필에 대해 하나씩 여러 복사본을 찾을 수 유의하십시오. 일시적으로 Normal.dot 파일이 또는 *.xlb 파일 이름 바꾸기 및 자동화 테스트를 다시 실행하여 (찾을 수 없는 경우 Word 및 Excel 이러한 파일을 만드는 것입니다). 이제 코드를 사용할 수 있습니까? 손상된 때문에 예 를 선택하면 다음 이름을 바꾼 파일은 삭제해야 합니다. 그렇지 않은 경우 이러한 파일에 저장된 사용자 지정 설정이 손실될 수 없는 이를 다시 원래 이름으로 바꿀 합니다.
  • Windows NT, Windows 2000, Windows XP 또는 Windows Server 2003 시스템 경우 관리자 계정으로 응용 프로그램을 실행하십시오. Office 레지스트리 및 디스크 드라이브가 읽기/쓰기 액세스가 필요한 서버와 현재 보안 설정으로는 이 권한을 거부할 경우 제대로 로드되지 않을 수 있습니다.

시스템 검사

또한 시스템 구성을 out-of-process COM 서버 생성 문제를 일으킬 수 있습니다. 다음은 오류가 발생한 시스템에서 확인하려면 몇 가지 사항입니다.
  • 문제가 모든 out-of-process 서버를 일이 있지? 방금 특정 COM 서버 (예: Word)을 사용하는 응용 프로그램이 있는 경우 다른 out-of-process 서버를 COM 계층과 자체에 문제가 있는지 테스트하려면 원할 것입니다. 시스템에서 out-of-process 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 |
       +---------------+-------------+----------------+
    						
    탐색기에서 파일을 마우스 오른쪽 단추로 클릭하고 속성 팝업 메뉴에서 선택하여 파일 버전을 확인하십시오. 마지막 네 자리만 파일 버전 빌드 번호 및 마지막으로 수정한 날짜 값은 가장 중요한 사항입니다. 원하는 있는지 이러한 값이 모든 자동화 파일을 동일합니다.

    버전 번호 및 날짜 위의 예를 용도로만 사용됩니다 유의하십시오. 해당 값이 다를 수 있습니다. 중요한 점은 이러한 값이 서로 대신 이 테이블에 일치하는 것입니다.

    파일이 빌드 번호나 수정한 날짜와 일치하지 않으면 자동화 파일을 업데이트하는 자동 압축 풀기 유틸리티를 다운로드할 수 있습니다. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    290887VBRun60sp6.exe는 Visual Basic 6.0 SP6 런타임 파일을 설치합니다.
  • Windows NT 4.0 및 그 처음 8개 문자가 동일한 다른 폴더에 유사한 이름 에 포함된 공백이 포함되어 있는 폴더에 있는 라이브 자동화 서버 시작 알려진된 문제가 있습니다. 예를 들어, C:\Program Files\SomeFolder 사는 서버 CreateObject 호출하는 동안 C:\Program Stuff\SomeFolder 라는 시스템에 다른 폴더에 있으면 시작하지 못할 수 있습니다. 자세한 내용은 다음 기술 자료 문서를 참조하십시오.이 문제 및 해결 단계에 대한 자세한 내용은, 아래 문서 번호를 눌러 Microsoft 기술 자료에 있는 문서를 클릭합니다.
    185126BUG: COM/OLE 서버를 Windows NT 4.0 시작할 수 없다

Microsoft Office 다시 설치

이 문제를 해결하려면 앞 단계 중 어떤 것도 도움이 됩니다 경우 제거했다가 다시 설치하여 Microsoft Office 고려하십시오. 사용자가 먼저 기존 버전을 제거한 다음 원본 설치 디스크에서 다시 것이 좋습니다.

제거될 항목의 전체 목록은 다음 기술 자료 문서를 참조하십시오.
219423OFF2000: Office 2000을 완전히 제거하는 방법
158658OFF97: Microsoft Office 97 완전히 제거하는 방법

참조

'429' 오류 메시지 문제 해결에 대한 추가 정보는 아래 문서 번호를 눌러 Microsoft 기술 자료에 있는 문서를 클릭하십시오.
240377HOWTO: Jet 3.5이 올바르게 설치되었는지 헬기의 (I 부)
최신 정보와 관련하여 Microsoft Office 자동화 샘플 코드가 다음 Microsoft 온라인 지원 사이트를 참조하십시오.
http://support.microsoft.com/ofd

속성

기술 자료: 244264 - 마지막 검토: 2007년 5월 11일 금요일 - 수정: 6.2
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Access 97 Standard Edition
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Office FrontPage 2003
  • Microsoft FrontPage 2002 Standard Edition
  • Microsoft FrontPage 2000 Standard Edition
  • Microsoft Office Outlook 2007
  • Microsoft Office Outlook 2003
  • Microsoft Outlook 2002 Standard Edition
  • Microsoft Outlook 2000
  • Microsoft Outlook 97 Standard Edition
  • Microsoft Outlook 98 Standard Edition
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Word 97 Standard Edition
키워드:?
kbmt kbautomation kbfaq kbinfo KB244264 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

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