概要

使用する場合、 New演算子またはCreateObject関数では、Microsoft Visual Basic、Microsoft Office アプリケーションのインスタンスを作成するのには、次のエラー メッセージが表示される場合があります。

実行時エラー '429': ActiveX コンポーネントはオブジェクトを作成できません

このエラーは、コンポーネント オブジェクト モデル (COM) は、要求されたオートメーションオブジェクトを作成できませんし、オートメーションオブジェクトは、そのため、Visual Basic を使用できる場合に発生します。 このエラーは、すべてのコンピューターでは発生しません。 この資料では、診断し、このエラーが発生する可能性がある一般的な問題を解決する方法について説明します。

詳細情報

Visual Basic でエラー 429 が発生の原因はいくつかあります。 エラーは、次の条件のいずれかが true の場合に発生します。

  • アプリケーションに誤りがあります。

  • システム構成に誤りがあります。

  • 不足しているコンポーネントがあります。

  • 破損したコンポーネントがあります。

エラーの原因を検索するには、問題を特定します。 クライアント コンピューターで「429」エラー メッセージが表示された場合を特定し、Microsoft Office アプリケーションでエラーを解決するには次の情報を使用します。 注: これらの確認手順は、Windows クライアントにのみ適用されます。 次の情報のいくつかの Office 以外の COM サーバーにも適用されます。 ただし、この資料では、Office アプリケーションを自動化すること前提としています。

コードを調べる

エラーのトラブルシューティングを行う前にしようと、問題の原因と考えられるコードの行を特定します。 1 行のコードに対して、問題を発生する可能性がある場合は、これらの手順を行います。

  • コードが明示的なオブジェクトの作成を使用することを確認します。 問題は、1 つの操作に絞り、場合を識別しやすい。 たとえば、次のいずれかとして使用されている暗黙的なオブジェクト作成を探します。 コード サンプル 1

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

    コード サンプル 2

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

    両方のこれらのコード サンプルは、暗黙の型のオブジェクトの作成を使用します。 Microsoft Office Word 2003 では、変数が 1 回以上呼び出されるまでは起動しません。 変数は、プログラムのさまざまな部分で呼び出される可能性があります、ため、問題が見つけにくい場合があります。 アプリケーションオブジェクトが作成されるとき、またはドキュメントオブジェクトを作成するときに問題が発生することを確認することは困難がある可能性があります。 代わりに、個別に、次のように、各オブジェクトを作成するのには明示的な呼び出しを行うことができます。

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

    各オブジェクトを個別に作成するのには明示的な呼び出しを行うと、問題は、分離を簡単に。 これは、可能性がありますもコード読みやすくするためです。

  • Office アプリケーションのインスタンスを作成するときは、 New演算子の代わりに、 CreateObject関数を使用します。 CreateObject関数は、ほとんどの Microsoft Visual C++ クライアントを使用している作成プロセスを密接にマップします。 CreateObject関数のバージョン間でサーバーの CLSID に変更ができます。 CreateObjectを使用することができます事前バインディング オブジェクトと遅延バインディング オブジェクトの関数です。

  • 確認するに渡される"ProgID"文字列 CreateObjectが正しいと、"ProgID"文字列の独立したバージョンであることを確認します。 たとえば、"Excel.Application.8"の文字列を使用する代わりに「始めます」文字列を使用します。 Microsoft Office の以前のバージョンまたは"ProgID"文字列で指定したバージョンより新しいバージョンの Microsoft Office システム障害が発生したことがあります。

  • Erlコマンドを使用して、失敗しているコードの行の行番号を報告します。 IDE で実行できないアプリケーションをデバッグできます。 次のコードを示します (Microsoft Word や Microsoft Office Excel 2003) は、オートメーションオブジェクトを作成することはできません。

    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

    MsgBox関数と行番号を使用すると、エラーを追跡できます。

  • 次のように遅延バインディングを使用します。

    Dim oWordApp As Object

    事前バインディングされたオブジェクトでは、カスタム インターフェイスをプロセス境界を越えてマーシャ リングする必要があります。 CreateObjectまたは新規の中には、カスタム インターフェイスをマーシャ リングすることはできません、する場合は、「429」エラー メッセージが表示されます。 遅延バインディングされたオブジェクトは、IDispatch のシステム定義のインターフェイスをマーシャ リングするカスタム プロキシを必要としないを使用します。 遅延バインディング オブジェクトを使用すると、この手順が正常に動作することを確認します。 オブジェクトが事前バインディングの場合にのみ問題が発生した場合は、サーバー アプリケーションに問題があります。 通常、問題を解決するには、この資料の「のオートメーション サーバーの確認」セクションで説明するようにアプリケーションを再インストールできます。

オートメーション サーバーをチェックします。

CreateObjectまたはNewを使用する場合に発生するエラーの最も一般的な理由は、サーバー アプリケーションに影響する問題です。 通常、アプリケーションの構成またはアプリケーションのセットアップ問題が発生します。 トラブルシューティングについては、次のメソッドを使用します。

  • ローカル コンピューターに Office アプリケーションを自動化するがインストールされていることを確認します。 アプリケーションを実行することを確認します。 これを行うには、[スタート] ボタンをクリックしてください 実行、およびアプリケーションを実行する実行してください。 アプリケーションを手動で実行することはできません、オートメーションを通じてアプリケーションは動作しません。

  • 次のようにアプリケーションを再登録します。

    1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。

    2. 実行] ダイアログ ボックスで、サーバーのパスを入力し、行の末尾に/RegServerを追加します。

    3. [OK] をクリックします。 アプリケーションをサイレント モードで実行します。 アプリケーションは、COM サーバーとして再登録します。

    レジストリ キーが見つからないために、問題が発生する場合、次の手順は通常問題を解決します。

  • LocalServer32 キーを CLSID の下にあるアプリケーションを自動化するを確認します。 LocalServer32 キーは、アプリケーションの正しい場所を指していることを確認します。 (DOS の 8.3 形式の短いパスの形式でパス名であることを確認します。 短いパス名を使用してサーバーを登録する必要はありません。 ただし、埋め込みスペースを含む長いパス名いくつかのシステムに問題が発生可能性があります。 サーバーに格納されているパス キーを確認するには、次のように、Windows レジストリ エディターを起動します。

    1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。

    2. 「Regedit」と入力し、 OKをクリックしますします。

    3. 見つけてクリック キーに移動します。 このキーがシステムに登録されているオートメーション サーバーの clsid が存在します。

    4. 自動化する Office アプリケーションを表すキーを検索するのにには、CLSID キーの次の値を使用します。 LocalServer32 キーのパスに対応するキーを確認します。

      Office サーバー

      CLSID キー

      Access.Application

      {73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}

      Excel.Application

      {00024500-0000-0000-C000-000000000046}

      Outlook.Application

      {0006F03A-0000-0000-C000-000000000046}

      PowerPoint.Application

      {91493441-5A91-11CF-8700-00AA0060263B}

      Word.Application

      {000209FF-0000-0000-C000-000000000046}

    5. ファイルの実際の位置と一致するかどうかを確認するパスを確認します。

    注: これらの確認手順は、Windows クライアントにのみ適用されます。 正しくない場合、短いパス名は正しいかもしれません。 たとえば、Office と (既定の場所にインストールされている) 場合に、Microsoft Internet Explorer の両方にある C:\PROGRA~1\MICROS~ のXのような短いパス \ (場所 Xは数字) です。 この名前は可能性があります最初に短いパス名を指定するのには表示されません。 パスが正しいかどうかを決定するには、以下の手順を実行します。

    1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。

    2. レジストリから値をコピーし、[実行] ダイアログ ボックスに値を貼り付けます。 注: これらの確認手順は、Windows クライアントにのみ適用されます。 /Automationスイッチを削除するアプリケーションを実行する前にします。

    3. [OK] をクリックします。

    4. アプリケーションを正しく実行することを確認します。 アプリケーションが実行されるは、 [ok]をクリックした後、サーバーは正しく登録されます。 [Ok]をクリックした後に、アプリケーションが実行されない場合は、LocalServer32 キーの値を正しいパスに置き換えます。 可能な場合は、短いパス名を使用します。

  • Normal.dot テンプレートの場合、またはユーザー プロファイルのリソース ファイルの破損している可能性をテストします。 Word の Normal.dot テンプレートまたは Excel でユーザー プロファイルのリソース ファイルのいずれかが破損している場合、Microsoft Word や Microsoft Excel を自動化するときに、問題が発生する可能性があります。 これらのファイルをテストするには、normal.dot またはユーザー プロファイルのすべてのインスタンスには、ローカルのハード ディスクを検索します。 注: これらの確認手順は、Windows クライアントにのみ適用されます。 これらのファイルの複数のコピーがあります。 各システムにインストールされているユーザー プロファイルごとにこれらのファイルのコピーは 1 つがあります。 一時的に Normal.dot ファイルまたはユーザー プロファイルのファイルの名前を変更し、オートメーション テストを再実行します。 Word および Excel に見つからない場合はこれらのファイルが作成します。 コードが動作することを確認します。 新しい Normal.dot ファイルが作成されると、コードが動作する場合は、名前を変更したファイルを削除します。 これらのファイルが壊れています。 コードが動作しない場合は、これらのファイルに保存されているすべてのカスタム設定を保存するのには元のファイル名にこれらのファイルを戻す必要があります。

  • 管理者アカウントでアプリケーションを実行します。 Office サーバーには、レジストリおよびディスク ドライブの読み取り/書き込みアクセスが必要です。 現在のセキュリティ設定は、読み取り/書き込みアクセスを拒否する場合、Office のサーバーが正しく読み込まれない場合があります。

システムをチェックします。

システムの構成もアウト プロセス COM サーバーの作成に問題が生じる。 トラブルシューティングについては、エラーが発生するシステムで次のメソッドを使用します。

  • 任意のアウト プロセス サーバーで問題が発生するかどうかを決定します。 (Word) などの特定の COM サーバーを使用するアプリケーションがある場合は、問題が COM 層自体で発生しているではないことを確認する別のアウト プロセス サーバーをテストします。 コンピューター上で、アウト プロセス COM サーバーを作成することはできません、か、この資料の「Microsoft Office を再インストールする」セクションの説明に従って、OLE システム ファイルを再インストール問題を解決するのにはオペレーティング システムを再インストールします。

  • オートメーションを管理する OLE システム ファイルのバージョン番号を確認します。 これらのファイルは、通常セットとしてインストールされます。 これらのファイルは、ビルド番号と一致する必要があります。 正しく構成されていないセットアップ ユーティリティは、ファイルを個別にインストールすることができます誤って。 これにより、一致するファイルです。 オートメーションの問題を回避するには、ファイルのビルドが一致するかどうかを確認するファイルを確認します。 オートメーション ファイルは、windows \system32 ディレクトリにあります。 次のファイルを確認します。

    ファイル名

    バージョン

    変更日

    Asycfilt.dll

    10.0.16299.15

    2017 年 9 月 29日

    Ole32.dll

    10.0.16299.371

    2018 年 3 月 29日

    Oleaut32.dll

    10.0.16299.431

    、2018 年 5 月月 3 日

    Olepro32.dll

    10.0.16299.15

    2017 年 9 月 29日

    Stdole2.tlb

    3.0.5014

    2017 年 9 月 29日

    ファイルのバージョンを調べるには、エクスプ ローラーでファイルを右クリックしてプロパティ] をクリックします。 ファイルのバージョン (ビルド番号) と、ファイルの最終変更日の最後の 4 桁に注意してください。 これらの値は、すべてのオートメーション ファイルで同じことを確認します。 注: これらの確認手順は、Windows クライアントにのみ適用されます。 以下のファイルは Windows の 10 バージョン 1709、ビルド 16299.431 のです。 これらの数値および日付は、例だけです。 値が異なる場合があります。

  • Office アプリケーションでコードの実行を妨げる可能性のあるサードパーティ製のアプリケーションのサービスおよびシステムの起動を確認するのには、システム構成ユーティリティ (Msconfig.exe) を使用します。 Msconfig.exe の詳細については、次のマイクロソフト サポート技術情報資料を参照してください。

    181966 システム設定ユーティリティのアドバンス トラブルシューティングの設定 たとえば、「スクリプト ブロッカー」機能を備えたウイルス対策プログラムを実行しているために、Outlook オートメーション アプリケーションが失敗します。 注: これらの確認手順は、Windows クライアントにのみ適用されます。 ウイルス対策プログラムのみ、一時的にネットワークに接続されていないテスト システムで無効にします。 または、次の手順にサード ・ パーティ製のアドインを無効にするのには Outlook で このメソッドでは、問題が解決した場合は、ウイルス対策プログラムの更新の詳細についてはサードパーティ製のウイルス対策ソフトウェア ベンダーに問い合わせてください。

    1. [ファイル] メニューで、オプション] をクリックし、[アドイン] をクリックします。

    2. 管理の COM アドインの場合をクリックし、[移動] をクリックします。 注: これらの確認手順は、Windows クライアントにのみ適用されます。 [ COM アドイン] ダイアログ ボックスが開きます。

    3. サードパーティ製アドインのチェック ボックスをオフにし、し、[ OK] をクリックします。

    4. Outlook を再起動します。

Office を再インストールします。

問題を解決しない前の手順のいずれも削除してから Office を再インストールします。

詳細については、Office の次の資料を参照してください。

ダウンロードしインストール、または PC または Mac で Office 365 または 2016 の Office を再インストール

関連情報

Office のオートメーションとコード サンプルの詳細については、次のマイクロソフト web サイトを参照してください。

Office の開発を開始します。

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?

ご意見をいただきありがとうございます。

×